diff --git a/docs-kits_versioned_docs/version-23.12/introduction.md b/docs-kits_versioned_docs/version-23.12/introduction.md new file mode 100644 index 00000000000..e10b99d0138 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/introduction.md @@ -0,0 +1 @@ +# Introduction diff --git a/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin HI Kit/images/BT_HI_KIT_Building_Block_Architecture_Overview_V1.png b/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin HI Kit/images/BT_HI_KIT_Building_Block_Architecture_Overview_V1.png new file mode 100644 index 00000000000..ece4bc98e02 Binary files /dev/null and b/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin HI Kit/images/BT_HI_KIT_Building_Block_Architecture_Overview_V1.png differ diff --git a/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin HI Kit/images/BT_HI_KIT_Business_Process_Overview_V1.png b/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin HI Kit/images/BT_HI_KIT_Business_Process_Overview_V1.png new file mode 100644 index 00000000000..185fc04e2bc Binary files /dev/null and b/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin HI Kit/images/BT_HI_KIT_Business_Process_Overview_V1.png differ diff --git a/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin HI Kit/page_adoption-view.md b/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin HI Kit/page_adoption-view.md new file mode 100644 index 00000000000..58cb375f18e --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin HI Kit/page_adoption-view.md @@ -0,0 +1,137 @@ +--- +id: Adoption View Health Indicator Kit +title: Adoption View +description: 'Health Indicator Kit' +sidebar_position: 2 +--- + + + +### Health Indicator Kit + + +## Vision & Mission + +### Vision + +Health monitoring of products and components is highly attractive. It offers significant added value for OEMs and suppliers and is already often part of the product range or product inquiry. + +The Behaviour *Health Indicator* Kit (BT HI Kit) efficiently supports the planning, design, construction, use and operation of product-related services for health monitoring as part of quality management. + +Based on the calculation of health indicators, the performance and condition of products and components in the field can be continuously monitored, recorded and transmitted along the supply chain. During the usage phase, abnormalities, possible defects or failures are reliably and identified early on, so that measures can be taken in good time. + +### Mission + +The Behaviour *Health Indicator* Kit (BT HI Kit) comes with the necessary Catena-X standards for health indicators and HI statements. Interoperable solutions are created on their basis. The Kit includes tools for easy implementation of component-specific health indicators and for their determination based on dynamic input data. All components are easily adaptable to specific applications and simplify the journey to the finished service. + +### Customer Journey + +With the *Health Indicator* Kit, we support the Catena-X customer journey for our adopters and solutions providers. + +## Business Value + +Through the standardized specifications described in the BT HI Kit – for example the semantic models and APIs – OEMs and TIER-X as data and service provider can reduce investment and implementation costs. Catena-X infrastructure and technology offers easy scalability regarding vehicle components and supply chain. + +## Use Case + +- OEM, TIER-X: During the usage phase, health indicators provide a continuous and comprehensive view of the condition of products in the field. Abnormalities, possible defects or failures can be detected reliably and early on. This provides the time advantage to initiate countermeasures in good time. +During development phase, health indicators can be used to bring more mature products into series production. + +- Tier-X: The overall product range becomes more attractive in the offer phase, when the definition of health indicators as a product-related service is included. + +- Workshops: In case of failure analysis and repair, workshops benefit from an extended range of data on vehicle condition and its components. In return, service providers can standardize and facilitate access to the OEM. + +### Status Quo + +Within company boundaries, the calculation of health indicators based on internally available data and models is already state of the art. However, across company boundaries, there are only individual, complex and not generally available options for component-specific transfer or monitoring of health indicators. + +### Today’s challenge + +For successful implementation, the following challenges must be addressed: +- the correct allocation of health indicators to the respective component +- recording and providing the necessary input variables +- easy to interpret results +- secure data transfer along the supply chain +- easy scalability across company boundaries + + +### Benefits + +**OEMs and big suppliers** benefit from an increase in quality and shorter response times to anomalies in the field. The decisive hub is created by the standardized provision of health indicators across company boundaries — always in compliance with IP and data protection. + +## Logic & Schema + + +### Building Block View +The architecture image describes the interaction between the HI Service and the Knowledge Agent components. + +![Building Block Architecture Overview](images/BT_HI_KIT_Building_Block_Architecture_Overview_V1.png) + +### HI Components +|Subsystem| Description | +|---------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +|HI Application| This component is the app that is hosted at the Consumer/Data Provider. The data provider can select multiple vehicle identifier numbers (VIN) and gets back calculated HI values. | +|Loading Data | A data source at the Data Provider that provides the loading data and other vehicle data that are needed for the HI calculation.
It can be accessed by the knowledge agent via data bindings. | +|HI Service| A HI calculation service at the Service Provider. It accepts input data from the Data Provider, calculates the HI value and returns it. | + +### Knowledge Agent components +|Subsystem| Description | +|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +|Matchmaking Agent| This component supports SparQL to traverse the federated data space as a large data structure. It interacts with the EDC. The Matchmaking Agents are matching the (sub)graphs and negotiate appropriated graph assets with the partner EDCs. | +|Binding Agent| The Binding Agent is a restricted version of the Matchmaking Agent (subset of OWL/SparQL, e.g., without federation) which is just focused on translating Sub-Skills of a particular business domain (Bill-Of-Material, Chemical Materials, Production Sites, etc.) into proper SQL- or REST based backend system calls.
Implementation details: For data bindings, OnTop is used. For service bindings, RDF4J is used. | +|Ontology| The ontology is a formal representation of knowledge that captures concepts, relationships, and properties. It allows a shared understanding and reasoning about the respective domain.
It must be hosted in a way that all participants can access it. Currently, the ontology is hosted at GitHub. | +|Skill/Sub-Skill| The Skill describes, what to do (which data have to be connected, transferred and so on). | + +### Catena-X Core Services (except Knowledge Agent components) +|Subsystem|Description| +|---------|-----------| +|Eclipse Dataspace Components (EDC)|The Connector of the Eclipse Dataspace Components provides a framework for sovereign, inter-organizational data exchange. It implements the International Data Spaces standard (IDS) as well as relevant protocols associated with GAIA-X. The connector is designed in an extensible way in order to support alternative protocols and integrate in various ecosystems.| + + + + +## Business Process + + +![Business Process Overview](images/BT_HI_KIT_Business_Process_Overview_V1.png) + +|Role|Description| +|---------|-----------| +|User @ OEM|Wants to continuously monitor the status of several vehicle's component.| +|OEM|Needs to collect or generate load/input data for the HI calculation from vehicle or backend.| +|Supplier|Acts here as a service provider and uses the input data to estimate HI values and send it back to OEM.| + + +## Access and Usage Policies +To enable data sovereignty, access and usage policies are important to protect the data assets of a data provider in the EDC, described in the following. + +### Access Policies +To decide which company has access to the data assets, access policy should be used. It is maybe possible to skip access policies, but this will made all data assets public available in the Catena-X network and is not recommended. Therefore, every asset should be protected and only be made available for specific companies, identified through their business partner number (BPN). In the near future, other access policies will be introduced like a company role and attribute based policy. Further details can be found in this page of the [EDC](https://github.com/eclipse-tractusx/tractusx-edc/tree/main/edc-extensions/business-partner-validation). + +### Usage policies +Use case specific credentials exist and will be mandatory. Their documentation will be available after SSI release. +A Behaviour Twin "Use Case Rahmenbedingung" which covers the business process of the app will be available after SSI release. +This Rahmenbedingung document can be referenced in the usage policies, and therefore limit Data & Service access to Behaviour Twin participants. + + + + +## Standards + +Our relevant standards can be downloaded from the official [Catena-X Standard Library](https://catena-x.net/de/standard-library). + +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2022,2023 Allgemeine Deutsche Automobil-Club (ADAC) e.V +- SPDX-FileCopyrightText: 2022,2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +- SPDX-FileCopyrightText: 2022,2023 ZF Friedrichshafen AG +- SPDX-FileCopyrightText: 2022,2023 Contributors to the Eclipse Foundation + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin HI Kit/page_changelog.md b/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin HI Kit/page_changelog.md new file mode 100644 index 00000000000..d5661dee0f2 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin HI Kit/page_changelog.md @@ -0,0 +1,30 @@ +--- +id: Changelog Health Indicator Kit +title: Changelog +description: 'Health Indicator Kit' +sidebar_position: 1 +--- + + +--> + +### Health Indicator Kit + +All notable changes to this Kit will be documented in this file. + + +## [0.1.0] - 2023-12-08 + +### Added + +- Initial preview version of the Kit including adoption view. + +### Changed + +- ./. + +### Removed + +- ./. diff --git a/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin MDP Kit/images/Pic_Proc_0.png b/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin MDP Kit/images/Pic_Proc_0.png new file mode 100644 index 00000000000..cc78d33ced6 Binary files /dev/null and b/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin MDP Kit/images/Pic_Proc_0.png differ diff --git a/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin MDP Kit/images/Pic_Proc_1.png b/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin MDP Kit/images/Pic_Proc_1.png new file mode 100644 index 00000000000..53589915f44 Binary files /dev/null and b/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin MDP Kit/images/Pic_Proc_1.png differ diff --git a/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin MDP Kit/images/Pic_Proc_2.png b/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin MDP Kit/images/Pic_Proc_2.png new file mode 100644 index 00000000000..688241ec320 Binary files /dev/null and b/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin MDP Kit/images/Pic_Proc_2.png differ diff --git a/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin MDP Kit/images/Pic_Proc_3.png b/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin MDP Kit/images/Pic_Proc_3.png new file mode 100644 index 00000000000..9190e67a976 Binary files /dev/null and b/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin MDP Kit/images/Pic_Proc_3.png differ diff --git a/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin MDP Kit/images/Pic_Proc_4.png b/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin MDP Kit/images/Pic_Proc_4.png new file mode 100644 index 00000000000..63f8fdc2e41 Binary files /dev/null and b/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin MDP Kit/images/Pic_Proc_4.png differ diff --git a/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin MDP Kit/images/Pic_Proc_5.png b/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin MDP Kit/images/Pic_Proc_5.png new file mode 100644 index 00000000000..ce45127d3a6 Binary files /dev/null and b/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin MDP Kit/images/Pic_Proc_5.png differ diff --git a/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin MDP Kit/images/RKIT_Building_Block_Architecture_Overview_V1.png b/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin MDP Kit/images/RKIT_Building_Block_Architecture_Overview_V1.png new file mode 100644 index 00000000000..97b30080c7d Binary files /dev/null and b/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin MDP Kit/images/RKIT_Building_Block_Architecture_Overview_V1.png differ diff --git a/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin MDP Kit/images/RKIT_Building_Block_Architecture_Overview_V2.png b/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin MDP Kit/images/RKIT_Building_Block_Architecture_Overview_V2.png new file mode 100644 index 00000000000..5eebddcf116 Binary files /dev/null and b/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin MDP Kit/images/RKIT_Building_Block_Architecture_Overview_V2.png differ diff --git a/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin MDP Kit/page_adoption-view.md b/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin MDP Kit/page_adoption-view.md new file mode 100644 index 00000000000..ef6eac780d3 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin MDP Kit/page_adoption-view.md @@ -0,0 +1,214 @@ +--- +id: Adoption View Model Based Development and Data Processing Kit +title: Adoption View +description: 'Model Based Development and Data Processing Kit' +sidebar_position: 2 +--- + + + +### Model Based Development and Data Processing Kit + + +## Vision & Mission + +### Vision + +Collaborative model based system development and massive engineering data analytics are both key to cope with challenges in the market of electric and autonomous vehicles. + + +The aim of the Model Based Development and Data Processing Kit (MDP) is to create a framework for the exchange and collaborative use of simulation models and data services across different players in the automotive industry. +The exchange of models allows the generation of physically precise overall models during the design phase without compromising the intellectual property of the model owner. +The exchange of data services (like scripts as well as simulation models) allows the post-processing of data in the operational phase. + +### Mission + +The Model Based Development and Data Processing Kit comes with the necessary Catena-X standard for model exchange. In addition, suggestions are given on how to create models that have a high-level of interoperability. These suggestions will be part of a new standard in the next version of the MDP Kit. +The Kit includes examples code on how to register your models and data services in Catena-X, how to assign metadata to them and how to use the metadata to retrieve what you need from the catalogue of a Catena-X partner. The solution is based on the existing Connector Kit (EDC). +Information on how to combine and connect simulation models to create an overall model are also provided as well as an example of how to combine services and models for enhanced post-processing of operational data. + + +### Customer Journey + +With the *Model Based Development and Data Processing* Kit, we support the Catena-X customer journey for our adopters and solutions providers. + +## Business Value + +The Model Based Development and Data Processing Kit allows application software providers access to information: + +- needed to build a Catena-X conform simulation model, +- to support simulation model integration, +- enable complex simulation studies, +- to support data processing exchange services, +- needed to combine basic data processing services to complex ones. + +In addition, model and data processing providers can enter potential new markets in which simulation models are provided alongside the product and offer the possibility to build data processing services by combining basic services. + + +## Use Case + +Use cases based on the MDP Kit are basically not limited to certain partners in the supply pyramid, however for a better understanding the following describes the collaboration based on the example between an OEM and a Tier-1. + +- A Tier-1 shares a model of a component with an OEM. The OEM can perform a system simulation which includes both, its own components and the component from the Tier-1. Similarly, the OEM can use several models of components from several Tier-1s. Selected results from the integrated model can be sent from the OEM to the Tier-1s. (same with Tier-2 and Tier-1) +- An OEM shares a model and inputs for (virtually) testing of Tier-1s components under conditions of interests. The Tier-1 can build a system simulation with its own components and the models from the OEM and analyze the behaviour of the own component under the defined conditions. Selected results of the virtual test can be sent from the Tier-1 to the OEM. (same with Tier-1 and Tier-2) +- An OEM is starting the development of a follow-up vehicle model, including also new components from Tier-N suppliers. Virtual testing of new components in a new vehicle model will be realized based on real customer data from predecessor vehicles, which exists on OEM side and component digital twins (FMU) from Tier-N (if allowed by contract). The complex procedural integration of existing data and FMUs will be done by an engineering company, which then provides two result options: + * virtual testing results + * virtual testing workflow for OEM and Tier-N supplier + + + +### Status Quo + +Nowadays exchange of simulation models across company boundaries in the design phase is rare. Each player develops its components based on assumptions of how the partner components behave or builds approximate models of the partner components based on tables that describe their behaviour or other information from the producers. + +Virtual testing of components (based on digital twins, e.g. FMUs) is already state of the art. However, the representativeness is often limited due to the availability of real customer data. In addition cross company testing procedures are also limited to interoperability and processing complexity boundaries. + +### Today’s challenge + +Simulation models contain critical information about the intellectual properties of a company. This makes it difficult for companies to share their models with their suppliers or customers. In addition building simulation models compatible with those of suppliers or customers requires agreements on how the model should be built and the data format to use. + +Provide representative (behavioural) digital twins of components or even vehicles. This includes on the one hand the digital twin as a virtual model, but also the behaviour and usage, i.e. the data which drives the model. The challenge is the combination of both while intellectual properties of all companies are kep + +### Benefits + +The benefits for companies using models coming from suppliers or customers relies in the shortening of the development time. This is possible since the developed components are integrated with realistic models of the components they interact with or are (virtually) tested under realistic conditions. This setup provides the best scenarios for development and decreases the number of iterations needed to come to the final design. + +In addition, the generation of simulation models based on the Catena-X standardization and the guidelines in this Kit considerably increases the compatibility of the models among different companies. + +More realistic (in terms of representativeness) behavioural digital twins of vehicles and/or components can be provided. Data processing workflows are not limited by its complexity. + + +## Logic & Schema + +### Building Block View +The architecture image describes the interaction between the model/data provider and the model/data consumer. + +![Building Block Architecture Overview](images/RKIT_Building_Block_Architecture_Overview_V2.png) + + +|Subsystem|Description| +|---------|-----------| +|Model/Data Processing App|This component is the App that is hosted at the Consumer and provides the framework to process the models (e.g. integrate and execute them) or the data (e.g. compose and execute workflows).| +|EDC interface| The EDC Interface is used for registering/retrieving assets using asset properties. Data Providers use metadata in the form of asset properties to classify their shared assets. Data Consumer filters the catalogue using the asset properties to retrieve the needed assets.| + +### Catena-X Core Services +|Subsystem|Description| +|---------|-----------| +|Eclipse Dataspace Components (EDC)|The Connector of the Eclipse Dataspace Components provides a framework for sovereign, inter-organizational data exchange. It implements the International Data Spaces standard (IDS) as well as relevant protocols associated with GAIA-X. The connector is designed in an extensible way in order to support alternative protocols and integrate in various ecosystems.| + + + +## Business Process + +### Collaborative model and data based system development + +A car manufacturer is starting the **development** of a follow-up car model. +Some parameters of the new car model are already fixed (mass, engine power) but no prototype yet exists. +A supplier is proposing to use the next generation of his component for the new car. +The manufacturer wants to make sure that the new component is performing well in the new vehicle. +So, a decision is made to use real **usage data** from the predecessor vehicle for the verification of the new component. +The usage of predecessor data is not straightforward and the car manufacturer decides to assign the task of setting up an appropriate process to a **modeling specialist**. The modeling specialist needs to **integrate** an **FMU** from the supplier to **simulate** the new **component** in the **process**. Finally, **both** the car manufacturer and the supplier want to be able to **execute** the **process** and do fine tuning on component parameters. + +How can Catena-X help the parties to come to an efficient solution? +![Business Process Partners](images/Pic_Proc_0.png) + +### The following sketches illustrate the Business Process +![Business Process 1 Partners](images/Pic_Proc_1.png) + +A maximum of 4 participants is involved in this scenario. +But instead of being 3rd party the Modeling Specialist could be alternatively: +- the OEM +- the Catena-X Service - Software Provider +- the Tier-1 + +![Business Process 2 Partners](images/Pic_Proc_2.png) + +The OEM publishes all required models and auxiliary information and some portion of predecessor data. +The Tier-1 publishes the model of his new component. +The Modeling specialist consumes all the information from the other parties. + +![Business Process 3 Partners](images/Pic_Proc_3.png) + +The Modeling specialist creates processes to convert the predecessor data to virtual data of the new car-model. +He then combines and adapts the different models. Finally all together is evaluated. +All this is done utilizing the software provided by the Catena-X Service (a software providing service). + +![Business Process 4 Partners](images/Pic_Proc_4.png) + +The Modeling Specialist publishes the combined model and the OEM consumes it. +Depending on the OEM’s instruction to the Modeling Specialist the Tier-1 may also consume the combined model or not. + +![Business Process 4 Partners](images/Pic_Proc_5.png) + +By utilizing the Software provided via the Catena-X Service the OEM can evaluate all available predecessor data. +Optionally he publishes predecessor data so that the Tier-1 can evaluate too and improve his component's +performance with the new car-model. + +### Access Policies +To decide which company has access to the data assets, access policies should be used. It is maybe possible to skip access policies, but this would make all data assets publicly available in the Catena-X network and is not recommended. Therefore, every asset should be protected and only be made available for specific companies, identified through their business partner number (BPN). This is possible using an existing extension for the EDC documented here. In the near future, other access policies will be introduced like a company role and attribute based policy. + +### Usage policies +Use case specific credentials exist and will be mandatory. Their documentation will be available after SSI release. A Behavior Twin "Use Case Framework" which covers the business process of the app will be available after SSI release. This Framework document can be referenced in the usage policies, and therefore limit Data & Service access to Behavior Twin participants. + + + + + +## Standards + +The Standard CX-0102-Functional-Mock-Up has been submitted for standardization and will soon be linked here. + +The Standard aims at using the exisiting FMI industry standard as a Catena-X standard. + +The Functional Mock-up Interface (FMI) is a free standard that defines a container and an interface to exchange dynamic simulation models using a combination of XML files, binaries and C code, distributed as a ZIP file. It is supported by 170+ tools and maintained as a Modelica Association Project. The FMI implementation by a software modelling tool enables the creation of simulation models that can be interconnected. The file format of the FMI standard is called Functional Mock-up Unit (FMU)(source: https://fmi-standard.org/). + + +### Guidelines for generating FMU: + +The FMU/FMI format allows a high degree of flexibility in generating an FMU model. On the one hand, this allows the format to be used for a large variety of use cases and of tools. On the other hand, interoperability between FMUs is not always guaranteed. + +The list of guidelines below have the goal to guide the modeling expert in the creation of an FMU for the Model and Data Processing use cases. + +**Guidelines**: + +- generate a license-free FMU so that it can be imported in any software, +- generate a co-simulation FMU so that solver is included in the FMU and can be directly executed, +- assign units of measure to each port as far as physically meaningful. Depending on the software, the connection of two ports is only allowed if the unit of measure is the same or if the unit of measure is empty. The second case can lead to mismatching, +- embedd all needed tables and files while creating the FMU, +- expose only numerical parameters to the user for changing. + + +### Guidelines for assigning asset properties to FMU and services: + +To ensure an unity and to keep assets like FMU and/or services retrievable, a certain set of properties as FMU/service description is recommended. + +The following list of potential properties along with some examples shall be seen as a guideline: + +- Type (FMU, AMESIM model, Testlab process,...) +- Name/Title (NF_7B5_07.fmu, ...) +- Keywords (Leistungselektronik, ...) +- Description (...) +- Input data (Temperature of component XYZ,...) +- Output data (Pseudo damage of component XYZ,...) +- GenerationTool (Simulink 9.1, AMESIM,...) +- Producer/Publisher (ZF, Siemens,...) +- Version (1.4,...) +- Release date (2023-09-18,...) +Some properties could be selected from a pre-defined list (and not be free text) in order to ensure a certain standardization during asset registration + + + +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2023,2023 Siemens AG +- SPDX-FileCopyrightText: 2023,2023 ZF Friedrichshafen AG +- SPDX-FileCopyrightText: 2023,2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +- SPDX-FileCopyrightText: 2023,2023 Contributors to the Eclipse Foundation + diff --git a/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin MDP Kit/page_changelog.md b/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin MDP Kit/page_changelog.md new file mode 100644 index 00000000000..38b8499e5b0 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin MDP Kit/page_changelog.md @@ -0,0 +1,30 @@ +--- +id: Changelog Model Based Development and Data Processing Kit +title: Changelog +description: 'Model Based Development and Data Processing Kit' +sidebar_position: 1 +--- + + + +### Model Based Development and Data Processing Kit + +All notable changes to this Kit will be documented in this file. + + +## [0.0.1] - 2023-11-23 + +### Added + +- Initial preview version of the Kit including adoption view. + +### Changed + +- ./. + +### Removed + +- ./. diff --git a/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin RuL Kit/Software Development View/_category_.json b/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin RuL Kit/Software Development View/_category_.json new file mode 100644 index 00000000000..e5c5b7565a3 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin RuL Kit/Software Development View/_category_.json @@ -0,0 +1,3 @@ +{ + "label": "Development View" +} diff --git a/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin RuL Kit/Software Development View/page_software-development-view.md b/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin RuL Kit/Software Development View/page_software-development-view.md new file mode 100644 index 00000000000..f9a46c06c5c --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin RuL Kit/Software Development View/page_software-development-view.md @@ -0,0 +1,1083 @@ +--- +id: Specification Remaining Useful Life Kit +title: Specification +description: 'Remaining Useful Life Kit' +sidebar_position: 4 +--- + +![Remaining Useful Life kit banner](@site/static/img/doc-rul_header-minified.png) + + +### Remaining Useful Life Kit + +**This is only a preview KIT.** + +There will be changes in the following releases. +We plan to provide a more general RuL skill and more generalized interfaces for service +input data. With these improvements, it will be much easier and more flexible for you to +participate in the RuL use case. + +# Overview +The RuL use case takes advantage of knowledge graphs. Therefore, every participant must support the Knowledge Agent (see Knowledge Agent KIT). + +## Roles +As a developer in the Remaining Useful Life use case, you may apply to one or more +of the following roles: +- RuL consumer (RuL result requester) +- skill provider (provider of the use case logic) +- RuL data provider (provider of usage data, likely an OEM) +- delegator (likely a supplier of a component that is assembled of subcomponents which are providing RuL calculation services) +- RuL calculation service provider (likely a supplier of a part or component) + +## Logic +The central logic of the RuL use case is a **RuL skill**. +You can use a predefined RuL skill and use it or modify it to build up a similar use +case. It is written in SPARQL, a query language for federated knowledge graphs. +The current RuL skill takes vehicle identifier numbers (VINs) as parameters. +In general, a RuL skill will take one or more vehicle/component IDs as parameters. +It then collects the related usage data at the RuL data providers and calls the RuL +calculation services at the RuL service providers. The result is then collected and +transferred to the consumer. + +## Your interface +You always need access to your **running EDC with knowledge agent components** and +the (extensible) **ontologies of Catena-X**. In most cases, you can use them as they are. + +Your interface to the use case depends on your role(s): +If you are only a consumer, you are fine with the previous mentioned components. +If you are a data provider or delegator, you may have your data organized in relational databases. In this case, you need to have a running **provisioning +agent** with **configured data bindings** (linking your data to the knowledge graph). +If you are a service provider, you need to have a running **remoting agent** with +**configured service bindings** (linking your service to the knowledge graph). + +For more information, see the operation view. + +## Mandatory components +- ontologies (semantic models) +- usage data +- calculation services +- EDC + knowledge agent +- delegation data +- matchmaking agent: Mapping ontology to knowledge graph, integrated into KA-dataplane +- binding agents: + - provisioning agent: provide data + - remoting agent: bind service to graph + +| | calculation service provider | delegator | RuL data provider | RuL consumer | skill provider | +| --------------------- | :---: | :---: | :---: | :---: | :---: | +| EDC + knowledge agent
+ matchmaking agent | x | x | x | x | x | +| ontologies | x | x | x | x | x | +| skill-access | | | | x | x | +| delegation data | | x | x | x | | +| usage data | | | x | | | +| provisioning agent | | | x | | | +| calculation service | x | | | | | +| remoting agent | x | | | | | + +## Knowledge graph basics +Knowledge graphs are buildup of semantic triplets (subject --predicate-> object), where subject and object are nodes, the predicate is a unidirectional edge. All nodes are object instances, and the edges between them are their relations. For more information, see [W3C Resource Description Framework (RDF)](https://www.w3.org/RDF/). +Object types and relations are formally defined within ontologies. + +## Basic Architecture +For a detailed view of the architecture with the knowledge agent see the Knowledge Agent KIT. +Here you can see an overview over the used components and elements that must be developed: + +![Remaining Useful Life architecture overview](../assets/rul_architecture_overview.png) + +## Ontology +For the Behaviour Twin (BT) RuL User Case, beside the [core](https://w3id.org/catenax/core_ontology.ttl) and [common](https://w3id.org/catenax/common_ontology.ttl) ontologies, a specific ontology was defined. For our use cases following sub-ontologies are needed: + - [reliability ontology](https://w3id.org/catenax/reliability_ontology.ttl) +- [vehicle ontology](https://w3id.org/catenax/vehicle_ontology.ttl) and +- [behaviour ontology](https://w3id.org/catenax/behaviour_twin.ttl) + +All needed ontologies for the RuL use case are bundled in one named on our [Behaviour Twin Kit](https://w3id.org/catenax/usecase/behaviour_twin.ttl. + +General information about Knowledge-Agent Semantic Models refer to the KA-KIT (https://catenax-ng.github.io/product-knowledge/docs/development-view/modules#semantic-models). +The specific (reliability and behaviour) ontologies are based respectively compatible with the standardized SAMM Models ([Load Spectrum](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.classified_load_spectrum) and [Remaining Useful Life](https://github.com/eclipse-tractusx/sldt-semantic-models/blob/main/io.catenax.rul/1.0.0/RemainingUsefulLife.ttl)) release by Behaviour Twin team. + +For the calculation of the remaining useful life for a specific component, the service needs to get the Load Spectrum data to proceed with the calculation. Hence, in the reliability ontology all needed semantic models are defined. + +``` ttl +################################################################ +# Copyright (c) 2022,2023 T-Systems International GmbH +# Copyright (c) 2022,2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +# Copyright (c) 2022,2023 ZF Friedrichshafen AG +# Copyright (c) 2023 Allgemeine Deutsche Automobil-Club (ADAC) e.V +# Copyright (c) 2022,2023 Mercedes-Benz AG +# Copyright (c) 2022,2023 Contributors to the Catena-X Association +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License, Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0. +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +# SPDX-License-Identifier: Apache-2.0 +################################################################ + +### https://w3id.org/catenax/ontology/reliability#LoadSpectrum +cx-reliability:LoadSpectrum rdf:type owl:Class ; + rdfs:subClassOf cx-reliability:AnalysisResult ; + rdfs:seeAlso , + ; + skos:altLabel "load collective"@en ; + skos:definition "Load spectrum is a 2d histogram that contains the load history of a vehicle, i.e. how a vehicle was used, for a given time period."@en ; + skos:example "force"@en , + "tension"@en , + "torque"@en ; + skos:prefLabel "Lastkollektiv"@de , + "Load Spectrum"@en . +``` + +The RuL services were designed with interoperability in mind, thus the communication in both directions (input/input) fully supports the Catena-X Notification standard. These aspects are also covered by Catena-X ontologies. The RuL Calculation can return two values: +- Remaining Running Distance and +- Remaining Operating Hours + +For this purpose, in the behaviour_ontology, a function is defined: +``` ttl +################################################################ +# Copyright (c) 2022,2023 T-Systems International GmbH +# Copyright (c) 2022,2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +# Copyright (c) 2022,2023 ZF Friedrichshafen AG +# Copyright (c) 2023 Allgemeine Deutsche Automobil-Club (ADAC) e.V +# Copyright (c) 2022,2023 Mercedes-Benz AG +# Copyright (c) 2022,2023 Contributors to the Catena-X Association +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License, Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0. +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +# SPDX-License-Identifier: Apache-2.0 +################################################################ + +cx-behaviour:RemainingUsefulLife rdf:type cx-fx:Function; + dc:description "Remaining Useful Life is a Prediction of the Estimated Mileage/Runtime until a Breakdown."@en ; + dc:title "Remaining Useful Life" ; + cx-fx:input cx-behaviour:notification; + cx-fx:input cx-behaviour:sender; + cx-fx:input cx-behaviour:senderConnector; + cx-fx:input cx-behaviour:recipient; + cx-fx:input cx-behaviour:recipientConnector; + cx-fx:input cx-behaviour:recipient; + cx-fx:input cx-behaviour:recipientConnector; + cx-fx:input cx-behaviour:severity; + cx-fx:input cx-behaviour:status; + cx-fx:input cx-behaviour:targetDate; + cx-fx:input cx-behaviour:timeStamp; + cx-fx:input cx-behaviour:classification; + cx-fx:input cx-behaviour:component; + cx-fx:input cx-behaviour:metadata; + cx-fx:input cx-behaviour:statusDate; + cx-fx:input cx-behaviour:statusOperatingHours; + cx-fx:input cx-behaviour:statusMileage; + cx-fx:input cx-behaviour:countingMethod; + cx-fx:input cx-behaviour:countingValue; + cx-fx:input cx-behaviour:countingUnit; + cx-fx:input cx-behaviour:headerChannels; + cx-fx:input cx-behaviour:bodyClasses; + cx-fx:input cx-behaviour:bodyCountsList; + cx-fx:result cx-behaviour:response. +``` + +The result contains the expected values: +``` ttl +################################################################ +# Copyright (c) 2022,2023 T-Systems International GmbH +# Copyright (c) 2022,2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +# Copyright (c) 2022,2023 ZF Friedrichshafen AG +# Copyright (c) 2023 Allgemeine Deutsche Automobil-Club (ADAC) e.V +# Copyright (c) 2022,2023 Mercedes-Benz AG +# Copyright (c) 2022,2023 Contributors to the Catena-X Association +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License, Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0. +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +# SPDX-License-Identifier: Apache-2.0 +################################################################ + +cx-behaviour:response rdf:type cx-fx:Result; +dc:description "The asynchronous notification response."@en ; +dc:title "Asynchronous notification response." ; +cx-fx:output cx-behaviour:remainingOperatingHours; +cx-fx:output cx-behaviour:remainingRunningDistance. + +cx-behaviour:remainingOperatingHours rdf:type cx-fx:ReturnValue; + dc:description "Predicted Operating Hours of Remaining Useful Life Response"@en ; + dc:title "Remaining Useful Life Operating Hours" ; + cx-fx:dataType xsd:float. + +cx-behaviour:remainingRunningDistance rdf:type cx-fx:ReturnValue; + dc:description "Predicted Distance of Remaining Useful Life Response"@en ; + dc:title "Remaining Useful Life Distance" ; + cx-fx:dataType xsd:int. +``` + +## Standards/SAMM +- [Load Spectrum](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.classified_load_spectrum) +- [Remaining Useful Life](https://github.com/eclipse-tractusx/sldt-semantic-models/blob/main/io.catenax.rul/1.0.0/RemainingUsefulLife.ttl) + +# RuL Skill +Applies to: *RuL Skill provider* + +For the RuL calculation of a vehicle part, we have three different "roles" involved: +- consumer: which request the RuL value by VIN. +- OEM: which has the vehicle Load Spectrum data and forwards them by calling the supplier of that specific part. +- Supplier: which provides the service for the RuL calculation for his parts. + +A reference (sample) Agent-Skill for a Gearbox is implemented, + +For more information regarding the RuL Skill see [Knowledge Agent KIT](https://bit.ly/tractusx-agents). + +``` sparql +################################################################ +# Copyright (c) 2022,2023 T-Systems International GmbH +# Copyright (c) 2022,2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +# Copyright (c) 2022,2023 ZF Friedrichshafen AG +# Copyright (c) 2023 Allgemeine Deutsche Automobil-Club (ADAC) e.V +# Copyright (c) 2022,2023 Mercedes-Benz AG +# Copyright (c) 2022,2023 Contributors to the Catena-X Association +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License, Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0. +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +# SPDX-License-Identifier: Apache-2.0 +################################################################ + +PREFIX cx-common: +PREFIX cx-core: +PREFIX cx-vehicle: +PREFIX cx-reliability: +PREFIX cx-behaviour: +PREFIX rdf: +PREFIX rdfs: +PREFIX xsd: +PREFIX json: +PREFIX bpnl: +PREFIX oem: +PREFIX supplier: + +################################################################ +# Sample for a Federated (Consumer-Deployed) SparQL Skill which +# - Jumps into an OEM-owned reliability asset given a set of candidate VANs +# - Feeds the gathered data back into the respective supplier connector/agent +#. to perform a health indication +# Author: cgjung +# (c) 2023 Catena-X assocation +################################################################ + +SELECT DISTINCT ?vehicle ?van ?aggregate ?assembly ?supplier ?distanceKm ?timeHours WHERE { + + VALUES (?van ?aggregate) { + ("@van"^^xsd:string "Differential Gear"^^xsd:string) + } + + VALUES (?ls_type) { + ("GearOil"^^xsd:string) ("GearSet"^^xsd:string) + } + + bpnl:{{oemBPNL}} cx-common:hasConnector ?oemEDC. + ?oemEDC cx-common:offers [ rdfs:isDefinedBy ; cx-common:id ?reliabilityAssetId]. + + SERVICE ?oemEDC { + GRAPH ?reliabilityAssetId { + ?vehicle rdf:type cx-vehicle:Vehicle; + cx-vehicle:vehicleIdentificationNumber ?van. + + ?assembly rdf:type cx-vehicle:Part; + cx-vehicle:name ?aggregate; + cx-vehicle:isPartOf ?vehicle; + cx-vehicle:supplier ?supplier. + + ?teleAnalysis rdf:type cx-reliability:Analysis; + cx-reliability:analysedObject ?assembly; + cx-reliability:operatingHoursOfVehicle ?operatingTime; + cx-reliability:mileageOfVehicle ?mileage; + cx-core:startDateTime ?recordDate; + cx-reliability:result [ + cx-core:id ?ls_type; + cx-core:name ?ls_name; + cx-reliability:countingValue ?ls_value; + cx-reliability:countingUnit ?ls_unit; + cx-reliability:countingMethod ?ls_method; + cx-reliability:channels ?ls_channels; + cx-reliability:classes ?ls_classes; + cx-reliability:values ?ls_values + ]. + } # OEM#GRAPH + + ?supplier cx-common:hasConnector ?supplierEDC. + ?supplierEDC cx-common:offers [ rdfs:isDefinedBy ; cx-common:id ?prognosisAssetId]. + + SERVICE ?supplierEDC { + GRAPH ?prognosisAssetId { + SELECT ?distanceKm ?timeHours WHERE { + ?invocation a cx-behaviour:RemainingUsefulLife; + cx-behaviour:sender bpnl:{{oemBPNL}}; + cx-behaviour:senderConnector ?oemEDC; + cx-behaviour:recipient ?supplier; + cx-behaviour:recipientConnector ?supplierEDC; + cx-behaviour:targetDate ?recordDate; + cx-behaviour:timeStamp ?recordDate; + cx-behaviour:component ?assembly; + cx-behaviour:observationType ?ls_type; + cx-behaviour:statusDate ?recordDate; + cx-behaviour:statusOperatingHours ?operatingTime; + cx-behaviour:statusMileage ?mileage; + cx-behaviour:countingValue ?ls_value; + cx-behaviour:countingUnit ?ls_unit; + cx-behaviour:countingMethod ?ls_method; + cx-behaviour:headerChannels ?ls_channels; + cx-behaviour:bodyClasses ?ls_classes; + cx-behaviour:bodyCountsList ?ls_values; + cx-behaviour:remainingOperatingHours ?timeHours; + cx-behaviour:remainingRunningDistance ?distanceKm. + } + } # SUPPLIER#GRAPH + } # SUPPLIER#CATALOG + + } # OEM#CATALOG + +} # SELECT +``` + +## Skill usage +The registered skill is available over Agent Plane API and can be called also for a list of input variables: + +```curl +curl --location 'agentPlaneEdcUrl/api/agent?asset=SkillAsset%3Fconsumer%3DRemainingUsefulLife' \ +--header 'Content-Type: application/sparql-results+json' \ +--data '{ + "head": { "vars": [ "van" ]}, + "results": { "bindings": [ + { "van": { "type": "literal", "value": "FNLQNRVCOFLHAQ"}} + ] + } +}' +``` + +The RuL results for the given VAN's is provided are provided as bindings for the requested variables in the Skill itself and looks like: + +```json +{ + "head": { + "vars": [ + "vehicle", + "van", + "aggregate", + "assembly", + "supplier", + "distanceKm", + "timeHours" + ] + }, + "results": { + "bindings": [ + { + "vehicle": { + "type": "uri", + "value": "urn:uuid:4cf8b668-0f27-4f39-b986-36423d81d222" + }, + "van": { + "type": "literal", + "value": "FNLQNRVCOFLHAQ" + }, + "aggregate": { + "type": "literal", + "value": "Some vehicle name" + }, + "assembly": { + "type": "", + "value": "urn:uuid:4cf8b668-0f27-4f39-b986-36423d81d111" + }, + "supplier": { + "type": "uri", + "value": "bpn:legal:BPNL0000SUPPLIER" + }, + "distanceKm": { + "type": "", + "datatype": "http://w3.org/2001/XMLSchema#int", + "value": "123000" + }, + "timeHours": { + "type": "", + "datatype": "http://w3.org/2001/XMLSchema#float", + "value": "12345.0" + } + } + ] + } +} +``` + +If the given VAN is not found on OEM side, then we get an empty binding result: +```json +{ + "head": { + "vars": [ + "vehicle", + "van", + "aggregate", + "assembly", + "supplier", + "distanceKm", + "timeHours" + ] + }, + "results": { + "bindings": [] + } +} +``` + +# Data bindings for relational data +Applies to: *RuL data provider* and *delegator* + +## Overview +In this context, data are usage data as well as delegation data (where the sill/data have to go next). + +In most cases, data are provided in relational form (relational databases, data lakes, ...). +To provide such data as part of the knowledge graph, you have to bind/map them to the underlying ontologies. + +## Data mapping tool +To bind the relational data to the knowledge graph, you can use a **provisioning agent**, also called the **data binding agent**. The software **Ontop** (see the Ontop webpage [https://ontop-vkg.org/](https://ontop-vkg.org/)), which is under the Apache 2.0 license, is our tool of choice in this case. + +## Data mapping configuration +To configure the bindings, a config file for the Ontop software has to be created. The file is written in the Ontop mapping language and has the extension **.obda**. For more information, see the Knowledge Agent KIT. + +## Construction of a single data binding +Each data binding consists of 3 lines in the config file. +The first line defines a unique mapping id (arbitrarily selectable). +The second line lists one or more RDF triplets (target). +The third line is a SQL statement on the relational data source. + +A simple example from: +``` obda + mappingId partsvehicle + target <{gearbox_id}> cx-vehicle:isPartOf <{vehicle_id}> . + source SELECT vehicle_id, gearbox_id FROM vehicles +``` + +The target is described as a triple with two variables: gearbox_id and vehicle_id. The exact same variables must occur in the result of the source SQL statement. The SQL result is then mapped to the variables in the target triplets. +For each row in the SQL result, a triplet instance is created. If the SQL result is empty, no triplet instances are created. +The result of this example is a triplet that represents the relation between a specific vehicle its gearbox. + +A little more complex example: +``` obda + mappingId vehicles + target <{vehicle_id}> rdf:type cx-vehicle:Vehicle ; cx-vehicle:vehicleIdentificationNumber {van}^^xsd:string; cx-vehicle:worldManufaturerId bpnl:{oem_bpnl}; cx-vehicle:productionDate {production_date}^^xsd:date. + source SELECT vehicle_id, van, oem_bpnl, production_date FROM vehicles +``` + +The target now consists of 4 triplets, all with the same subject (<{vehicle_id}>) and separated by a semicolon. The semicolon means, the following triplet only defines the predicate and the object while the subject from the previous triplet is reused. +In the example above, there are the following triplets: +- *<{vehicle_id}> rdf:type cx-vehicle:Vehicle*: All objects in the database table/view "vehicles" are mapped to the type cx-vehicle:Vehicle. +- *<{vehicle_id}> cx-vehicle:vehicleIdentificationNumber {van}^^xsd:string*: Relation between a vehicle and the related VAN. The type of VAN must be string. +- *<{vehicle_id}> cx-vehicle:worldManufaturerId bpnl:{oem_bpnl}*: Relation between a vehicle and its manufacturer's BPN. +- *<{vehicle_id}> cx-vehicle:productionDate {production_date}^^xsd:date*: Relation between a vehicle and it's date of production. The type of production_date must be date. + +Complex types like the load spectra are composed of many triplets. If you have stored those load spectra as SAMM specified JSON strings, you may decompose them with specific JSON functions of your database system. + +### Full example +The following example shows mappings at an OEM that can be used to determine the vehicle object by a given VIN, find the related gearbox and the associated gearbox load spectra: +``` +################################################################ +# Copyright (c) 2022,2023 T-Systems International GmbH +# Copyright (c) 2022,2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +# Copyright (c) 2022,2023 ZF Friedrichshafen AG +# Copyright (c) 2023 Allgemeine Deutsche Automobil-Club (ADAC) e.V +# Copyright (c) 2022,2023 Mercedes-Benz AG +# Copyright (c) 2022,2023 Contributors to the Catena-X Association +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License, Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0. +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +# SPDX-License-Identifier: Apache-2.0 +################################################################ +```` +```obda + [PrefixDeclaration] + cx-common: https://w3id.org/catenax/ontology/common# + cx-core: https://w3id.org/catenax/ontology/core# + cx-vehicle: https://w3id.org/catenax/ontology/vehicle# + cx-reliability: https://w3id.org/catenax/ontology/reliability# + uuid: urn:uuid: + bpnl: bpn:legal: + owl: http://www.w3.org/2002/07/owl# + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# + xml: http://www.w3.org/XML/1998/namespace + xsd: http://www.w3.org/2001/XMLSchema# + json: https://json-schema.org/draft/2020-12/schema# + obda: https://w3id.org/obda/vocabulary# + rdfs: http://www.w3.org/2000/01/rdf-schema# + oem: urn:oem: + + [MappingDeclaration] @collection [[ + mappingId vehicles + target <{vehicle_id}> rdf:type cx-vehicle:Vehicle ; cx-vehicle:vehicleIdentificationNumber {van}^^xsd:string; cx-vehicle:worldManufaturerId bpnl:{oem_bpnl}; cx-vehicle:productionDate {production_date}^^xsd:date. + source SELECT vehicle_id, van, oem_bpnl, production_date FROM vehicles + + mappingId partsvehicle + target <{gearbox_id}> cx-vehicle:isPartOf <{vehicle_id}> . + source SELECT vehicle_id, gearbox_id FROM vehicles + + mappingId vehicleparts + target <{vehicle_id}> cx-vehicle:hasPart <{gearbox_id}> . + source SELECT vehicle_id, gearbox_id FROM vehicles + + mappingId parts + target <{gearbox_id}> rdf:type cx-vehicle:Part ; cx-vehicle:id {gearbox_id}^^xsd:string; cx-vehicle:name {partTypeInformation_nameAtManufacturer}^^xsd:string; cx-vehicle:number {partTypeInformation_manufacturerPartId}^^xsd:string; cx-vehicle:supplier bpnl:{gearbox_manufacturer_bpnl}; cx-vehicle:productionDate {production_date}^^xsd:date . + source SELECT gearbox_id, production_date, 'Differential Gear' as partTypeInformation_nameAtManufacturer, gearbox_manufacturer_bpnl, 'Dummy Gearbox' as partTypeInformation_manufacturerPartId FROM vehicles + + mappingId partAnalysis + target oem:{newest_telematics_id} cx-reliability:analysedObject <{gearbox_id}>. + source SELECT gearbox_id, newest_telematics_id FROM vehicles + + mappingId analysisInformation + target oem:{id} rdf:type cx-reliability:Analysis; cx-reliability:operatingHoursOfVehicle {metadata_status_operatingHours}^^xsd:float; cx-core:startDateTime {metadata_status_date}^^xsd:dateTime; cx-core:endDateTime {metadata_status_date}^^xsd:dateTime; cx-reliability:mileageOfVehicle {metadata_status_mileage}^^xsd:int. + source SELECT id, metadata_status_operatingHours, metadata_status_date, metadata_status_mileage FROM reading + + mappingId analysisResult + target oem:{id} cx-reliability:result oem:{id}/{index}. + source SELECT id, index FROM loadspectra + + mappingId loadspectrum + target oem:{id}/{index} rdf:type cx-reliability:LoadSpectrum; cx-core:id {metadata_componentDescription}^^xsd:string; cx-core:name {metadata_projectDescription}^^xsd:string; cx-reliability:description {metadata_routeDescription}^^xsd:string; cx-reliability:countingValue {body_counts_countsName}^^xsd:string; cx-reliability:countingUnit {header_countingUnit}^^xsd:string; cx-reliability:countingMethod {header_countingMethod}^^xsd:string; cx-reliability:channels {header_channels}^^json:Object; cx-reliability:classes {body_classes}^^json:Object; cx-reliability:values {body_counts_countsList}^^json:Object . + source SELECT id, index, metadata_componentDescription, metadata_projectDescription, metadata_routeDescription, header_countingUnit, header_countingMethod, header_channels, body_classes, body_counts_countsName, body_counts_countsList FROM loadspectra + + ]] +``` + +## Graph asset for the data binding +To enable the knowledge agent's matchmaking agent to find the data bindings, a graph asset has to be registered at the EDC. This asset must have a property "rdfs:isDefinedBy" that defines the shape of the provided graph. + +``` +",,,", + "cx-common:implementsProtocol": "cx-common:Protocol?w3c:http:SPARQL", + "sh:shapesGraph": "@prefix cx-common: . \n@prefix : .\n@prefix cx-tele: .\n@prefix owl: .\n@prefix rdf: .\n@prefix xsd: .\n@prefix sh: .@prefix : .\n\n:OemLoadSpectrum rdf:type sh:NodeShape ;\n sh:targetClass cx-tele:LoadSpectrum ;\n sh:property [\n sh:path cx-tele:provisionedBy ;\n sh:hasValue \n ] ;\n sh:property [\n sh:path cx-tele:Version ;\n sh:hasValue \"0\"^^xsd:long \n ] ;\n sh:property [\n sh:path cx-tele:component ;\n sh:class :SupplierParts \n ] .\n\n:SupplierParts rdf:type sh:NodeShape ;\n sh:targetClass cx-tele:VehicleComponent ;\n sh:property [\n sh:path cx-tele:isProducedBy ;\n sh:hasValue \n ] .\n" +``` +For more information see the Knowledge Agent KIT. + +# Service Bindings +Applies to: *RuL calculation service provider* + +## Overview +In most cases, services are provided via REST APIs and are using JSON as input and output format. For the RuL use case, the output format is specified by a SAMM model. +To include those services into the knowledge graph, you have to bind/map them to the underlying ontologies. + +## Service mapping tool +To bind a service to the knowledge graph, you must use a **remoting agent**, also called the **service binding agent**. The software **RDF4J** (see the RDF4J webpage [https://rdf4j.org/](https://rdf4j.org/)), which is under the Eclipse Distribution License (EDL), v1.0, is our tool of choice in this case. + +## Service mapping configuration +For RDF4J, a configuration must be provided that formally describes the service binding. +The configuration is written in Turtle (Terse RDF Triple Language) and has the extension **.ttl**. For more information, see the Knowledge Agent KIT. + +### RDF4J repository +The RDF4J repository is the basic configuration that refers to the service object and defines the callback endpoint for an asynchronous response of this service. + +```ttl +################################################################ +# Copyright (c) 2022,2023 T-Systems International GmbH +# Copyright (c) 2022,2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +# Copyright (c) 2022,2023 ZF Friedrichshafen AG +# Copyright (c) 2023 Allgemeine Deutsche Automobil-Club (ADAC) e.V +# Copyright (c) 2022,2023 Mercedes-Benz AG +# Copyright (c) 2022,2023 Contributors to the Catena-X Association +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License, Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0. +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +# SPDX-License-Identifier: Apache-2.0 +################################################################ + +[] rdf:type rep:Repository ; + rep:repositoryID "rul" ; + rdfs:label "Remainig Useful Life Functions Repository" ; + rep:repositoryImpl [ + rep:repositoryType "openrdf:SailRepository" ; + sr:sailImpl [ + sail:sailType "org.eclipse.tractusx.agents:Remoting" ; + cx-fx:supportsInvocation cx-behaviour:RemainingUsefulLife; + cx-fx:callbackAddress ; + ] + ]. +``` + +The callback address in this example is the callback address of the own RDF4J server. + +### Types to be bound +#### cx-fx:Function +Definition of the function. It defines the endpoint and describes the input and output elements (analogous to the ontology). + +```ttl +################################################################ +# Copyright (c) 2022,2023 T-Systems International GmbH +# Copyright (c) 2022,2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +# Copyright (c) 2022,2023 ZF Friedrichshafen AG +# Copyright (c) 2023 Allgemeine Deutsche Automobil-Club (ADAC) e.V +# Copyright (c) 2022,2023 Mercedes-Benz AG +# Copyright (c) 2022,2023 Contributors to the Catena-X Association +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License, Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0. +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +# SPDX-License-Identifier: Apache-2.0 +################################################################ + +cx-behaviour:RemainingUsefulLife rdf:type cx-fx:Function; + dcterms:description "Remaining Useful Life is an asynchronous batch invocation."@en ; + dcterms:title "Remaining Useful Life" ; + cx-fx:targetUri "https://rul.supplier.com/api/v1/routine/notification"; + cx-fx:invocationMethod "POST-JSON"; + # cx-common:authenticationKey "Authorization"; + # cx-common:authenticationCode "Basic Zdm7vsdgasfghcg=="; + cx-fx:invocationMethod "POST-JSON"; + cx-fx:invocationIdProperty "header.notificationID,content.requestRefId"; + cx-fx:callbackProperty "header.respondAssetId"; + cx-fx:input cx-behaviour:notification; + cx-fx:input cx-behaviour:sender; + cx-fx:input cx-behaviour:senderConnector; + cx-fx:input cx-behaviour:recipient; + cx-fx:input cx-behaviour:recipientConnector; + cx-fx:input cx-behaviour:recipient; + cx-fx:input cx-behaviour:recipientConnector; + cx-fx:input cx-behaviour:severity; + cx-fx:input cx-behaviour:status; + cx-fx:input cx-behaviour:targetDate; + cx-fx:input cx-behaviour:timeStamp; + cx-fx:input cx-behaviour:classification; + cx-fx:input cx-behaviour:component; + cx-fx:input cx-behaviour:observationType; + cx-fx:input cx-behaviour:statusDate; + cx-fx:input cx-behaviour:statusOperatingHours; + cx-fx:input cx-behaviour:statusMileage; + cx-fx:input cx-behaviour:observationType; + cx-fx:input cx-behaviour:metadata; + cx-fx:input cx-behaviour:countingMethod; + cx-fx:input cx-behaviour:countingValue; + cx-fx:input cx-behaviour:countingUnit; + cx-fx:input cx-behaviour:headerChannels; + cx-fx:input cx-behaviour:bodyClasses; + cx-fx:input cx-behaviour:bodyCountsList; + cx-fx:result cx-behaviour:response. +``` + +#### cx-fx:Argument +The input data that are received from the knowledge graph are converted to the desired JSON format that is requested by the service. Therefore, each value (input parameter) that is represented in the ontology as a separate object must be described as an argument which is related to the corresponding JSON path. The argument name represents the JSON path. Default values can be specified in case some values are not present in the knowledge graph. + +```ttl +cx-behaviour:recipient rdf:type cx-fx:Argument; + dcterms:description "Recipient of the notification as a BPN."@en ; + dcterms:title "Notification Recipient"; + cx-fx:argumentName "header.recipientBPN"; + cx-fx:default "anonymous". +``` + +#### cx-fx:Result +The result of the service is also a JSON string. It consists of properties and output values. +The mapping must provide all data that are defined in the ontology. +The properties are of predefined types and are mapped directly (without further descriptions and attributes). +The output values are specified each separate. + +```ttl +################################################################ +# Copyright (c) 2022,2023 T-Systems International GmbH +# Copyright (c) 2022,2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +# Copyright (c) 2022,2023 ZF Friedrichshafen AG +# Copyright (c) 2023 Allgemeine Deutsche Automobil-Club (ADAC) e.V +# Copyright (c) 2022,2023 Mercedes-Benz AG +# Copyright (c) 2022,2023 Contributors to the Catena-X Association +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License, Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0. +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +# SPDX-License-Identifier: Apache-2.0 +################################################################ + +cx-behaviour:response rdf:type cx-fx:Result; + dcterms:description "The asynchronous notification response."@en ; + dcterms:title "Asynchronous notification response." ; + cx-fx:callbackProperty "header.referencedNotificationID"; + cx-fx:outputProperty "content.endurancePredictorOutputs"; + cx-fx:output cx-behaviour:remainingOperatingHours; + cx-fx:output cx-behaviour:remainingRunningDistance. +``` + +#### cx-fx:ReturnValue +The output values (return values) are specified with their path in the output JSON structure and their data type. + +```ttl +################################################################ +# Copyright (c) 2022,2023 T-Systems International GmbH +# Copyright (c) 2022,2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +# Copyright (c) 2022,2023 ZF Friedrichshafen AG +# Copyright (c) 2023 Allgemeine Deutsche Automobil-Club (ADAC) e.V +# Copyright (c) 2022,2023 Mercedes-Benz AG +# Copyright (c) 2022,2023 Contributors to the Catena-X Association +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License, Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0. +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +# SPDX-License-Identifier: Apache-2.0 +################################################################ + +cx-behaviour:remainingOperatingHours rdf:type cx-fx:ReturnValue; + dcterms:description "Predicted Operating Hours of Remaining Useful Life Response"@en ; + dcterms:title "Remaining Useful Life Operating Hours" ; + cx-fx:valuePath "0.remainingUsefulLife.remainingOperatingHours"; + cx-fx:dataType xsd:float. +``` + +### Full Example +In this example, an asynchronous calculation service for gearbox RuL values is bound. It uses the Catena-X notification format as a container for the input data. The content of the notification is a JSON structure with a list of load spectra in it. The input format provides more than one Element (batch processing), but the RuL logic always requires exact one input per calculation. Therefore, always the first (and only the first) item of the input list is bound. + +```ttl +################################################################ +# Copyright (c) 2022,2023 T-Systems International GmbH +# Copyright (c) 2022,2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +# Copyright (c) 2022,2023 ZF Friedrichshafen AG +# Copyright (c) 2023 Allgemeine Deutsche Automobil-Club (ADAC) e.V +# Copyright (c) 2022,2023 Mercedes-Benz AG +# Copyright (c) 2022,2023 Contributors to the Catena-X Association +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License, Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0. +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +# SPDX-License-Identifier: Apache-2.0 +################################################################ + +# +# Rdf4j configuration for a rul-specific remoting +# +@prefix rdf: . +@prefix rdfs: . +@prefix rep: . +@prefix sr: . +@prefix sail: . +@prefix sp: . +@prefix xsd: . +@prefix json: . +@prefix dcterms: . +@prefix cx-fx: . +@prefix cx-common: . +@prefix cx-core: . +@prefix cx-vehicle: . +@prefix cx-reliability: . +@prefix cx-behaviour: . + +[] rdf:type rep:Repository ; + rep:repositoryID "rul" ; + rdfs:label "Remainig Useful Life Functions Repository" ; + rep:repositoryImpl [ + rep:repositoryType "openrdf:SailRepository" ; + sr:sailImpl [ + sail:sailType "org.eclipse.tractusx.agents:Remoting" ; + cx-fx:supportsInvocation cx-behaviour:RemainingUsefulLife; + cx-fx:callbackAddress ; + ] + ]. + +cx-behaviour:RemainingUsefulLife rdf:type cx-fx:Function; + dcterms:description "Remaining Useful Life is an asynchronous batch invocation."@en ; + dcterms:title "Remaining Useful Life" ; + cx-fx:targetUri "https://rul.supplier.com/api/v1/routine/notification"; + cx-fx:invocationMethod "POST-JSON"; +# cx-common:authenticationKey "Authorization"; +# cx-common:authenticationCode "Basic AAAAAAAAAAAAA=="; + cx-fx:invocationMethod "POST-JSON"; + cx-fx:invocationIdProperty "header.notificationID,content.requestRefId"; + cx-fx:callbackProperty "header.respondAssetId"; + cx-fx:input cx-behaviour:notification; + cx-fx:input cx-behaviour:sender; + cx-fx:input cx-behaviour:senderConnector; + cx-fx:input cx-behaviour:recipient; + cx-fx:input cx-behaviour:recipientConnector; + cx-fx:input cx-behaviour:recipient; + cx-fx:input cx-behaviour:recipientConnector; + cx-fx:input cx-behaviour:severity; + cx-fx:input cx-behaviour:status; + cx-fx:input cx-behaviour:targetDate; + cx-fx:input cx-behaviour:timeStamp; + cx-fx:input cx-behaviour:classification; + cx-fx:input cx-behaviour:component; + cx-fx:input cx-behaviour:observationType; + cx-fx:input cx-behaviour:statusDate; + cx-fx:input cx-behaviour:statusOperatingHours; + cx-fx:input cx-behaviour:statusMileage; + cx-fx:input cx-behaviour:observationType; + cx-fx:input cx-behaviour:metadata; + cx-fx:input cx-behaviour:countingMethod; + cx-fx:input cx-behaviour:countingValue; + cx-fx:input cx-behaviour:countingUnit; + cx-fx:input cx-behaviour:headerChannels; + cx-fx:input cx-behaviour:bodyClasses; + cx-fx:input cx-behaviour:bodyCountsList; + cx-fx:result cx-behaviour:response. + +cx-behaviour:notification rdf:type cx-fx:Argument; + dcterms:description "A default notification output template."@en ; + dcterms:title "Notification Template"; + cx-fx:argumentName "."; + cx-fx:dataType json:Object; + cx-fx:priority "-1"^^xsd:integer; + #cx-fx:default "{ \"content\": { \"endurancePredictorInputs\": [ { } ]}}"^^json:Object. + cx-fx:default "{ \"content\": { \"endurancePredictorInputs\": [ ]}}"^^json:Object. + +cx-behaviour:sender rdf:type cx-fx:Argument; + dcterms:description "Sender of the notification as a BPN."@en ; + dcterms:title "Notification Sender"; + cx-fx:argumentName "header.senderBPN"; + cx-fx:default "anonymous". + +cx-behaviour:senderConnector rdf:type cx-fx:Argument; + dcterms:description "Sender Address of the notification as a URL."@en ; + dcterms:title "Notification Sender Address"; + cx-fx:argumentName "header.senderAddress"; + cx-fx:default "unknown". + +cx-behaviour:recipient rdf:type cx-fx:Argument; + dcterms:description "Recipient of the notification as a BPN."@en ; + dcterms:title "Notification Recipient"; + cx-fx:argumentName "header.recipientBPN"; + cx-fx:default "anonymous". + +cx-behaviour:recipientConnector rdf:type cx-fx:Argument; + dcterms:description "Recipient Address of the notification as a URL."@en ; + dcterms:title "Notification Recipient Address"; + cx-fx:argumentName "header.recipientAddress"; + cx-fx:default "unknown". + +cx-behaviour:severity rdf:type cx-fx:Argument; + dcterms:description "Severity of the notification."@en ; + dcterms:title "Notification Severity"; + cx-fx:argumentName "header.severity"; + cx-fx:dataType xsd:string; + cx-fx:default "MINOR". + +cx-behaviour:status rdf:type cx-fx:Argument; + dcterms:description "Status of the notification."@en ; + dcterms:title "Notification Status"; + cx-fx:argumentName "header.status"; + cx-fx:dataType xsd:string; + cx-fx:default "SENT". + +cx-behaviour:targetDate rdf:type cx-fx:Argument; + dcterms:description "Target Date of the notification."@en ; + dcterms:title "Notification Target Date"; + cx-fx:dataType xsd:dateTime; + cx-fx:argumentName "header.targetDate". + +cx-behaviour:timeStamp rdf:type cx-fx:Argument; + dcterms:description "Timestamp of the notification."@en ; + dcterms:title "Notification Timestamp"; + cx-fx:dataType xsd:dateTime; + cx-fx:argumentName "header.timeStamp". + +cx-behaviour:classification rdf:type cx-fx:Argument; + dcterms:description "Classification of the notification."@en ; + dcterms:title "Notification Classification"; + cx-fx:argumentName "header.classification"; + cx-fx:dataType xsd:string; + cx-fx:default "RemainingUsefulLifePredictor". + +cx-behaviour:component rdf:type cx-fx:Argument; + dcterms:description "Component of the Predicition."@en ; + dcterms:title "Predicted Component"; + cx-fx:formsBatchGroup "true"^^xsd:boolean; + cx-fx:argumentName "content.endurancePredictorInputs.0.componentId,content.endurancePredictorInputs.0.classifiedLoadSpectrum{https://w3id.org/catenax/ontology/behaviour#observationType}.targetComponentId". + +cx-behaviour:observationType rdf:type cx-fx:Argument; + dcterms:description "The type of observation made."@en ; + dcterms:title "Observation Type"; + cx-fx:argumentName "content.endurancePredictorInputs.0.classifiedLoadSpectrum{https://w3id.org/catenax/ontology/behaviour#observationType}.metadata.componentDescription"; + cx-fx:dataType xsd:string. + +cx-behaviour:metadata rdf:type cx-fx:Argument; + dcterms:description "Metadata of the Loadspectrum."@en ; + dcterms:title "Loadspectrum Metadata"; + cx-fx:argumentName "content.endurancePredictorInputs.0.classifiedLoadSpectrum{https://w3id.org/catenax/ontology/behaviour#observationType}"; + cx-fx:dataType json:Object; + cx-fx:priority "0"^^xsd:integer; + cx-fx:default "{ \"metadata\":{ \"projectDescription\": \"pnr_76543\", \"routeDescription\": \"logged\" }, \"bammId\": \"urn:bamm:io.openmanufacturing.digitaltwin:1.0.0#ClassifiedLoadSpectrum\" }"^^json:Object. + +cx-behaviour:statusDate rdf:type cx-fx:Argument; + dcterms:description "Time of Recording."@en ; + dcterms:title "Loadspectrum Recording Time"; + cx-fx:dataType xsd:dateTime; + cx-fx:argumentName "content.endurancePredictorInputs.0.classifiedLoadSpectrum{https://w3id.org/catenax/ontology/behaviour#observationType}.metadata.status.date". + +cx-behaviour:statusOperatingHours rdf:type cx-fx:Argument; + dcterms:description "Operating Hours of Target Component at Time of Recording."@en ; + dcterms:title "Loadspectrum Operating Hours"; + cx-fx:dataType xsd:float; + cx-fx:argumentName "content.endurancePredictorInputs.0.classifiedLoadSpectrum{https://w3id.org/catenax/ontology/behaviour#observationType}.metadata.status.operatingHours". + +cx-behaviour:statusMileage rdf:type cx-fx:Argument; + dcterms:description "Mileage of Component at Time of Recording."@en ; + dcterms:title "Loadspectrum Mileage"; + cx-fx:dataType xsd:int; + cx-fx:argumentName "content.endurancePredictorInputs.0.classifiedLoadSpectrum{https://w3id.org/catenax/ontology/behaviour#observationType}.metadata.status.mileage". + +cx-behaviour:countingUnit rdf:type cx-fx:Argument; + dcterms:description "Counting Unit of Load Spectrum."@en ; + dcterms:title "Loadspectrum Counting Unit"; + cx-fx:dataType xsd:string; + cx-fx:argumentName "content.endurancePredictorInputs.0.classifiedLoadSpectrum{https://w3id.org/catenax/ontology/behaviour#observationType}.header.countingUnit". + +cx-behaviour:countingValue rdf:type cx-fx:Argument; + dcterms:description "Counting Value Name of Load Spectrum."@en ; + dcterms:title "Loadspectrum Counting Value"; + cx-fx:dataType xsd:string; + cx-fx:argumentName "content.endurancePredictorInputs.0.classifiedLoadSpectrum{https://w3id.org/catenax/ontology/behaviour#observationType}.header.countingValue,content.endurancePredictorInputs.0.classifiedLoadSpectrum{https://w3id.org/catenax/ontology/behaviour#observationType}.body.counts.countsName". + +cx-behaviour:countingMethod rdf:type cx-fx:Argument; + dcterms:description "Counting Method of Load Spectrum."@en ; + dcterms:title "Loadspectrum Counting Method"; + cx-fx:dataType xsd:string; + cx-fx:argumentName "content.endurancePredictorInputs.0.classifiedLoadSpectrum{https://w3id.org/catenax/ontology/behaviour#observationType}.header.countingMethod". + +cx-behaviour:headerChannels rdf:type cx-fx:Argument; + dcterms:description "Channels of Load Spectrum."@en ; + dcterms:title "Loadspectrum Channels"; + cx-fx:dataType json:Object; + cx-fx:argumentName "content.endurancePredictorInputs.0.classifiedLoadSpectrum{https://w3id.org/catenax/ontology/behaviour#observationType}.header.channels". + +cx-behaviour:bodyClasses rdf:type cx-fx:Argument; + dcterms:description "Classes of Load Spectrum."@en ; + dcterms:title "Loadspectrum Classes"; + cx-fx:dataType json:Object; + cx-fx:argumentName "content.endurancePredictorInputs.0.classifiedLoadSpectrum{https://w3id.org/catenax/ontology/behaviour#observationType}.body.classes". + +cx-behaviour:bodyCountsList rdf:type cx-fx:Argument; + dcterms:description "Counts List of Load Spectrum."@en ; + dcterms:title "Loadspectrum Counts List"; + cx-fx:dataType json:Object; + cx-fx:argumentName "content.endurancePredictorInputs.0.classifiedLoadSpectrum{https://w3id.org/catenax/ontology/behaviour#observationType}.body.counts.countsList". + +cx-behaviour:response rdf:type cx-fx:Result; + dcterms:description "The asynchronous notification response."@en ; + dcterms:title "Asynchronous notification response." ; + cx-fx:callbackProperty "header.referencedNotificationID"; + cx-fx:outputProperty "content.endurancePredictorOutputs"; + cx-fx:output cx-behaviour:remainingOperatingHours; + cx-fx:output cx-behaviour:remainingRunningDistance. + +cx-behaviour:remainingOperatingHours rdf:type cx-fx:ReturnValue; + dcterms:description "Predicted Operating Hours of Remaining Useful Life Response"@en ; + dcterms:title "Remaining Useful Life Operating Hours" ; + cx-fx:valuePath "0.remainingUsefulLife.remainingOperatingHours"; + cx-fx:dataType xsd:float. + +cx-behaviour:remainingRunningDistance rdf:type cx-fx:ReturnValue; + dcterms:description "Predicted Distance of Remaining Useful Life Response"@en ; + dcterms:title "Remaining Useful Life Distance" ; + cx-fx:valuePath "0.remainingUsefulLife.remainingRunningDistance"; + cx-fx:dataType xsd:int. +``` + +## Graph asset for the service binding +To enable the knowledge agent's matchmaking agent to find the service binding, a graph asset has to be registered at the EDC. This asset must have a property "rdfs:isDefinedBy" that defines the shape of the provided graph. + +``` +",,,", + "cx-common:implementsProtocol": "cx-common:Protocol?w3c:http:SPARQL", + "sh:shapesGraph": "@prefix cx-common: . \n@prefix : .\n@prefix cx-prognosis: .\n@prefix cx-fx: .\n@prefix owl: .\n@prefix rdf: .\n@prefix xsd: .\n@prefix sh: .\n\n:Tier1LifetimePrognosis rdf:type sh:NodeShape ;\n sh:targetClass cx-prognosis:Function ;\n sh:property [\n sh:path cx-prognosis:provisionedBy ;\n sh:hasValue ]." +``` +For more information see the [Knowledge Agent KIT](https://bit.ly/tractusx-agents). diff --git a/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin RuL Kit/assets/RKIT_Building_Block_Architecture_Overview_V1.png b/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin RuL Kit/assets/RKIT_Building_Block_Architecture_Overview_V1.png new file mode 100644 index 00000000000..a23a972e5a1 Binary files /dev/null and b/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin RuL Kit/assets/RKIT_Building_Block_Architecture_Overview_V1.png differ diff --git a/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin RuL Kit/assets/RKIT_business_process_1.png b/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin RuL Kit/assets/RKIT_business_process_1.png new file mode 100644 index 00000000000..f93dbe77d10 Binary files /dev/null and b/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin RuL Kit/assets/RKIT_business_process_1.png differ diff --git a/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin RuL Kit/assets/RKIT_business_process_2.png b/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin RuL Kit/assets/RKIT_business_process_2.png new file mode 100644 index 00000000000..a796f9c6537 Binary files /dev/null and b/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin RuL Kit/assets/RKIT_business_process_2.png differ diff --git a/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin RuL Kit/assets/rul_architecture_overview.png b/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin RuL Kit/assets/rul_architecture_overview.png new file mode 100644 index 00000000000..e40d7f88b3d Binary files /dev/null and b/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin RuL Kit/assets/rul_architecture_overview.png differ diff --git a/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin RuL Kit/page_adoption-view.md b/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin RuL Kit/page_adoption-view.md new file mode 100644 index 00000000000..919168d51a9 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin RuL Kit/page_adoption-view.md @@ -0,0 +1,169 @@ +--- +id: Adoption View Remaining Useful Life Kit +title: Adoption View +description: 'Remaining Useful Life Kit' +sidebar_position: 2 +--- + +![Remaining Useful Life kit banner](@site/static/img/doc-rul_header-minified.png) + +### Remaining Useful Life Kit + + +## Vision & Mission + +### Vision + +Calculating Remaining Useful Life is a business. + +The *Remaining Useful Life* Kit aims at novel business models based on the calculation of *Remaining Useful Life*. The wide range of possible applications starts with product development and finally extends to recycling: the entire product life cycle offers potential. The *Remaining Useful Life* Kit provides efficient support in planning, designing, building, using and operating *Remaining Useful Life* Services and applications based on them. + +### Mission + +The *Remaining Useful Life* Kit comes with the necessary Catena-X standards for damage models and remaining useful life statements. On this basis, interoperable solutions are created. The KIT includes tools for the simple implementation of component-specific damage models and for linking the damage models with dynamic input data. All components are easily adaptable to specific applications and simplify the journey to the finished service. + + + +### Customer Journey + +With the *Remaining Useful Life* Kit, we support the Catena-X customer journey for our adopters and solutions providers. + + + +## Business Value + +Through the standardized specifications described in the *Remaining Useful Life* Kit – for example the semantic models and APIs – application and service providers can reduce investment and implementation costs to integrate new Catena-X services. Furthermore, application, data, model and service providers can enter potential new markets within the entire product life cycle. + +## Use Case + +- OEM, TIER-X: In the early development phase, components can be designed using digital prototypes based on component-specific damage calculation. The load data required for this comes from simulation or measurement in the digital twin. + +- Tier-X: The overall product range becomes more attractive in the offer phase when model-based damage calculation is included as a product-related service. + +- During the usage phase, OEMs, car dealers and automotive clubs can further interpret the *Remaining Useful Life* calculation for a vehicle evaluation and offer it as vehicle-related services for their end customers and fleet operators. + +- Even during the usage phase, but particularly during the recycling phase, OEMs, Tier-X, automotive clubs, car dealers, insurers, fleet operators and recyclers benefit from precise residual value analyses of the entire vehicle and its components on the basis of component-specific damage calculation. + + +### Status Quo + +Within company limits, the calculation of component damage based on internally available data and models is already state of the art. However, across company boundaries, there are only individual, complex and not generally available options for calculating component-specific damage. + +### Today’s challenge + +For successful implementation, the following challenges must be addressed: + +- the correct allocation of the appropriate damage calculation to the respective component +- recording and providing the necessary input variables +- an easy-to-interpret preparation of results +- easy scalability across company boundaries + +### Benefits + +**OEMs and big suppliers** benefit from cost savings, improved quality and shorter development times through customer-data-based, precise design of individual components and the entire system. The decisive hub is created by using load data and damage models across company boundaries — always in compliance with IP and data protection. + +It will be easier for **SMEs** to use product-related *Remaining Useful Life* services, for example for design and recycling. + +Generating added value by providing *Remaining Useful Life* services offers new areas of business for **solution providers**. These can be the suppliers themselves, pure service providers or so-called value-added resellers (VAR). + +## Logic & Schema + +### Building Block View +The architecture image describes the interaction between the RuL Service and the Knowledge Agent components. + +![Building Block Architecture Overview](assets/RKIT_Building_Block_Architecture_Overview_V1.png) + +The Consumer A is only allowed to communicate via the Data Provider B. +The indirect communication ensures data sovereignty for Data Provider B (as B might not want to advertise its providers). Thus, the communication of the RuL result is to Data Provider B and is not allowed to deliver the result directly to A. + +### RuL Components +|Subsystem|Description| +|---------|-----------| +|Data Consuming App| This component is the app that is hosted at the Consumer and provides the end user interface. The end user can enter a vehicle identifier number (VIN) and gets back a calculated RuL value.
The returned value from the calculation services is SAMM specified. The app can provide another representation.| +|Loading Data | A data source at the Data Provider that provides the loading data and other vehicle data that are needed for the RuL calculation.
It can be accessed by the knowledge agent via data bindings.| +|RuL Service| A RuL calculation service at the Service Provider. It accepts input data from the Data Provider, calculates the RuL value and returns it.| + +### Knowledge Agent components +|Subsystem|Description| +|---------|-----------| +|Matchmaking Agent|This component supports SparQL to traverse the federated data space as a large data structure. It interacts with the EDC.
  • The provider's Matchmaking Agent will be activated by its EDC. Therefore, the EDC must offer a Graph Asset (variant of ordinary data assets in the Catena-X EDC standard).
  • The consumer's Matchmaking Agent interacts with its EDC to negotiate and perform the transfer of Sub-Skills to other dataspace participants.
The Matchmaking Agents are matching the (sub)graphs and negotiate appropriated graph assets with the partner EDCs.| +|Binding Agent| The Binding Agent is a restricted version of the Matchmaking Agent (subset of OWL/SparQL, e.g., without federation) which is just focused on translating Sub-Skills of a particular business domain (Bill-Of-Material, Chemical Materials, Production Sites, etc.) into proper SQL- or REST based backend system calls.
Implementation details: For data bindings, OnTop is used. For service bindings, RDF4J is used.| +|Ontology|The ontology is a formal representation of knowledge that captures concepts, relationships, and properties. It allows a shared understanding and reasoning about the respective domain.
It must be hosted in a way that all participants can access it. Currently, the ontology is hosted at GitHub.| +|Skill/Sub-Skill| The Skill describes, what to do (which data have to be connected, transferred and so on).| + +### Catena-X Core Services (except Knowledge Agent components) +|Subsystem|Description| +|---------|-----------| +|Eclipse Dataspace Components (EDC)|The Connector of the Eclipse Dataspace Components provides a framework for sovereign, inter-organizational data exchange. It implements the International Data Spaces standard (IDS) as well as relevant protocols associated with GAIA-X. The connector is designed in an extensible way in order to support alternative protocols and integrate in various ecosystems.| + + + +## Business Process +Two different cases need to be specified. + +### Service Consumer does not have input data for RuL Service available; RuL calculation based on vin. +![Business Process 3 Partners](assets/RKIT_business_process_1.png) +- Service Consumer provides Vin to OEM + +- OEM procures vin specific service inputs from vehicle + +- OEM forwards input to service providers + +- Service providers calculate RuL values + +- RuL results are provided to the Service consumer via the OEM + +### Service Consumer has input data for RuL Service available: +![Business Process 3 Partners](assets/RKIT_business_process_2.png) +- Service consumer needs to collect or generate load/input for RuL calculation, e.g. through driver questionnaire. +- Service provider uses the input to estimate RuL and send it back to Service Consumer + +### Access Policies +To decide which company has access to the data assets, access policy should be used. It is maybe possible to skip access policies, but this will made all data assets public available in the Catena-X network and is not recommended. Therefore, every asset should be protected and only be made available for specific companies, identified through their business partner number (BPN). In the near future, other access policies will be introduced like a company role and attribute based policy. Further details can be found in this page of the [EDC](https://github.com/eclipse-tractusx/tractusx-edc/tree/main/edc-extensions/business-partner-validation). + +### Usage policies +Use case specific credentials exist and will be mandatory. Their documentation will be available after SSI release. +A Behaviour Twin "Use Case Rahmenbedingung" which covers the business process of the app will be available after SSI release. +This Rahmenbedingung document can be referenced in the usage policies, and therefore limit Data & Service access to Behaviour Twin participants. + + +## Semantic Models & Standards + +Our relevant standards can be downloaded from the official [Catena-X Standard Library](https://catena-x.net/de/standard-library). + + +- [CX - 0056 Semantic Model: ClassifiedLoadSpectrum:](https://catena-x.net/fileadmin/user_upload/Standard-Bibliothek/Archiv/Update_Juli_23_R_3.2/CX-0056-SemanticModelClassifiedLoadSpectrum.pdf) + + _The data model “ClassifiedLoadSpectrum” represents the load data of a vehicle component. The load spectrum is a data set that represents the aggregated loading of a component. Any kind of loading is covered: loading can be force or torque or revolutions or temperature or event or similar. The load data is classified and counted with specific counting methods. This standard defines the format for the counted load data, so that the exchange of load data between different partners is possible._ + + +- [CX - 0057 Semantic Model: RemainingUsefulLife:](https://catena-x.net/fileadmin/user_upload/Standard-Bibliothek/Archiv/Update_Juli_23_R_3.2/CX-0057-SemanticModelRemainingUsefulLife.pdf) + + _The data model Remaining Useful Life contains the two relevant values to describe the expected remaining life of a vehicle, remaining running distance and remaining operating hours. The data model is used for vehicle parts and vehicle components which cannot be visually assessed but need the loading information combined with a damage model to estimate the health of the component._ + + +- [CX - 0058 API: Endurance Predictor:](https://catena-x.net/fileadmin/user_upload/Standard-Bibliothek/Archiv/Update_Juli_23_R_3.2/CX-0058-APIEndurancePredictor.pdf) + + _This documentation describes the technical specification to enable the request of standardized "Remaining Useful Life (RUL)" data at component level of a concrete vehicle instance ("as built") and its integration into the Eclipse Dataspace connector (EDC). It sets the standards for the API for the usage of services which calculate a so-called "remaining useful life value" (RUL-value, see CX-0057). This standard covers exclusively the definition of the specific API endpoint._ + +- [CX - 0059 Triangle Behavioral Twin Endurance Predictor:](https://catena-x.net/fileadmin/user_upload/Standard-Bibliothek/Update_September23/CX-0059-TriangleBehavioralTwinEndurancePredictorService-v.1.1.0.pdf) + + _This triangle document acts as a bracket for single standards required to request "Remaining Useful Life (RUL)" data as well as providing a service for its calculation at a component level.Included are APIs to be provided by the service provider and the service requestor, as well as aspect models for the respective payloads being exchanged in an asynchronous pattern leveraging those APIs._ + +- [CX - 0088 Aspect Model User Estimated Loading:](https://catena-x.net/fileadmin/user_upload/Standard-Bibliothek/Update_September23/CX-0088-AspectModel_UserEstimatedLoading_v1.0.0.pdf) + + _The semantic model for "User Estimated Loading" is the structured input for the Endurance Estimator Service. This Service should be used by normal customer without special knowledge of technical details of the car or access to ECU data. The input is basic data about the vehicle and information about the usage, previous usage as well as future usage._ + +- [CX - 0089 Triangle BehaviourTwin EnduranceEstimator:](https://catena-x.net/fileadmin/user_upload/Standard-Bibliothek/Update_September23/CX-0089-TriangleBehavioralTwinEnduranceEstimator_v.1.0.0.pdf) + + _This triangle document acts as a bracket for single standards required to request "Remaining Useful Life (RUL)" data as well as providing a service for its estimation. Included are APIs to be provided by the service provider and the service requestor, as well as aspect models for the respective payloads being exchanged in an asynchronous pattern leveraging those APIs._ + +- [CX - 0090 API EnduranceEstimator:](https://catena-x.net/fileadmin/user_upload/Standard-Bibliothek/Update_September23/CX-0090-APIEnduranceEstimator_v1.0.0.pdf) + + _This documentation describes the technical specification to enable the request of standardized "Remaining Useful Life (RUL)" data for "User Estimated Loading" and its integration into the Eclipse Dataspace connector (EDC). It sets the standards for the API for the usage of services which estimates a so-called "remaining useful life value" (RUL-value, see CX-0057) using estimated load data ("User Estimated Loading", see CX-0088). This standard covers exclusively the illustration of the specific API endpoints._ + + + diff --git a/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin RuL Kit/page_changelog.md b/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin RuL Kit/page_changelog.md new file mode 100644 index 00000000000..5cf5636a2df --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin RuL Kit/page_changelog.md @@ -0,0 +1,41 @@ +--- +id: Changelog Remaining Useful Life Kit +title: Changelog +description: 'Remaining Useful Life Kit' +sidebar_position: 1 +--- + +![Remaining Useful Life kit banner](@site/static/img/doc-rul_header-minified.png) + +### Remaining Useful Life Kit + +All notable changes to this Kit will be documented in this file. + + +## [0.1.1] - 2023-09-07 + +### Added + +- Adoption View: added license notice section. + +### Changed + +- Unified KIT name in menues/sidebars. + +### Removed + +- Removed unused page "Documentation". + +## [0.1.0] - 2023-09-07 + +### Added + +- Initial version of the KIT including adoption, operation and development view. + +### Changed + +- ./. + +### Removed + +- ./. diff --git a/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin RuL Kit/page_software-operation-view.md b/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin RuL Kit/page_software-operation-view.md new file mode 100644 index 00000000000..1c5fdd693a2 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Behaviour Twin RuL Kit/page_software-operation-view.md @@ -0,0 +1,165 @@ +--- +id: Operation View Remaining Useful Life Kit +title: Operation View +description: 'Remaining Useful Life Kit' +sidebar_position: 3 +--- + +![Remaining Useful Life kit banner](@site/static/img/doc-rul_header-minified.png) + +### Remaining Useful Life Kit + + + +Based on the information provided in this KIT, it is possible to provide and/or consume services defined as Agent Skills based on the Behaviour Twin standards (ontology, SAMM models). + +Depending on the role within the RuL Use Case, different Knowledge Agent components are needed. +The needed information regarding Agent Kit components, their deployment and configuration, refer to the *Agent Kit Operation View Section*. + +# Deployment of Graph Assets + +## Data Provider Graph Asset +If you are engaged as a data provider within the RuL KIT, you can mount your data source to the federated knowledge graph as Graph Asset. +Beside the policy and contract definition, a Graph Asset registration is needed. It can like following example with a baseUrl set to the sparql endpoint of your provision agent: +```json +{ + "@context": { + "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "cx-common": "https://w3id.org/catenax/ontology/common#", + "sh": "http://www.w3.org/ns/shacl#", + "edc": "https://w3id.org/edc/v0.0.1/ns/" + }, + "asset": { + "@type": "Asset", + "@id": "GraphAsset?oem=BehaviourTwinReliability", + "properties": { + "name": "OEM portion of the Behaviour Twin Reliablity Testdataset.", + "name@de": "OEM Anteil an den Verhaltenszwilling ReliabilityTestdaten.", + "description": "A graph asset/offering mounting Carena-X Testdata for Behaviour Twin.", + "description@de": "Ein Graph Angebot welches Catena-X Testdaten beinhaltet.", + "version": "CX_RuL_Testdata_v1.0.0", + "contenttype": "application/json, application/xml", + "cx-common:publishedUnderContract": "Contract?oem=Graph", + "rdf:type": "cx-common:GraphAsset", + "rdfs:isDefinedBy": ",,,", + "cx-common:implementsProtocol": "cx-common:Protocol?w3c:http:SPARQL", + "sh:shapesGraph": "@prefix cx-common: . \n@prefix : .\n@prefix cx-tele: .\n@prefix owl: .\n@prefix rdf: .\n@prefix xsd: .\n@prefix sh: .@prefix : .\n\n:OemLoadSpectrum rdf:type sh:NodeShape ;\n sh:targetClass cx-tele:LoadSpectrum ;\n sh:property [\n sh:path cx-tele:provisionedBy ;\n sh:hasValue \n ] ;\n sh:property [\n sh:path cx-tele:Version ;\n sh:hasValue \"0\"^^xsd:long \n ] ;\n sh:property [\n sh:path cx-tele:component ;\n sh:class :SupplierParts \n ] .\n\n:SupplierParts rdf:type sh:NodeShape ;\n sh:targetClass cx-tele:VehicleComponent ;\n sh:property [\n sh:path cx-tele:isProducedBy ;\n sh:hasValue \n ] .\n", + "cx-common:isFederated": "true^^xsd:boolean" + } + }, + "dataAddress": { + "id": "GraphAsset?oem=BehaviourTwinReliability", + "@type": "DataAddress", + "baseUrl": "{{provisioningAgent}}/{{reliabilityPath}}/sparql", + "type": "cx-common:Protocol?w3c:http:SPARQL", + "proxyPath": "false", + "proxyMethod": "true", + "proxyQueryParams": "true", + "proxyBody": "true", + "authKey": "{{oemBackendAuthKey}}", + "authCode": "{{oemBackendAuthCode}}" + } +} +``` +It also provides some META-Information's, which are for example, to find a specific based on isDefinedBy property. + +## Service Provider Graph Asset +The same applies for the service/function supplier. To make the service available as part of the federated knowledge graph, a Grapth Asset pointing to your Remoting Agent endpoint is needed. + +Such a Graph Asset for a service provider can look like following example: +```json +{ + "@context": { + "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "cx-common": "https://w3id.org/catenax/ontology/common#", + "sh": "http://www.w3.org/ns/shacl#" + }, + "asset": { + "@type": "Asset", + "@id": "GraphAsset?supplier=BehaviourTwinRUL", + "properties": { + "name": "Lifetime Prognosis Service for Gearboxes", + "description": "A sample graph asset/offering referring to a specific prognosis resource.", + "version": "1.9.4-SNAPSHOT", + "contenttype": "application/json, application/xml", + "cx-common:publishedUnderContract": "Contract?supplier=Graph", + "rdf:type": "cx-common:GraphAsset", + "rdfs:isDefinedBy": ",,,", + "cx-common:implementsProtocol": "cx-common:Protocol?w3c:http:SPARQL", + "sh:shapesGraph": "@prefix cx-common: . \n@prefix : .\n@prefix cx-prognosis: .\n@prefix cx-fx: .\n@prefix owl: .\n@prefix rdf: .\n@prefix xsd: .\n@prefix sh: .\n\n:Tier1LifetimePrognosis rdf:type sh:NodeShape ;\n sh:targetClass cx-prognosis:Function ;\n sh:property [\n sh:path cx-prognosis:provisionedBy ;\n sh:hasValue ].", + "cx-common:isFederated": "true^^xsd:boolean" + } + }, + "dataAddress": { + "id": "GraphAsset?supplier=BehaviourTwinRUL", + "@type": "DataAddress", + "baseUrl": "{{remotingAgent}}/repositories/rul", + "type": "cx-common:Protocol?w3c:http:SPARQL", + "proxyPath": "false", + "proxyMethod": "true", + "proxyQueryParams": "true", + "proxyBody": "true", + "authKey": "{{supplierBackendAuthKey}}", + "authCode": "{{supplierBackendAuthCode}}" + } + } +``` + +# Deployment of RuL Skill +After the skill is defined, it has to be registered. +As described in th "KA-KIT", one have to define the Asset, Policy and Contractdefiniton as for other EDC assets. + +To bo able to invoke the sample Agent-Skill defined above, we have to deploy, or better said, to register it in our agent enabled EDC. For the registration we need, as for other EDC assets, the asset, a policy and a contract definition registration. + +**Policy Registration** +``` json +{ + "@context": { + "odrl": "http://www.w3.org/ns/odrl/2/", + "cx-common": "https://w3id.org/catenax/ontology/common#" + }, + "@type": "PolicyDefinitionRequestDto", + "@id": "Policy?consumer=Asset&mode=open", + "policy": { + "@type": "Policy", + "odrl:permission" : [{ + "odrl:action" : "USE", + "odrl:constraint" : [] + }] + } +} +``` + +**Contractdefiniton Registration** +``` json +{ + "@context": { + "cx-common": "https://w3id.org/catenax/ontology/common#" + }, + "@id": "Contract?consumer=Asset&mode=open", + "@type": "ContractDefinition", + "accessPolicyId": "Policy?consumer=Asset&mode=open", + "contractPolicyId": "Policy?consumer=Asset&mode=open", + "assetsSelector" : { + "@type" : "CriterionDto", + "operandLeft": "https://w3id.org/catenax/ontology/common#publishedUnderContract", + "operator": "=", + "operandRight": "Contract?consumer=Asset&mode=open" + } +} +``` + +**Skill Registration** + +A Skill can be registered over the AgentPlane API: +``` +curl --location 'agentPlaneEdcUrl/api/agent/skill?asset=SkillAsset%3Fconsumer%3DRemainingUsefulLife&distributionMode=PROVIDER%26contract%3DContract%3Fconsumer%3DAsset%26mode%3Dopen' \ +--header 'Content-Type: application/sparql-query' \ +--data-raw ' + +' +``` diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Documentation BPDM/_category_.json b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Documentation BPDM/_category_.json new file mode 100644 index 00000000000..da9a4885a1c --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Documentation BPDM/_category_.json @@ -0,0 +1,3 @@ +{ + "label": "Documentation" +} diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Documentation BPDM/bpdm_arc42.md b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Documentation BPDM/bpdm_arc42.md new file mode 100644 index 00000000000..bf1820af394 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Documentation BPDM/bpdm_arc42.md @@ -0,0 +1,610 @@ +--- +id: bpdm_arc42 +title: Architecture documentation (arc42) +description: 'Architecture documentation (arc42)' +sidebar_position: 1 +--- + +![Business partner kit banner](@site/static/img/BPKitIcon.png) + +## Business Partner KIT + +## Business Partner Data Management Application for Golden Record (BPDM) + +- [Business Partner Data Management Application for Golden Record (BPDM)](#business-partner-data-management-application-for-golden-record-bpdm) +- [Introduction and Goals](#introduction-and-goals) + - [Goals Overview](#goals-overview) + - [Requirements Overview](#requirements-overview) + - [Quality Goals {#\_quality\_goals}](#quality-goals-quality-goals) + - [Stakeholders](#stakeholders) +- [Architecture Constraints](#architecture-constraints) +- [System Scope and Context](#system-scope-and-context) + - [Business Context](#business-context) + - [Technical Context](#technical-context) +- [Solution Strategy (High Level Picture)](#solution-strategy-high-level-picture) +- [Building Block View](#building-block-view) + - [High-Level Architecture (L/S/A Endpoints)](#high-level-architecture-lsa-endpoints) + - [High-Level Architecture (Generic Endpoint)](#high-level-architecture-generic-endpoint) + - [Keycloak Authentication \& Autorization Flow](#keycloak-authentication--autorization-flow) +- [Runtime View](#runtime-view) + - [Upload Business Partner (BPN-L)](#upload-business-partner-bpn-l) + - [Upsert Generic Business Partner](#upsert-generic-business-partner) + - [Update on Golden Record Change](#update-on-golden-record-change) +- [Deployment View](#deployment-view) + - [Applications Deployment without Kubernetes](#applications-deployment-without-kubernetes) + - [Single Application Kubernetes Deployment](#single-application-kubernetes-deployment) +- [Crosscutting Concepts](#crosscutting-concepts) + - [Business Partner Data Management Standards](#business-partner-data-management-standards) + - [Logging Behavior](#logging-behavior) +- [Architecture Decisions](#architecture-decisions) +- [Quality Requirements](#quality-requirements) +- [Risks and Technical Debts](#risks-and-technical-debts) +- [Glossary](#glossary) + +## Introduction and Goals + +This document describes the Catena-X Business Partner Data Management Application, short BPDM. + +In the Catena-X Automotive Network, the so-called Golden Record, together with a unique identifier, the Business Partner Number (BPN), creates an efficient solution to the increasing data retention costs. + +The Golden Record is a concept that identifies, links and harmonizes identical data on legal entites, sites and addresses from different sources (“sharing members"). During the creation of the Golden Record data, duplicates are removed, the quality within the data records is improved, missing information is added and deviations are automatically corrected. This is done using public, commercial or other agreed sources of trust and/or information. This approach reduces costs of business partner data maintenance and validation for all the companies concerned. + +The BPN, as the unique identifier of the Golden Record, can be stored as a verifiable credential used in an SSI solution so that a business partner can provide it for authentication and authorization. + +The Golden Record business partner data in combination with the BPN acts as the basis for a range of supplementary value-added services to optimize business partner data management. These are referred to as value-added services. Together with decentralized, self-determined identity management, they create a global, cross-industry standard for business partner data and a possible 360° view of the value chain. + +> ⚠️ **HINT**: A Business Partner Data cleaning as well as Golden Record Creation Process is **not** part of this reference implementation! + +**Additional Information Material**: + +- Visit BPDM on the official Catena-X Website: [bpdm_catenax_website](https://catena-x.net/en/offers/bpdm) + +## Goals Overview + +The following goals have been established for this system: + +| Priority | Goal | +| -------- | ------------------------------------------------------------------------------------------------------------ | +| 1 | Provide unique global business partner IDs within the Catena-X Network | +| 1 | Provide centralized Master Data Management for business partner data | +| 2 | Enable network-based data sharing for business partner data to increase overall data quality and reliability | +| 2 | Enable also Small and medium-sized Businesses (SMEs) to use the services | +| 3 | Provide a change history für business partner data | + +## Requirements Overview + +> :warning: **Note:** Cross-Check with CACs + +![bpdm_usecase_diagram](@site/static/img/usecase_diagram.drawio.svg) + +The following Usecases together with its requirements exist for this system: + +| Req-Id | Requirement | Explanation | +| ------- | ------------------ | ----------- | +| BPDM-R1 | Upload and curate BP data | CX Member can upload their business partner and get curated business partner information back, based on the Golden Record | +| BPDM-R2 | Provide changelog for BP | A changelog is provided to determine which changes on which date are available | +| BPDM-R3 | Provide GR | Based on the shared business partner information and external service providers a Golden Record is created | +| BPDM-R4 | Provide changelog for GR | A changelog is provided to determine which changes on which date are available | +| BPDM-R5 | Keep GR up-to-date based on external resources | Golden Records must regularly checked for changes based on external resources | +| BPDM-R6 | Provide unique business partner IDs | For each Golden Record a unique ID, the so called Business Partner Number (BPN) is created | + +## Quality Goals {#quality goals} + +| Priority | Quality Goal | Scenario | +| -------- | ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 1 | Security | All users and services which access the Golden Record Application must be authenticated and authorized. Only the Golden Record Application itself is allowed to perform changes on data. Consuming services/users are only allowed to read data. In addition they are only allowed to read the specific data that belongs with this, the Data Sovereignty principles of Catena-X has to be fulfilled | +| 1 | Integrity | Only the Golden Record Application is allowed to perform changes on the data. In addition, all changes must be traceable and must be able to be rolled back | +| 1 | Legally | No natural persons are allowed to get uploaded and stored. For all other uploaded Business Partner data it is mandatory that users (CX Members) can only see their own uploaded data and that it is not possible to draw conclusions about other business partner relationships | +| 1 | Integrity & Correctness | It must be ensured that the data of the golden record which is created during the process is correct. | +| 2 | Reliability | The Golden Record Application is a central foundation in the Catena-X Network. It provides all participants and services, business partner data and the unique Business Partner Number (BPN) as identifier. Therefore the BPDM Services must be always/highly available | +| 2 | Functional Stability | Since the Golden Record Application is a central foundation in the Catena-X Network the defined standards of the API and datamodel for the associated Release Version must be fulfilled | +| 1 | Sensitivity of data | the uploaded business partner data is highly sensitive, that's why it must be ensured that no unauthorized user/system can access data which does not belong to it. More over it must be guaranteed that no one can see the business partners related to the specific Catena-X Member. | + +[](@site/static/img/iso_25010.png) + +## Stakeholders + +| Role/Name | Expectations | Example | +| ----------------------- | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------- | +| Big Company (CX-Member) | Company wants to have cleaned and enriched business partner data objects with a BPN. | | +| SME Company (CX-Member) | Company wants to have cleaned and enriched business partner data objects with a BPN based on a CSV data. | | +| CX Apps | Other apps and their use cases want to use the business partner data objects and the BPN for their processes | The CX Portal will use the BPN for on-boarding new companies into the network. Traceability Apps will use BPN to describe business partners | + +## Architecture Constraints + +| Constraint ID | Constraint | Description | +| ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | +| C-1 | Software and third party software must be compliant to the Catena-X and Eclipse Foundation Guidelines/Policies [eclipse_foundation](https://www.eclipse.org/projects/dev_process/) | | +| C-2 | [Eclipse Dataspace Connector](https://github.com/eclipse-tractusx/tractusx-edc/tree/main) must be used for data transfer between different legal entities | | + +## System Scope and Context + +## Business Context + +The following figure depicts the business context setup for BPDM: + +![bpdm_business_context](@site/static/img/cx_bpdm_context_business.drawio.svg) + +The following are the various components of the business context setup: + +### **Master Data Management (Catena-X Member)** + +A backend system that's operated by a company which is participating in the Catena-X Ecosystem and consuming digital services or data assets. + +### **Small-Medium-Enterprises (SME) (Catena-X Member)** + +A SME company that's participating in the Catena-X Ecosystem and consuming digital services or data assets. + +### **Catena-X Portal/Marketplace (CX Portal)** + +The Portal which provides an entry point for the Catena-X Members, to discover Apps that are offered in Catena-X. + +### **Value Added Services** + +- Value Added Services can be provided be either the Operator itself or by an external App/Service Provider. The Value Added Services provide data or service offers based on Catena-X Network data. + +- There are several value added services that can be offered in context of business partner data. For example a Fraud Prevention Dashboard/API, Country Risk Scoring and so on. + +### **Catena-X Operative Environment for BPDM** + +- Within Catena-X there will be only one central operation environment that operates the BPDM Application. This operative environment provides the services and data for other operation environment or applications which needs to consume business partner data or golden record data. + +### **Catena-X BPDM Application** + +- The BPDM Application which offers services to Catena-X Members, Catena-X Use Cases and Catena-X BPDM Value Added Services for consuming and processing business partner data as well as Golden Record Information and BPN Numbers. + +### **Curation & Enrichment Services** + +- To offer the BPDM and Golden Record Services, Catena-X uses services from external third party service providers. These can either be operated by the operator itself or external companies that have a contract with the operator. + +## Technical Context + +The technical context setup including deployment is depicted in the following figure: +![cx_bpdm_deployment_context](@site/static/img/cx_bpdm_context_technical.drawio.svg) + +- The BPDM Application follows a microservice approach to separate the different components of the system. +- Within Catena-X there will be only one central operation environment that operates the BPDM Application. This operation environment provides the services and data for other operation environment or applications which needs to consume business partner data or golden record data. + +## Solution Strategy (High Level Picture) + +The following high level view gives a basic overview about the BPDM Components: + +![cx_bpdm_highlevel](@site/static/img/cx_bpdm_highlevel.drawio.svg) + +### **BPDM Gate** + +- The BPDM Gate provides the interfaces for Catena-X Members to manage their business partner data within Catena-X. +- Based on the network data a Golden Record Proposal is created. +-The BPDM Gate has its own persistence layer in which the business partner data of the Catena-X Members are stored. +- For the current reference implementation, multi-tenancy is realized via a 1:1 deployment for each Catena-X Member. This means that every Catena-X Member who shares his business partner data, has its own Gate and own persistence. + +### **BPDM Pool** + +- The BPDM Pool is the central instance for business partner data within Catena-X. +- The BPDM Pool provides the interface and persistance for accessing Golden Record Data and the unique Business Partner Number. +- In comparison to the BPDM Gate, there is only one central instance of the BPDM Pool. + +### **BPN Issuer** + +- Every participant in the Catena-X network shall have a unique Business Partner Number (BPN) according to the concept defined by the Catena-X BPN concept. The task of the BPN Generator is to issue such a BPN for a presented Business Partner data object. In that, the BPN Generator serves as the central issuing authority for BPNs within Catena-X. +- Technically, it constitutes a service that is available as a singleton within the network. +- Currently (Release 3.3) the BPN Issuer is part of the BPDM Pool. After implementing the BPDM Orchestrator, the BPN Issuer should become an independent component. + +### **BPDM Orchestrator** + +- The BPDM Orchestrator is **not** part of Release 3.2. +- Intention of the BPDM Orchestrator is to provide a passive component that offers standardized APIs for the BPDM Gate, BPDM Pool and Data Curation and Enrichment Services to orchestrate the process of Golden Record Creation and handling the different states a business partner record can have during this process. + +## Building Block View + +### High-Level Architecture (L/S/A Endpoints) + +Due to a transmission phase there are two concepts of Business Partner Upload Models. The target is to only have the generic Business Partner on the BPDM Gate. + +## Architecture for Release 3.2 + +### High-Level Architecture (Generic Endpoint) + +![bpdm_current_architecture_Generic](@site/static/img/cx_bpdm_architecture_v3_3.drawio.svg) + +#### **Simulator Service** + +- To become more independent in testing the BPDM Application, a Simulator Service was developed. +- The Simulator Services supports the E2E Test Cases to validate the flow from BPDM Gate to BPDM Pool and back again. + +#### **EDC Operator** + +- The diagram above shows two EDCs on Operator side. This is only for visualization purpose. On a technical level there is only one EDC. + +#### **SME** + +-Currently there is no SME Application available + +## Keycloak Authentication & Autorization Flow + +```mermaid + +sequenceDiagram + participant EDC of CX Member + participant OpenIDConnect Server + participant BPDM Gate + + autonumber + + EDC of CX Member-->>OpenIDConnect Server: Send Client Credentials + OpenIDConnect Server-->>EDC of CX Member: Respond OAuth2 Token + EDC of CX Member -->> BPDM Gate: Send Request with OAuth2 Token in Authorization Header + BPDM Gate -->> OpenIDConnect Server: Validate Token + OpenIDConnect Server -->> BPDM Gate: Confirms validity of Token + BPDM Gate -->> BPDM Gate: Check "resource_access" section of OAuth Token + + +``` + +## Runtime View + +### Upload Business Partner (BPN-L) + +The diagram below describes the flow of uploading a business partner of type "legal entity". +For further information about the different business partner types (Legal Entity, Site, Address), please have a look on the Standards [CX - 0010 Business Partner Number](https://catena-x.net/de/standard-library) + +```mermaid + +sequenceDiagram + participant CX Member + participant BPDM Gate + participant BPDM Simulator + participant BPDM Pool + autonumber + + rect rgb(125, 184, 240) + Note over CX Member,BPDM Gate: EDC enabled + CX Member->>BPDM Gate: Upload Business Partner + Note left of BPDM Gate: PUT api/catena/input/legal-entities + # loop Healthcheck + # John->>John: Fight against hypochondria + # end + # Note right of John: Rational thoughts! + end + BPDM Gate-->BPDM Gate: Update input changelog + BPDM Simulator->>BPDM Gate: Poll for Business Partner changes + Note right of BPDM Gate: POST api/catena/input/changelog/search + BPDM Gate -->> BPDM Simulator: Send Changelog for Business Partners + BPDM Simulator->>BPDM Gate: Request Business Partner based on Changelog (external ID and business partner type) + Note right of BPDM Gate: POST /api/catena/input/legal-entities/search + BPDM Gate -->> BPDM Simulator: Send Business Partners + BPDM Simulator->>BPDM Gate: Request Sharing State for Business Partner based on Changelog + Note right of BPDM Gate: GET api/catena/sharing-state + BPDM Gate -->> BPDM Simulator: Send Sharing State (BPN) of Business Partners (Sharing state determines if BPN exist or not) + BPDM Simulator-->> BPDM Simulator: Update last sync changelog timestamp + BPDM Simulator->>BPDM Pool: Forward Business Partner + Note left of BPDM Pool: POST/PUT api/catena/legal-entities + opt BPN does not exist + BPDM Pool-->>BPDM Pool: Create BPN + end + BPDM Pool-->>BPDM Pool: Update Changelog + BPDM Pool-->>BPDM Simulator: Respond Business Partner with BPN + BPDM Simulator-->>BPDM Gate: Forward Business Partner with BPN + Note right of BPDM Gate: PUT api/catena/output/legal-entities + BPDM Simulator-->>BPDM Gate: Update Sharing State + Note right of BPDM Gate: PUT api/catena/sharing-state + BPDM Gate-->BPDM Gate: Link External ID with BPN + BPDM Gate-->BPDM Gate: Update Output Changelog + + loop Every x hour + rect rgb(125, 184, 240) + Note over CX Member,BPDM Gate: EDC enabled + CX Member->>BPDM Gate: Poll output changelog and fetch updates + Note left of BPDM Gate: POST api/catena/output/changelog/search + BPDM Gate-->>CX Member: Send changelog + CX Member->>BPDM Gate: Fetch updates + Note left of BPDM Gate: POST api/catena/output/legal-entities/search + BPDM Gate-->>CX Member: Send Business Partner changes + end + CX Member-->>CX Member: Update data + CX Member-->>CX Member: Update last polled timestamp + end +``` + +### Upsert Generic Business Partner + +```mermaid +sequenceDiagram + autonumber + + SharingMember->>Gate: PUT api/catena/input/business-partners
Payload: Business Partner Data A + Gate-->>Gate: Persist Business Partner Data Input + Gate-->>Gate: Set Sharing State to 'Initial' + Gate-->>Gate: Add Changelog Entry 'Create' for Business Partner Input + Gate->>Orchestrator: POST api/golden-record-tasks
Payload: Business Partner Input Data in mode 'UpdateFromSharingMember' + Orchestrator-->>Orchestrator: Create Golden Record Task for Business Partner Data + Orchestrator-->>Orchestrator: Set Golden Record Task State
Result State: 'Pending' + Orchestrator-->>Orchestrator: Set Golden Record Task State
Step: 'CleanAndSync'
StepState: 'Queued' + Orchestrator-->>Gate: Created Golden Record Task + Gate-->>Gate: Set Sharing State
Type: 'PENDING'
Task ID: Golden Record Task ID + Gate-->>SharingMember: Upserted Business Partner + + loop Polling for Step 'CleanAndSync' + CleaningServiceDummy->>Orchestrator: POST api/golden-record-tasks/step-reservations
Payload: Step 'CleanAndSync' + Orchestrator-->>Orchestrator: Set Golden Record Task State
Step: 'CleanAndSync'
StepState: 'Reserved' + Orchestrator-->>CleaningServiceDummy: Golden Record Task + CleaningServiceDummy-->>CleaningServiceDummy: Set L/S/A and Generic Business Partner Dummy Cleaning Result + CleaningServiceDummy-->>CleaningServiceDummy: Set BPN References to L/S/A result + CleaningServiceDummy->>Orchestrator: POST api/golden-record-tasks/step-results
Payload: Dummy Result + Orchestrator-->>Orchestrator: Set Golden Record Task Business Partner Data to Dummy Result + Orchestrator-->>Orchestrator: Set Golden Record Task State
Step: 'PoolSync'
StepState: 'Queued' + Orchestrator-->>CleaningServiceDummy: Accept + end + + loop Polling for Step 'PoolSync' + Pool->>Orchestrator: POST api/golden-record-tasks/step-reservations
Payload: Step 'PoolSync' + Orchestrator-->>Orchestrator: Set Golden Record Task State
Step: 'PoolSync'
StepState: 'Reserved' + Orchestrator-->>Pool: Golden Record Task + opt Golden Record Legal Entity Data marked as changed + Pool-->>Pool: Upsert Legal Entity from Golden Record Task Legal Entity Data + Pool-->>Pool: Add Changelog Entry for BPNL + end + opt Golden Record Site Data marked as changed + Pool-->>Pool: Upsert Site from Golden Record Task Site Data + Pool-->>Pool: Add Changelog Entry for BPNS + end + opt Golden Record Address Data marked as changed + Pool-->>Pool: Upsert Address from Golden Record Task Address Data + Pool-->>Pool: Add Changelog Entry for BPNA + end + Pool-->>Pool: Set BPNs in Golden Record Task Generic Business Partner Data + Pool->>Orchestrator: POST api/golden-record-tasks/step-results
Payload: Updated Result + Orchestrator-->>Pool: Accept + Orchestrator-->>Orchestrator: Set Golden Record Task State
Step: 'PoolSync'
Step State: 'Success' + Orchestrator-->>Orchestrator: Set Golden Record Task State
Result State: 'Success' + end + + loop Polling for finished Golden Record Tasks + Gate-->>Gate: Query sharing states in Sharing State Type 'PENDING' + Gate->>Orchestrator: POST golden-record-tasks/state/search
Payload: Golde Record Task ID + Orchestrator-->Gate: Golden Record Task State and Result + Gate-->>Gate: Persist Business Partner Output + Gate-->>Gate: Set Sharing State 'Success' + Gate-->>Gate: Add Changelog Entry 'Create' for Business Partner Output + end + + SharingMember->>Gate: POST api/catena/output/changelog/search
Payload: From After Last Search Time + Gate-->>SharingMember: Changelog entry with Business Partner External ID + SharingMember->>Gate: POST api/catena/output/business-partners/search
Payload: External ID + Gate-->>SharingMember: Business Partner Output +``` + +### Update on Golden Record Change + +```mermaid +sequenceDiagram + autonumber + + Pool-->Pool: Add Changelog Entry for BPNL + + loop Polling Pool Changelog + Gate->>Pool: POST api/catena/changelog/search
Payload: From After Last Search Time + Pool-->>Gate: Changelog entry for BPNL + Gate-->>Gate: Query Business Partner Output with BPNL + Gate->>Orchestrator: POST api/golden-record-tasks
Payload: Business Partner Output Data in mode 'UpdateFromPool' + Orchestrator-->>Orchestrator: Create Golden Record Task for Business Partner Data + Orchestrator-->>Orchestrator: Set Golden Record Task State
Result State: 'Pending' + Orchestrator-->>Orchestrator: Set Golden Record Task State
Step: 'Clean'
StepState: 'Queued' + Orchestrator-->>Gate: Created Golden Record Task + Gate-->>Gate: Set Sharing State
Type: 'PENDING'
Task ID: Golden Record Task ID + end + + loop Polling for Step 'Clean' + CleaningServiceDummy->>Orchestrator: POST api/golden-record-tasks/step-reservations
Payload: Step 'Clean' + Orchestrator-->>Orchestrator: Set Golden Record Task State
Step: 'CleanAndSync'
StepState: 'Reserved' + Orchestrator-->>CleaningServiceDummy: Golden Record Task + CleaningServiceDummy->>Orchestrator: POST api/golden-record-tasks/step-results
Payload: Golden Record Task Business Partner Data + Orchestrator-->>Orchestrator: Set Golden Record Task Business Partner Data to Dummy Result + Orchestrator-->>Orchestrator: Set Golden Record Task State
Step: 'Clean'
Step State: 'Success' + Orchestrator-->>Orchestrator: Set Golden Record Task State
Result State: 'Success' + Orchestrator-->>CleaningServiceDummy: Accept + end + + loop Polling for finished Golden Record Tasks + Gate-->>Gate: Query sharing states in Sharing State Type 'PENDING' + Gate->>Orchestrator: POST golden-record-tasks/state/search
Payload: Golden Record Task ID + Orchestrator-->Gate: Golden Record Task State and Result + Gate-->>Gate: Persist Business Partner Output + Gate-->>Gate: Set Sharing State 'Success' + Gate-->>Gate: Add Changelog Entry 'Create' for Business Partner Output + end + + SharingMember->>Gate: POST api/catena/output/changelog/search
Payload: From After Last Search Time + Gate-->>SharingMember: Changelog entry with Business Partner External ID + SharingMember->>Gate: POST api/catena/output/business-partners/search
Payload: External ID + Gate-->>SharingMember: Business Partner Output + +``` + +## Deployment View + +### Applications Deployment without Kubernetes + +```mermaid +C4Context + + Person(bpdm_user, "(Technical) User of the BPDM APIs") + + System(pool_postgres, "Pool Database" "Postgres: 14.5") + System(gate_postgres, "Gate Database" "Postgres: 14.5") + System(bridge_postgres, "Gate Database" "Postgres: 14.5") + + + Deployment_Node(pool_machine, "OS Environment", "Linux Alpine 3.16"){ + Deployment_Node(pool_java, "Runtime Environment", "JAVA RE 17") { + Container(pool_container, "Pool Application", "Spring Boot: 3.1") + } + } + + Deployment_Node(gate_machine, "OS Environment", "Linux Alpine 3.16"){ + Deployment_Node(gate_java, "Runtime Environment", "JAVA RE 17") { + Container(gate_container, "Gate Application", "Spring Boot: 3.1") + } + } + + Deployment_Node(bridge_machine, "OS Environment", "Linux Alpine 3.16"){ + Deployment_Node(bridge_java, "Runtime Environment", "JAVA RE 17") { + Container(bridge_container, "Bridge Dummy Application", "Spring Boot: 3.1") + } + } + + Deployment_Node(orchestrator_machine, "OS Environment", "Linux Alpine 3.16"){ + Deployment_Node(orchestrator_java, "Runtime Environment", "JAVA RE 17") { + Container(orchestrator_container, "Orchestrator Application", "Spring Boot: 3.1") + } + } + + Deployment_Node(dummy_machine, "OS Environment", "Linux Alpine 3.16"){ + Deployment_Node(dummy_java, "Runtime Environment", "JAVA RE 17") { + Container(dummy_container, "Cleaning Service Dummy Application", "Spring Boot: 3.1") + } + } + + Rel(bpdm_user, pool_container, "HTTP/S") + Rel(pool_container, pool_postgres, "TCP/IP") + + Rel(bpdm_user, gate_container, "HTTP/S") + Rel(gate_container, gate_postgres, "TCP/IP") + + Rel(bpdm_user, bridge_container, "HTTP/S") + Rel(bridge_container, bridge_postgres, "TCP/IP") + + Rel(pool_container, orchestrator_container, "HTTP/S") + Rel(gate_container, orchestrator_container, "HTTP/S") + Rel(dummy_container, orchestrator_container, "HTTP/S") + + Rel(bridge_container, pool_container, "HTTP/S") + Rel(bridge_container, gate_container, "HTTP/S") + +``` + +### Single Application Kubernetes Deployment + +```mermaid +C4Context + + Person(bpdm_user, "(Technical) User of the BPDM APIs") + + Deployment_Node(kubernetes, "Kubernetes Environment", "Kubernetes 1.28"){ + + Container(ingress, "Ingress", "Ingress Kubernetes Resource") + Container(nginx, "Ingress Controller", "Nginx Reverse Proxy") + Container(service, "Service", "Service Kubernetes Resource") + + Container(database, "Database Deployment", "Chart bitnami/postgres:11.9.13") + Container(other_bpdm, "Other BPDM Application Deployment", "Helm Chart") + + Deployment_Node(deployment, "Deployment", "Deployment Kubernetes Resource"){ + Deployment_Node(replicaSet_1, "Replica Set", "Ingress ReplicaSet Resource"){ + Deployment_Node(pod_1, "Pod", "Pod Kubernetes Resource"){ + Container(container_1, "BPDM Application Container", "Spring Boot 3 on Linux Alpine 3.6") + Container(volume_1, "Config Volume", "Kubernetes Volume Mount") + } + } + } + + Deployment_Node(kubernetes_config, "Kubernetes Configurations", "Logical Grouping"){ + Container(configMap, "Application Configuration", "Kubernetes ConfigMap Resource") + Container(secret, "Secret Configuration", "Kubernetes Secret Resource") + + } +} + +Rel(bpdm_user, nginx, "Sends URL", "HTTPS") +Rel(ingress, nginx, "Routing Information") +Rel(nginx, service, "Routes to") +Rel(service, container_1, "HTTP") + +Rel(container_1, volume_1, "mounts") +Rel(volume_1, configMap, "mounts") +Rel(volume_1, secret, "mounts") + +Rel(container_1, database, "TCP/IP") +Rel(container_1, other_bpdm, "") + +UpdateLayoutConfig($c4ShapeInRow="3", $c4BoundaryInRow="1") + + + +``` + +## Crosscutting Concepts + +### Business Partner Data Management Standards + +[bpdm_standards](https://catena-x.net/de/standard-library) + +### Logging Behavior + +As Spring Boot applications BPDM employs Spring +specific [logging behavior](https://docs.spring.io/spring-boot/docs/3.0.0/reference/htmlsingle/#features.logging) + +We enhance the default log entries with user request information including the determined user ID and a generated request ID. +Not all logs belong to an ongoing user request in which case these entries are empty. + +In addition to the Spring standard logs the BPDM applications keep a log of the following events: + +- INFO: User requesting resource with resource name and HTTP verb +- INFO: Request HTTP response +- INFO: Update/Create Golden Record Business Partners +- INFO: Creating BPNs +- ERROR: Uncaught exceptions occurring in the service logic + +## Architecture Decisions + +[Architecture Decision Logs](https://confluence.catena-x.net/display/CORE/BPDM+%7C+Decision+Logs) +(Link will be replaced with ADRs based on Markdown) + +- 001-multitenancy_approach +- 002-edc_for_pool_api +- 003-orchestrator_serviceApi_vs_messagebus_approach +- 004-openapi_descriptions +- 005-edc-usage-for-third-party-services + +## Quality Requirements + +- see: [Quality Goals](#quality-goals-quality-goals) + +## Risks and Technical Debts + +### **Open EDC Questions** + +- What capabilities will be provided in the future? +- How to deal with APIs provided behind an EDC? Swagger documentation cannot be seen by the requesting service? +- How can we authorize and authenticate a User/System with individual permissions after it passes the EDC? +- Will there by a Proxy EDC concept? +- ... + +### **Lack on Developer Resources** + +- Too less developer resources in contrast to the expectations that the BPDM Product and its Golden Record will be a foundation component within Catena-X. + +### **Semantic Model and SSI Integration of the Golden Record** + +- Not in scope. + +### **Dependency on third party service provider** + +- Currently we are not flexible enough to easily change the third party service provider for golden record creation. Therefore the next step will be to introduce an own data persistence layer, getting more independent. +- ✔️Solved via "Simulator Application" + +### **Data Storage and anonymize concept** + +- How to anonymize the relations between CX-Member and its belonging Business Partner? +- 💡 Idea: using kind of "ticket numbering" + +### **Accessability for SMEs** + +- Uploading via CSV File. Does it requires an EDC? +- ⚠️Current State: Yes, is needed. + +## Glossary + +The Glossary is currently under development and will be added below after internal approval ([DRAFT](https://confluence.catena-x.net/display/CORE/BPDM+Glossary+-+Internal+-+DRAFT)). + +The current version you can find in the Catena-X Standards. diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/BPDM Bridge Dummy.postman_collection.json b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/BPDM Bridge Dummy.postman_collection.json new file mode 100644 index 00000000000..cc3a88a65ab --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/BPDM Bridge Dummy.postman_collection.json @@ -0,0 +1,109 @@ +{ + "info": { + "_postman_id": "7b41c91f-d0b5-46c5-aeba-24dfec0c8d58", + "name": "BPDM Bridge Dummy", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "26818013" + }, + "item": [ + { + "name": "Bridge Sync", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{Bridge-Host}}/api/bridge/sync", + "host": [ + "{{Bridge-Host}}" + ], + "path": [ + "api", + "bridge", + "sync" + ] + } + }, + "response": [] + } + ], + "auth": { + "type": "oauth2", + "oauth2": [ + { + "key": "accessTokenUrl", + "value": "{{Keycloak-Host}}/auth/realms/CX-Central/protocol/openid-connect/token", + "type": "string" + }, + { + "key": "client_authentication", + "value": "body", + "type": "string" + }, + { + "key": "clientSecret", + "value": "{{Bridge-Client-Secret}}", + "type": "string" + }, + { + "key": "clientId", + "value": "{{Bridge-Client-ID}}", + "type": "string" + }, + { + "key": "tokenName", + "value": "BPDM Bridge Token {{Environment}}", + "type": "string" + }, + { + "key": "refreshRequestParams", + "value": [], + "type": "any" + }, + { + "key": "tokenRequestParams", + "value": [], + "type": "any" + }, + { + "key": "authRequestParams", + "value": [], + "type": "any" + }, + { + "key": "challengeAlgorithm", + "value": "S256", + "type": "string" + }, + { + "key": "grant_type", + "value": "client_credentials", + "type": "string" + }, + { + "key": "addTokenTo", + "value": "header", + "type": "string" + } + ] + }, + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] +} \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/BPDM Cleaning Service Dummy.postman_collection.json b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/BPDM Cleaning Service Dummy.postman_collection.json new file mode 100644 index 00000000000..b40e67ce3f2 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/BPDM Cleaning Service Dummy.postman_collection.json @@ -0,0 +1,25 @@ +{ + "info": { + "_postman_id": "4f4f1804-c853-490d-b03c-80e2d545bb0c", + "name": "BPDM Cleaning Service Dummy", + "description": "Place holder for the cleaning service provider", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "26818013" + }, + "item": [ + { + "name": "New Request", + "request": { + "method": "GET", + "header": [] + }, + "response": [] + } + ], + "variable": [ + { + "key": "baseUrl", + "value": "http://localhost:8084" + } + ] +} \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/BPDM Gate.postman_collection.json b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/BPDM Gate.postman_collection.json new file mode 100644 index 00000000000..a2bd400cddc --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/BPDM Gate.postman_collection.json @@ -0,0 +1,944 @@ +{ + "info": { + "_postman_id": "326ec7da-09af-411a-ae73-3612d9c592f7", + "name": "BPDM Gate", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "26818013" + }, + "item": [ + { + "name": "Sharing-state", + "item": [ + { + "name": "Sharing States", + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json", + "type": "text" + } + ], + "url": { + "raw": "{{Gate-Host}}/api/catena/sharing-state?page=0&size=10&businessPartnerType=LEGAL_ENTITY", + "host": [ + "{{Gate-Host}}" + ], + "path": [ + "api", + "catena", + "sharing-state" + ], + "query": [ + { + "key": "page", + "value": "0" + }, + { + "key": "size", + "value": "10" + }, + { + "key": "businessPartnerType", + "value": "LEGAL_ENTITY" + }, + { + "key": "externalIds", + "value": "12044444", + "disabled": true + } + ] + } + }, + "response": [] + }, + { + "name": "Sharing State", + "request": { + "method": "PUT", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"businessPartnerType\": \"LEGAL_ENTITY\",\n \"externalId\": \"string\",\n \"sharingStateType\": \"Pending\",\n \"sharingErrorCode\": \"SharingProcessError\",\n \"sharingErrorMessage\": \"string\",\n \"bpn\": \"string\",\n \"sharingProcessStarted\": \"2023-06-05T06:56:40.785Z\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{Gate-Host}}/api/catena/sharing-state", + "host": [ + "{{Gate-Host}}" + ], + "path": [ + "api", + "catena", + "sharing-state" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Input", + "item": [ + { + "name": "Legal Entity", + "item": [ + { + "name": "Legal Entities", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{Gate-Host}}/api/catena/input/legal-entities?limit=10", + "host": [ + "{{Gate-Host}}" + ], + "path": [ + "api", + "catena", + "input", + "legal-entities" + ], + "query": [ + { + "key": "limit", + "value": "10" + } + ] + } + }, + "response": [] + }, + { + "name": "Legal Entity", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{Gate-Host}}/api/catena/input/legal-entities/99999", + "host": [ + "{{Gate-Host}}" + ], + "path": [ + "api", + "catena", + "input", + "legal-entities", + "99999" + ] + } + }, + "response": [] + }, + { + "name": "Legal Entities", + "request": { + "method": "PUT", + "header": [], + "body": { + "mode": "raw", + "raw": "[\n {\n \"legalNameParts\": [\n \"Name of Company\"\n ],\n \"identifiers\": [\n {\n \"value\": \"123456789\",\n \"type\": \"CUSTOM_ID_TYPE\",\n \"issuingBody\": \"CUSTOM_ISSUE_BODY\"\n }\n ],\n \"legalShortName\": \"NoC\",\n \"legalForm\": \"CUSTOM_LEGAL_FORM\",\n \"states\": [\n {\n \"officialDenotation\": \"Active\",\n \"validFrom\": \"2020-12-16T05:54:48.942Z\",\n \"validTo\": \"2023-06-05T07:31:01.213Z\",\n \"type\": \"ACTIVE\"\n }\n ],\n \"classifications\": [\n {\n \"value\": \"Farming of cattle, dairy farming\",\n \"code\": \"01.21\",\n \"type\": \"NACE\"\n }\n ],\n \"roles\": [\n \"SUPPLIER\"\n ],\n \"legalAddress\": {\n \"nameParts\": [\n \"WESTERN_LATIN_STANDARD\"\n ],\n \"states\": [\n {\n \"description\": \"WESTERN_LATIN_STANDARD\",\n \"validFrom\": \"2020-12-16T05:54:48.942Z\",\n \"validTo\": \"2023-06-05T07:31:01.213Z\",\n \"type\": \"ACTIVE\"\n }\n ],\n \"identifiers\": [\n {\n \"value\": \"12345678910\",\n \"type\": \"CUSTOM_ID_ADD_TYPE\"\n }\n ],\n \"physicalPostalAddress\": {\n \"geographicCoordinates\": {\n \"longitude\": 0,\n \"latitude\": 0,\n \"altitude\": 0\n },\n \"country\": \"DE\",\n \"postalCode\": \"70546\",\n \"city\": \"Stuttgart\",\n \"street\": {\n \"namePrefix\": \"test prefix\",\n \"additionalNamePrefix\": \"test1\",\n \"name\": \"Stuttgarter Strasse\",\n \"additionalNameSuffix\": \"test2\",\n \"houseNumber\": \"1\",\n \"milestone\": \"Stuttgarter Strasse 1\",\n \"direction\": \"Stuttgarter Str.\",\n \"nameSuffix\": \"test\"\n },\n \"administrativeAreaLevel1\": null,\n \"administrativeAreaLevel2\": \"test1\",\n \"administrativeAreaLevel3\": \"test2\",\n \"district\": \"Stuttgart\",\n \"companyPostalCode\": \"GM01\",\n \"industrialZone\": \"HEADQUARTER\",\n \"building\": \"Building A\",\n \"floor\": \"A\",\n \"door\": \"test\"\n },\n \"alternativePostalAddress\": {\n \"geographicCoordinates\": {\n \"longitude\": 0,\n \"latitude\": 0,\n \"altitude\": 0\n },\n \"country\": \"DE\",\n \"postalCode\": \"1234\",\n \"city\": \"Stuttgart 1\",\n \"administrativeAreaLevel1\": null,\n \"deliveryServiceNumber\": \"1234\",\n \"deliveryServiceType\": \"PO_BOX\",\n \"deliveryServiceQualifier\": \"test\"\n },\n \"roles\": [\n \"SUPPLIER\"\n ]\n },\n \"externalId\": \"12044444\"\n }\n]", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{Gate-Host}}/api/catena/input/legal-entities", + "host": [ + "{{Gate-Host}}" + ], + "path": [ + "api", + "catena", + "input", + "legal-entities" + ] + } + }, + "response": [] + }, + { + "name": "Legal Entity Search", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "[\n 11111111\n]", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{Gate-Host}}/api/catena/input/legal-entities/search?page=0&size=10", + "host": [ + "{{Gate-Host}}" + ], + "path": [ + "api", + "catena", + "input", + "legal-entities", + "search" + ], + "query": [ + { + "key": "page", + "value": "0" + }, + { + "key": "size", + "value": "10" + } + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Site", + "item": [ + { + "name": "Sites", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{Gate-Host}}/api/catena/input/sites?limit=10", + "host": [ + "{{Gate-Host}}" + ], + "path": [ + "api", + "catena", + "input", + "sites" + ], + "query": [ + { + "key": "limit", + "value": "10" + } + ] + } + }, + "response": [] + }, + { + "name": "Site", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{Gate-Host}}/api/catena/input/sites/12044444", + "host": [ + "{{Gate-Host}}" + ], + "path": [ + "api", + "catena", + "input", + "sites", + "12044444" + ] + } + }, + "response": [] + }, + { + "name": "Sites", + "request": { + "method": "PUT", + "header": [], + "body": { + "mode": "raw", + "raw": "[\n {\n \"nameParts\": [\n \"Factory UT\"\n ],\n \"states\": [\n {\n \"description\": \"Baden-Wuerttemberg\",\n \"validFrom\": \"2023-06-05T08:29:20.015Z\",\n \"validTo\": \"2023-06-05T08:29:20.015Z\",\n \"type\": \"ACTIVE\"\n }\n ],\n \"roles\": [\n \"SUPPLIER\"\n ],\n \"mainAddress\": {\n \"nameParts\": [\n \"WESTERN_LATIN_STANDARD\"\n ],\n \"states\": [\n {\n \"description\": \"Baden-Wuerttemberg\",\n \"validFrom\": \"2023-06-05T08:29:20.015Z\",\n \"validTo\": \"2023-06-05T08:29:20.015Z\",\n \"type\": \"ACTIVE\"\n }\n ],\n \"identifiers\": [\n {\n \"value\": \"123456789\",\n \"type\": \"CUSTOM_SITE_ID\"\n }\n ],\n \"physicalPostalAddress\": {\n \"geographicCoordinates\": {\n \"longitude\": 0,\n \"latitude\": 0,\n \"altitude\": 0\n },\n \"country\": \"DE\",\n \"postalCode\": \"70327\",\n \"city\": \"Stuttgart\",\n \"street\": {\n \"namePrefix\": \"test prefix\",\n \"additionalNamePrefix\": \"test\",\n \"name\": \"Untertuerckheim Strasse 1\",\n \"additionalNameSuffix\": \"test suffix\",\n \"houseNumber\": \"1234\",\n \"milestone\": \"Untertuerckheim Strasse 1\",\n \"direction\": \"Untertuerckheim Strasse 1\",\n \"nameSuffix\": \"test1 suffix\"\n },\n \"administrativeAreaLevel1\": \"Baden-Wuerttember\",\n \"district\": \"Stuttgart\",\n \"companyPostalCode\": \"71034\",\n \"industrialZone\": \"Sindelfinden\",\n \"building\": \"Building A\",\n \"floor\": \"A\",\n \"door\": \"1\"\n },\n \"alternativePostalAddress\": {\n \"geographicCoordinates\": {\n \"longitude\": 0,\n \"latitude\": 0,\n \"altitude\": 0\n },\n \"country\": \"DE\",\n \"postalCode\": \"1234\",\n \"city\": \"Stuttgart\",\n \"administrativeAreaLevel1\": \"Stuttgart\",\n \"deliveryServiceNumber\": \"Untertuerckheim Strasse 1\",\n \"deliveryServiceType\": \"PO_BOX\",\n \"deliveryServiceQualifier\": \"test qualifier\"\n },\n \"roles\": [\n \"SUPPLIER\"\n ]\n },\n \"externalId\": \"12044444\",\n \"legalEntityExternalId\": \"12044444\"\n }\n]", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{Gate-Host}}/api/catena/input/sites", + "host": [ + "{{Gate-Host}}" + ], + "path": [ + "api", + "catena", + "input", + "sites" + ] + } + }, + "response": [] + }, + { + "name": "Site Search", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "[\n \"12044444\"\n]", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{Gate-Host}}/api/catena/input/sites/search", + "host": [ + "{{Gate-Host}}" + ], + "path": [ + "api", + "catena", + "input", + "sites", + "search" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Address", + "item": [ + { + "name": "Addresses", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{Gate-Host}}/api/catena/input/addresses?limit=10", + "host": [ + "{{Gate-Host}}" + ], + "path": [ + "api", + "catena", + "input", + "addresses" + ], + "query": [ + { + "key": "limit", + "value": "10" + } + ] + } + }, + "response": [] + }, + { + "name": "Address", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{Gate-Host}}/api/catena/input/addresses/12044444_site", + "host": [ + "{{Gate-Host}}" + ], + "path": [ + "api", + "catena", + "input", + "addresses", + "12044444_site" + ] + } + }, + "response": [] + }, + { + "name": "Addresses", + "request": { + "method": "PUT", + "header": [], + "body": { + "mode": "raw", + "raw": "[\n {\n \"nameParts\": [\n \"WESTERN_LATIN_STANDARD\"\n ],\n \"states\": [\n {\n \"description\": \"Baden-Wuerttemberg\",\n \"validFrom\": \"2023-06-05T10:32:30.231Z\",\n \"validTo\": \"2023-06-05T10:32:30.231Z\",\n \"type\": \"ACTIVE\"\n }\n ],\n \"identifiers\": [\n {\n \"value\": \"123456789\",\n \"type\": \"CUSTOM_ADDRESS_ID\"\n }\n ],\n \"physicalPostalAddress\": {\n \"geographicCoordinates\": {\n \"longitude\": 0,\n \"latitude\": 0,\n \"altitude\": 0\n },\n \"country\": \"DE\",\n \"postalCode\": \"70327\",\n \"city\": \"Stuttgart\",\n \"street\": {\n \"namePrefix\": \"test prefix\",\n \"additionalNamePrefix\": \"test\",\n \"name\": \"Untertuerckheim Strasse 1\",\n \"additionalNameSuffix\": \"test suffix\",\n \"houseNumber\": \"1234\",\n \"milestone\": \"Untertuerckheim Strasse 1\",\n \"direction\": \"Untertuerckheim Strasse 1\",\n \"nameSuffix\": \"test1 suffix\"\n },\n \"administrativeAreaLevel1\": \"Baden-Wuerttember\",\n \"district\": \"Stuttgart\",\n \"companyPostalCode\": \"71034\",\n \"industrialZone\": \"Sindelfinden\",\n \"building\": \"Building A\",\n \"floor\": \"A\",\n \"door\": \"1\"\n },\n \"alternativePostalAddress\": {\n \"geographicCoordinates\": {\n \"longitude\": 0,\n \"latitude\": 0,\n \"altitude\": 0\n },\n \"country\": \"DE\",\n \"postalCode\": \"1234\",\n \"city\": \"Stuttgart\",\n \"administrativeAreaLevel1\": \"Stuttgart\",\n \"deliveryServiceNumber\": \"Untertuerckheim Strasse 1\",\n \"deliveryServiceType\": \"PO_BOX\",\n \"deliveryServiceQualifier\": \"test qualifier\"\n },\n \"roles\": [\n \"SUPPLIER\"\n ],\n \"externalId\": \"12044444\",\n \"legalEntityExternalId\": \"12044444\",\n \"siteExternalId\": null\n }\n]", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{Gate-Host}}/api/catena/input/addresses", + "host": [ + "{{Gate-Host}}" + ], + "path": [ + "api", + "catena", + "input", + "addresses" + ] + } + }, + "response": [] + }, + { + "name": "Address Search", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "[\n \"12044444_legalAddress\"\n]", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{Gate-Host}}/api/catena/input/addresses/search", + "host": [ + "{{Gate-Host}}" + ], + "path": [ + "api", + "catena", + "input", + "addresses", + "search" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Business Partner", + "item": [ + { + "name": "Business Patners", + "request": { + "method": "PUT", + "header": [], + "body": { + "mode": "raw", + "raw": "[\n {\n \"externalId\": \"1234\",\n \"nameParts\": [\n \"Name of Company\"\n ],\n \"shortName\": \"NoC\",\n \"identifiers\": [\n {\n \"type\": \"CUSTOM_ID_TYPE\",\n \"value\": \"123456789\",\n \"issuingBody\": \"CUSTOM_ISSUE_BODY\"\n }\n ],\n \"legalForm\": \"CUSTOM_LEGAL_FORM\",\n \"states\": [\n {\n \"type\": \"ACTIVE\",\n \"validFrom\": \"2020-12-16T05:54:48.942\",\n \"validTo\": \"2023-06-05T07:31:01.213\",\n \"description\": null\n }\n ],\n \"classifications\": [\n {\n \"type\": \"NACE\",\n \"code\": \"01.21\",\n \"value\": \"Farming of cattle, dairy farming\"\n }\n ],\n \"roles\": [\n \"SUPPLIER\"\n ],\n \"postalAddress\": {\n \"addressType\": \"SiteMainAddress\",\n \"physicalPostalAddress\": {\n \"geographicCoordinates\": {\n \"longitude\": 0.0,\n \"latitude\": 0.0,\n \"altitude\": 0.0\n },\n \"country\": \"DE\",\n \"administrativeAreaLevel1\": null,\n \"administrativeAreaLevel2\": \"test2\",\n \"administrativeAreaLevel3\": \"test3\",\n \"postalCode\": \"12345\",\n \"city\": \"Stuttgart 1\",\n \"district\": \"Stuttgart\",\n \"street\": {\n \"namePrefix\": \"testNamePrefix\",\n \"additionalNamePrefix\": \"testAdditionalNamePrefix\",\n \"name\": \"testName\",\n \"nameSuffix\": \"testNameSuffix\",\n \"additionalNameSuffix\": \"testAdditionalNameSuffix\",\n \"houseNumber\": \"13\",\n \"milestone\": \"B\",\n \"direction\": \"F\"\n },\n \"companyPostalCode\": \"123456\",\n \"industrialZone\": \"zone1\",\n \"building\": \"b\",\n \"floor\": \"1\",\n \"door\": \"D\"\n },\n \"alternativePostalAddress\": {\n \"geographicCoordinates\": {\n \"longitude\": 0.0,\n \"latitude\": 0.0,\n \"altitude\": 0.0\n },\n \"country\": \"DE\",\n \"administrativeAreaLevel1\": null,\n \"postalCode\": 123456,\n \"city\": \"test\",\n \"deliveryServiceType\": \"PO_BOX\",\n \"deliveryServiceQualifier\": \"test\",\n \"deliveryServiceNumber\": \"test\"\n }\n },\n \"bpnL\": \"BPNL000000000QHA\",\n \"bpnS\": \"BPNS0000000007UH\",\n \"bpnA\": \"BPNA0000000009T3\",\n \"isOwner\": true\n }\n]", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{Gate-Host}}/api/catena/input/business-partners", + "host": [ + "{{Gate-Host}}" + ], + "path": [ + "api", + "catena", + "input", + "business-partners" + ] + } + }, + "response": [] + }, + { + "name": "Business Patners Search", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "[\n \"1234\"\n]", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{Gate-Host}}/api/catena/input/business-partners/search?page=0&size=10", + "host": [ + "{{Gate-Host}}" + ], + "path": [ + "api", + "catena", + "input", + "business-partners", + "search" + ], + "query": [ + { + "key": "page", + "value": "0" + }, + { + "key": "size", + "value": "10" + } + ] + } + }, + "response": [] + } + ] + } + ] + }, + { + "name": "Output", + "item": [ + { + "name": "Business Partner Search", + "item": [ + { + "name": "Business Patners Search", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "[\n \"1234\"\n]", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{Gate-Host}}/api/catena/output/business-partners/search?page=0&size=10", + "host": [ + "{{Gate-Host}}" + ], + "path": [ + "api", + "catena", + "output", + "business-partners", + "search" + ], + "query": [ + { + "key": "page", + "value": "0" + }, + { + "key": "size", + "value": "10" + } + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Legal Entity Search", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "[\n \"11111111\"\n]", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{Gate-Host}}/api/catena/output/legal-entities/search?limit=10", + "host": [ + "{{Gate-Host}}" + ], + "path": [ + "api", + "catena", + "output", + "legal-entities", + "search" + ], + "query": [ + { + "key": "limit", + "value": "10" + } + ] + } + }, + "response": [] + }, + { + "name": "Site Search", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "[\n \"12044444\"\n]", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{Gate-Host}}/api/catena/output/sites/search?limit=10", + "host": [ + "{{Gate-Host}}" + ], + "path": [ + "api", + "catena", + "output", + "sites", + "search" + ], + "query": [ + { + "key": "limit", + "value": "10" + } + ] + } + }, + "response": [] + }, + { + "name": "Address Search", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "[\n \"12044444_legalAddress\"\n]", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{Gate-Host}}/api/catena/output/addresses/search?limit=10", + "host": [ + "{{Gate-Host}}" + ], + "path": [ + "api", + "catena", + "output", + "addresses", + "search" + ], + "query": [ + { + "key": "limit", + "value": "10" + } + ] + } + }, + "response": [] + }, + { + "name": "Legal Entity", + "request": { + "method": "PUT", + "header": [], + "body": { + "mode": "raw", + "raw": "[\n {\n \"legalNameParts\": [\n \"Name of Company\"\n ],\n \"identifiers\": [\n {\n \"value\": \"123456789\",\n \"type\": \"CUSTOM_ID_TYPE\",\n \"issuingBody\": \"CUSTOM_ISSUE_BODY\"\n }\n ],\n \"legalShortName\": \"NoC\",\n \"legalForm\": \"CUSTOM_LEGAL_FORM\",\n \"states\": [\n {\n \"officialDenotation\": \"Active\",\n \"validFrom\": \"2020-12-16T05:54:48.942Z\",\n \"validTo\": \"2023-06-05T07:31:01.213Z\",\n \"type\": \"ACTIVE\"\n }\n ],\n \"classifications\": [\n {\n \"value\": \"Farming of cattle, dairy farming\",\n \"code\": \"01.21\",\n \"type\": \"NACE\"\n }\n ],\n \"roles\": [\n \"SUPPLIER\"\n ],\n \"legalAddress\": {\n \"nameParts\": [\n \"WESTERN_LATIN_STANDARD\"\n ],\n \"states\": [\n {\n \"description\": \"WESTERN_LATIN_STANDARD\",\n \"validFrom\": \"2020-12-16T05:54:48.942Z\",\n \"validTo\": \"2023-06-05T07:31:01.213Z\",\n \"type\": \"ACTIVE\"\n }\n ],\n \"identifiers\": [\n {\n \"value\": \"12345678910\",\n \"type\": \"CUSTOM_ID_ADD_TYPE\"\n }\n ],\n \"physicalPostalAddress\": {\n \"geographicCoordinates\": {\n \"longitude\": 0,\n \"latitude\": 0,\n \"altitude\": 0\n },\n \"country\": \"DE\",\n \"postalCode\": \"70546\",\n \"city\": \"Stuttgart\",\n \"street\": {\n \"namePrefix\": \"test prefix\",\n \"additionalNamePrefix\": \"test1\",\n \"name\": \"Stuttgarter Strasse\",\n \"additionalNameSuffix\": \"test2\",\n \"houseNumber\": \"1\",\n \"milestone\": \"Stuttgarter Strasse 1\",\n \"direction\": \"Stuttgarter Str.\",\n \"nameSuffix\": \"test\"\n },\n \"administrativeAreaLevel1\": \"Baden-Wuerttemberg\",\n \"administrativeAreaLevel2\": \"test1\",\n \"administrativeAreaLevel3\": \"test2\",\n \"district\": \"Stuttgart\",\n \"companyPostalCode\": \"GM01\",\n \"industrialZone\": \"HEADQUARTER\",\n \"building\": \"Building A\",\n \"floor\": \"A\",\n \"door\": \"test\"\n },\n \"alternativePostalAddress\": {\n \"geographicCoordinates\": {\n \"longitude\": 0,\n \"latitude\": 0,\n \"altitude\": 0\n },\n \"country\": \"DE\",\n \"postalCode\": \"1234\",\n \"city\": \"Stuttgart 1\",\n \"administrativeAreaLevel1\": \"Baden-Wuerttemberg 1\",\n \"deliveryServiceNumber\": \"1234\",\n \"deliveryServiceType\": \"PO_BOX\",\n \"deliveryServiceQualifier\": \"test\"\n },\n \"roles\": [\n \"SUPPLIER\"\n ],\n \"bpn\": \"BPNL0000000001YN\"\n },\n \"externalId\": \"12044444\",\n \"bpn\": \"BPNL0000000001YN\"\n }\n]", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{Gate-Host}}/api/catena/output/legal-entities", + "host": [ + "{{Gate-Host}}" + ], + "path": [ + "api", + "catena", + "output", + "legal-entities" + ] + } + }, + "response": [] + }, + { + "name": "Site", + "request": { + "method": "PUT", + "header": [], + "body": { + "mode": "raw", + "raw": "[\n {\n \"nameParts\": [\n \"Factory UT\"\n ],\n \"states\": [\n {\n \"description\": \"Baden-Wuerttemberg\",\n \"validFrom\": \"2023-06-05T08:29:20.015Z\",\n \"validTo\": \"2023-06-05T08:29:20.015Z\",\n \"type\": \"ACTIVE\"\n }\n ],\n \"roles\": [\n \"SUPPLIER\"\n ],\n \"mainAddress\": {\n \"nameParts\": [\n \"WESTERN_LATIN_STANDARD\"\n ],\n \"states\": [\n {\n \"description\": \"Baden-Wuerttemberg\",\n \"validFrom\": \"2023-06-05T08:29:20.015Z\",\n \"validTo\": \"2023-06-05T08:29:20.015Z\",\n \"type\": \"ACTIVE\"\n }\n ],\n \"identifiers\": [\n {\n \"value\": \"123456789\",\n \"type\": \"CUSTOM_SITE_ID\"\n }\n ],\n \"physicalPostalAddress\": {\n \"geographicCoordinates\": {\n \"longitude\": 0,\n \"latitude\": 0,\n \"altitude\": 0\n },\n \"country\": \"DE\",\n \"postalCode\": \"70327\",\n \"city\": \"Stuttgart\",\n \"street\": {\n \"namePrefix\": \"test prefix\",\n \"additionalNamePrefix\": \"test\",\n \"name\": \"Untertuerckheim Strasse 1\",\n \"additionalNameSuffix\": \"test suffix\",\n \"houseNumber\": \"1234\",\n \"milestone\": \"Untertuerckheim Strasse 1\",\n \"direction\": \"Untertuerckheim Strasse 1\",\n \"nameSuffix\": \"test1 suffix\"\n },\n \"administrativeAreaLevel1\": \"Baden-Wuerttember\",\n \"district\": \"Stuttgart\",\n \"companyPostalCode\": \"71034\",\n \"industrialZone\": \"Sindelfinden\",\n \"building\": \"Building A\",\n \"floor\": \"A\",\n \"door\": \"1\"\n },\n \"alternativePostalAddress\": {\n \"geographicCoordinates\": {\n \"longitude\": 0,\n \"latitude\": 0,\n \"altitude\": 0\n },\n \"country\": \"DE\",\n \"postalCode\": \"1234\",\n \"city\": \"Stuttgart\",\n \"administrativeAreaLevel1\": \"Stuttgart\",\n \"deliveryServiceNumber\": \"Untertuerckheim Strasse 1\",\n \"deliveryServiceType\": \"PO_BOX\",\n \"deliveryServiceQualifier\": \"test qualifier\"\n },\n \"roles\": [\n \"SUPPLIER\"\n ],\n \"bpn\": \"BPNS000000000001\"\n },\n \"externalId\": \"12044444\",\n \"legalEntityExternalId\": \"12044444\",\n \"bpn\": \"BPNL0000000001YN\"\n }\n]", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{Gate-Host}}/api/catena/output/sites", + "host": [ + "{{Gate-Host}}" + ], + "path": [ + "api", + "catena", + "output", + "sites" + ] + } + }, + "response": [] + }, + { + "name": "Address", + "request": { + "method": "PUT", + "header": [], + "body": { + "mode": "raw", + "raw": "[\n {\n \"nameParts\": [\n \"WESTERN_LATIN_STANDARD\"\n ],\n \"states\": [\n {\n \"description\": \"Baden-Wuerttemberg\",\n \"validFrom\": \"2023-06-05T10:32:30.231Z\",\n \"validTo\": \"2023-06-05T10:32:30.231Z\",\n \"type\": \"ACTIVE\"\n }\n ],\n \"identifiers\": [\n {\n \"value\": \"123456789\",\n \"type\": \"CUSTOM_ADDRESS_ID\"\n }\n ],\n \"physicalPostalAddress\": {\n \"geographicCoordinates\": {\n \"longitude\": 0,\n \"latitude\": 0,\n \"altitude\": 0\n },\n \"country\": \"DE\",\n \"postalCode\": \"70327\",\n \"city\": \"Stuttgart\",\n \"street\": {\n \"namePrefix\": \"test prefix\",\n \"additionalNamePrefix\": \"test\",\n \"name\": \"Untertuerckheim Strasse 1\",\n \"additionalNameSuffix\": \"test suffix\",\n \"houseNumber\": \"1234\",\n \"milestone\": \"Untertuerckheim Strasse 1\",\n \"direction\": \"Untertuerckheim Strasse 1\",\n \"nameSuffix\": \"test1 suffix\"\n },\n \"administrativeAreaLevel1\": \"Baden-Wuerttember\",\n \"district\": \"Stuttgart\",\n \"companyPostalCode\": \"71034\",\n \"industrialZone\": \"Sindelfinden\",\n \"building\": \"Building A\",\n \"floor\": \"A\",\n \"door\": \"1\"\n },\n \"alternativePostalAddress\": {\n \"geographicCoordinates\": {\n \"longitude\": 0,\n \"latitude\": 0,\n \"altitude\": 0\n },\n \"country\": \"DE\",\n \"postalCode\": \"1234\",\n \"city\": \"Stuttgart\",\n \"administrativeAreaLevel1\": \"Stuttgart\",\n \"deliveryServiceNumber\": \"Untertuerckheim Strasse 1\",\n \"deliveryServiceType\": \"PO_BOX\",\n \"deliveryServiceQualifier\": \"test qualifier\"\n },\n \"roles\": [\n \"SUPPLIER\"\n ],\n \"externalId\": \"12044444_legalAddress\",\n \"legalEntityExternalId\": \"12044444\",\n \"siteExternalId\": \"12044444_sites\",\n \"bpn\": \"BPNA000000000001\"\n }\n]", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{Gate-Host}}/api/catena/output/addresses", + "host": [ + "{{Gate-Host}}" + ], + "path": [ + "api", + "catena", + "output", + "addresses" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Changelog", + "item": [ + { + "name": "Output Changelog", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"timestampAfter\": \"2020-12-16T05:54:48.942Z\",\n \"externalIds\": [\n \"12044444\"\n ],\n \"lsaTypes\": [\n \"LEGAL_ENTITY\"\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{Gate-Host}}/api/catena/output/changelog/search?page=0&size=10", + "host": [ + "{{Gate-Host}}" + ], + "path": [ + "api", + "catena", + "output", + "changelog", + "search" + ], + "query": [ + { + "key": "page", + "value": "0" + }, + { + "key": "size", + "value": "10" + } + ] + } + }, + "response": [] + }, + { + "name": "Input Changelog", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"timestampAfter\": \"2020-12-16T05:54:48.942Z\",\n \"externalIds\": [\n \"12044444\"\n ],\n \"lsaTypes\": [\n \"LEGAL_ENTITY\"\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{Gate-Host}}/api/catena/input/changelog/search?page=0&size=10", + "host": [ + "{{Gate-Host}}" + ], + "path": [ + "api", + "catena", + "input", + "changelog", + "search" + ], + "query": [ + { + "key": "page", + "value": "0" + }, + { + "key": "size", + "value": "10" + } + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Gate Documentation Controller", + "item": [ + { + "name": "mermaid", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{Gate-Host}}/api/catena/mermaid/", + "host": [ + "{{Gate-Host}}" + ], + "path": [ + "api", + "catena", + "mermaid", + "" + ] + } + }, + "response": [] + } + ] + } + ], + "auth": { + "type": "oauth2", + "oauth2": [ + { + "key": "accessTokenUrl", + "value": "{{Keycloak-Host}}/auth/realms/CX-Central/protocol/openid-connect/token", + "type": "string" + }, + { + "key": "tokenName", + "value": "BPDM Gate Token {{Environment}}", + "type": "string" + }, + { + "key": "client_authentication", + "value": "body", + "type": "string" + }, + { + "key": "clientSecret", + "value": "{{Gate-Client-Secret}}", + "type": "string" + }, + { + "key": "clientId", + "value": "{{Gate-Client-ID}}", + "type": "string" + }, + { + "key": "grant_type", + "value": "client_credentials", + "type": "string" + }, + { + "key": "refreshRequestParams", + "value": [], + "type": "any" + }, + { + "key": "tokenRequestParams", + "value": [], + "type": "any" + }, + { + "key": "authRequestParams", + "value": [], + "type": "any" + }, + { + "key": "challengeAlgorithm", + "value": "S256", + "type": "string" + }, + { + "key": "addTokenTo", + "value": "header", + "type": "string" + } + ] + }, + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] +} \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/BPDM Orchestrator.postman_collection.json b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/BPDM Orchestrator.postman_collection.json new file mode 100644 index 00000000000..4db31fb86a4 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/BPDM Orchestrator.postman_collection.json @@ -0,0 +1,139 @@ +{ + "info": { + "_postman_id": "a3442157-1cd9-4dec-842d-a22a4482e83c", + "name": "BPDM Orchestrator", + "description": "Orchestrator component acts as a passive component and offers for each processing steps individual endpoints", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "26818013" + }, + "item": [ + { + "name": "Task Client", + "item": [ + { + "name": "Create golden record tasks", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"mode\": \"UpdateFromSharingMember\",\n \"businessPartners\": [\n {\n \"nameParts\": [\n \"string\"\n ],\n \"shortName\": \"string\",\n \"identifiers\": [\n {\n \"type\": \"string\",\n \"value\": \"string\",\n \"issuingBody\": \"string\"\n }\n ],\n \"legalForm\": \"string\",\n \"states\": [\n {\n \"validFrom\": \"2023-10-16T14:11:16.920Z\",\n \"validTo\": \"2023-10-16T14:11:16.920Z\",\n \"type\": \"ACTIVE\",\n \"description\": \"string\"\n }\n ],\n \"classifications\": [\n {\n \"type\": \"NACE\",\n \"code\": \"string\",\n \"value\": \"string\"\n }\n ],\n \"roles\": [\n \"SUPPLIER\"\n ],\n \"postalAddress\": {\n \"addressType\": \"LegalAndSiteMainAddress\",\n \"physicalPostalAddress\": {\n \"geographicCoordinates\": {\n \"longitude\": 0,\n \"latitude\": 0,\n \"altitude\": 0\n },\n \"country\": \"UNDEFINED\",\n \"administrativeAreaLevel1\": \"string\",\n \"administrativeAreaLevel2\": \"string\",\n \"administrativeAreaLevel3\": \"string\",\n \"postalCode\": \"string\",\n \"city\": \"string\",\n \"district\": \"string\",\n \"street\": {\n \"name\": \"string\",\n \"houseNumber\": \"string\",\n \"milestone\": \"string\",\n \"direction\": \"string\",\n \"namePrefix\": \"string\",\n \"additionalNamePrefix\": \"string\",\n \"nameSuffix\": \"string\",\n \"additionalNameSuffix\": \"string\"\n },\n \"companyPostalCode\": \"string\",\n \"industrialZone\": \"string\",\n \"building\": \"string\",\n \"floor\": \"string\",\n \"door\": \"string\"\n },\n \"alternativePostalAddress\": {\n \"geographicCoordinates\": {\n \"longitude\": 0,\n \"latitude\": 0,\n \"altitude\": 0\n },\n \"country\": \"UNDEFINED\",\n \"administrativeAreaLevel1\": \"string\",\n \"postalCode\": \"string\",\n \"city\": \"string\",\n \"deliveryServiceType\": \"PO_BOX\",\n \"deliveryServiceQualifier\": \"string\",\n \"deliveryServiceNumber\": \"string\"\n }\n },\n \"bpnL\": \"string\",\n \"bpnS\": \"string\",\n \"bpnA\": \"string\",\n \"ownerBpnL\": \"string\"\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{Orchestrator-Host}}/api/golden-record-tasks", + "host": [ + "{{Orchestrator-Host}}" + ], + "path": [ + "api", + "golden-record-tasks" + ] + } + }, + "response": [] + }, + { + "name": "Search GR state", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"taskIds\": [\n \"0\"\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{Orchestrator-Host}}/api/golden-record-tasks/state/search", + "host": [ + "{{Orchestrator-Host}}" + ], + "path": [ + "api", + "golden-record-tasks", + "state", + "search" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Task Worker", + "item": [ + { + "name": "Step Results", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"results\": [\n {\n \"taskId\": \"string\",\n \"businessPartner\": {\n \"generic\": {\n \"nameParts\": [\n \"string\"\n ],\n \"shortName\": \"string\",\n \"identifiers\": [\n {\n \"type\": \"string\",\n \"value\": \"string\",\n \"issuingBody\": \"string\"\n }\n ],\n \"legalForm\": \"string\",\n \"states\": [\n {\n \"validFrom\": \"2023-10-16T14:15:47.919Z\",\n \"validTo\": \"2023-10-16T14:15:47.919Z\",\n \"type\": \"ACTIVE\",\n \"description\": \"string\"\n }\n ],\n \"classifications\": [\n {\n \"type\": \"NACE\",\n \"code\": \"string\",\n \"value\": \"string\"\n }\n ],\n \"roles\": [\n \"SUPPLIER\"\n ],\n \"postalAddress\": {\n \"addressType\": \"LegalAndSiteMainAddress\",\n \"physicalPostalAddress\": {\n \"geographicCoordinates\": {\n \"longitude\": 0,\n \"latitude\": 0,\n \"altitude\": 0\n },\n \"country\": \"UNDEFINED\",\n \"administrativeAreaLevel1\": \"string\",\n \"administrativeAreaLevel2\": \"string\",\n \"administrativeAreaLevel3\": \"string\",\n \"postalCode\": \"string\",\n \"city\": \"string\",\n \"district\": \"string\",\n \"street\": {\n \"name\": \"string\",\n \"houseNumber\": \"string\",\n \"milestone\": \"string\",\n \"direction\": \"string\",\n \"namePrefix\": \"string\",\n \"additionalNamePrefix\": \"string\",\n \"nameSuffix\": \"string\",\n \"additionalNameSuffix\": \"string\"\n },\n \"companyPostalCode\": \"string\",\n \"industrialZone\": \"string\",\n \"building\": \"string\",\n \"floor\": \"string\",\n \"door\": \"string\"\n },\n \"alternativePostalAddress\": {\n \"geographicCoordinates\": {\n \"longitude\": 0,\n \"latitude\": 0,\n \"altitude\": 0\n },\n \"country\": \"UNDEFINED\",\n \"administrativeAreaLevel1\": \"string\",\n \"postalCode\": \"string\",\n \"city\": \"string\",\n \"deliveryServiceType\": \"PO_BOX\",\n \"deliveryServiceQualifier\": \"string\",\n \"deliveryServiceNumber\": \"string\"\n }\n },\n \"bpnL\": \"string\",\n \"bpnS\": \"string\",\n \"bpnA\": \"string\",\n \"ownerBpnL\": \"string\"\n },\n \"legalEntity\": {\n \"bpnLReference\": {\n \"referenceValue\": \"string\",\n \"referenceType\": \"Bpn\"\n },\n \"hasChanged\": true,\n \"legalName\": \"string\",\n \"legalShortName\": \"string\",\n \"identifiers\": [\n {\n \"value\": \"string\",\n \"type\": \"string\",\n \"issuingBody\": \"string\"\n }\n ],\n \"legalForm\": \"string\",\n \"states\": [\n {\n \"description\": \"string\",\n \"validFrom\": \"2023-10-16T14:15:47.919Z\",\n \"validTo\": \"2023-10-16T14:15:47.919Z\",\n \"type\": \"ACTIVE\"\n }\n ],\n \"classifications\": [\n {\n \"type\": \"NACE\",\n \"code\": \"string\",\n \"value\": \"string\"\n }\n ],\n \"legalAddress\": {\n \"bpnAReference\": {\n \"referenceValue\": \"string\",\n \"referenceType\": \"Bpn\"\n },\n \"hasChanged\": true,\n \"name\": \"string\",\n \"states\": [\n {\n \"description\": \"string\",\n \"validFrom\": \"2023-10-16T14:15:47.919Z\",\n \"validTo\": \"2023-10-16T14:15:47.919Z\",\n \"type\": \"ACTIVE\"\n }\n ],\n \"identifiers\": [\n {\n \"value\": \"string\",\n \"type\": \"string\"\n }\n ],\n \"physicalPostalAddress\": {\n \"geographicCoordinates\": {\n \"longitude\": 0,\n \"latitude\": 0,\n \"altitude\": 0\n },\n \"country\": \"UNDEFINED\",\n \"administrativeAreaLevel1\": \"string\",\n \"administrativeAreaLevel2\": \"string\",\n \"administrativeAreaLevel3\": \"string\",\n \"postalCode\": \"string\",\n \"city\": \"string\",\n \"district\": \"string\",\n \"street\": {\n \"name\": \"string\",\n \"houseNumber\": \"string\",\n \"milestone\": \"string\",\n \"direction\": \"string\",\n \"namePrefix\": \"string\",\n \"additionalNamePrefix\": \"string\",\n \"nameSuffix\": \"string\",\n \"additionalNameSuffix\": \"string\"\n },\n \"companyPostalCode\": \"string\",\n \"industrialZone\": \"string\",\n \"building\": \"string\",\n \"floor\": \"string\",\n \"door\": \"string\"\n },\n \"alternativePostalAddress\": {\n \"geographicCoordinates\": {\n \"longitude\": 0,\n \"latitude\": 0,\n \"altitude\": 0\n },\n \"country\": \"UNDEFINED\",\n \"administrativeAreaLevel1\": \"string\",\n \"postalCode\": \"string\",\n \"city\": \"string\",\n \"deliveryServiceType\": \"PO_BOX\",\n \"deliveryServiceQualifier\": \"string\",\n \"deliveryServiceNumber\": \"string\"\n }\n }\n },\n \"site\": {\n \"bpnSReference\": {\n \"referenceValue\": \"string\",\n \"referenceType\": \"Bpn\"\n },\n \"hasChanged\": true,\n \"name\": \"string\",\n \"states\": [\n {\n \"description\": \"string\",\n \"validFrom\": \"2023-10-16T14:15:47.919Z\",\n \"validTo\": \"2023-10-16T14:15:47.919Z\",\n \"type\": \"ACTIVE\"\n }\n ],\n \"mainAddress\": {\n \"bpnAReference\": {\n \"referenceValue\": \"string\",\n \"referenceType\": \"Bpn\"\n },\n \"hasChanged\": true,\n \"name\": \"string\",\n \"states\": [\n {\n \"description\": \"string\",\n \"validFrom\": \"2023-10-16T14:15:47.919Z\",\n \"validTo\": \"2023-10-16T14:15:47.919Z\",\n \"type\": \"ACTIVE\"\n }\n ],\n \"identifiers\": [\n {\n \"value\": \"string\",\n \"type\": \"string\"\n }\n ],\n \"physicalPostalAddress\": {\n \"geographicCoordinates\": {\n \"longitude\": 0,\n \"latitude\": 0,\n \"altitude\": 0\n },\n \"country\": \"UNDEFINED\",\n \"administrativeAreaLevel1\": \"string\",\n \"administrativeAreaLevel2\": \"string\",\n \"administrativeAreaLevel3\": \"string\",\n \"postalCode\": \"string\",\n \"city\": \"string\",\n \"district\": \"string\",\n \"street\": {\n \"name\": \"string\",\n \"houseNumber\": \"string\",\n \"milestone\": \"string\",\n \"direction\": \"string\",\n \"namePrefix\": \"string\",\n \"additionalNamePrefix\": \"string\",\n \"nameSuffix\": \"string\",\n \"additionalNameSuffix\": \"string\"\n },\n \"companyPostalCode\": \"string\",\n \"industrialZone\": \"string\",\n \"building\": \"string\",\n \"floor\": \"string\",\n \"door\": \"string\"\n },\n \"alternativePostalAddress\": {\n \"geographicCoordinates\": {\n \"longitude\": 0,\n \"latitude\": 0,\n \"altitude\": 0\n },\n \"country\": \"UNDEFINED\",\n \"administrativeAreaLevel1\": \"string\",\n \"postalCode\": \"string\",\n \"city\": \"string\",\n \"deliveryServiceType\": \"PO_BOX\",\n \"deliveryServiceQualifier\": \"string\",\n \"deliveryServiceNumber\": \"string\"\n }\n }\n },\n \"address\": {\n \"bpnAReference\": {\n \"referenceValue\": \"string\",\n \"referenceType\": \"Bpn\"\n },\n \"hasChanged\": true,\n \"name\": \"string\",\n \"states\": [\n {\n \"description\": \"string\",\n \"validFrom\": \"2023-10-16T14:15:47.919Z\",\n \"validTo\": \"2023-10-16T14:15:47.919Z\",\n \"type\": \"ACTIVE\"\n }\n ],\n \"identifiers\": [\n {\n \"value\": \"string\",\n \"type\": \"string\"\n }\n ],\n \"physicalPostalAddress\": {\n \"geographicCoordinates\": {\n \"longitude\": 0,\n \"latitude\": 0,\n \"altitude\": 0\n },\n \"country\": \"UNDEFINED\",\n \"administrativeAreaLevel1\": \"string\",\n \"administrativeAreaLevel2\": \"string\",\n \"administrativeAreaLevel3\": \"string\",\n \"postalCode\": \"string\",\n \"city\": \"string\",\n \"district\": \"string\",\n \"street\": {\n \"name\": \"string\",\n \"houseNumber\": \"string\",\n \"milestone\": \"string\",\n \"direction\": \"string\",\n \"namePrefix\": \"string\",\n \"additionalNamePrefix\": \"string\",\n \"nameSuffix\": \"string\",\n \"additionalNameSuffix\": \"string\"\n },\n \"companyPostalCode\": \"string\",\n \"industrialZone\": \"string\",\n \"building\": \"string\",\n \"floor\": \"string\",\n \"door\": \"string\"\n },\n \"alternativePostalAddress\": {\n \"geographicCoordinates\": {\n \"longitude\": 0,\n \"latitude\": 0,\n \"altitude\": 0\n },\n \"country\": \"UNDEFINED\",\n \"administrativeAreaLevel1\": \"string\",\n \"postalCode\": \"string\",\n \"city\": \"string\",\n \"deliveryServiceType\": \"PO_BOX\",\n \"deliveryServiceQualifier\": \"string\",\n \"deliveryServiceNumber\": \"string\"\n }\n }\n },\n \"errors\": [\n {\n \"type\": \"Timeout\",\n \"description\": \"string\"\n }\n ]\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{Orchestrator-Host}}/api/golden-record-tasks/step-results", + "host": [ + "{{Orchestrator-Host}}" + ], + "path": [ + "api", + "golden-record-tasks", + "step-results" + ] + } + }, + "response": [] + }, + { + "name": "Step Reservation", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"amount\": 0,\n \"step\": \"CleanAndSync\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{Orchestrator-Host}}/api/golden-record-tasks/step-reservations", + "host": [ + "{{Orchestrator-Host}}" + ], + "path": [ + "api", + "golden-record-tasks", + "step-reservations" + ] + } + }, + "response": [] + } + ] + } + ], + "variable": [ + { + "key": "baseUrl", + "value": "http://localhost:8085" + } + ] +} \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/BPDM Pool.postman_collection.json b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/BPDM Pool.postman_collection.json new file mode 100644 index 00000000000..ff89c7120bf --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/BPDM Pool.postman_collection.json @@ -0,0 +1,1098 @@ +{ + "info": { + "_postman_id": "7c864024-7b7c-4bb6-aab8-0be237fbb80f", + "name": "BPDM Pool", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "26818013" + }, + "item": [ + { + "name": "Metadata Controller", + "item": [ + { + "name": "Legal Forms", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{Pool-Host}}/api/catena/legal-forms?page=0&size=10", + "host": [ + "{{Pool-Host}}" + ], + "path": [ + "api", + "catena", + "legal-forms" + ], + "query": [ + { + "key": "page", + "value": "0" + }, + { + "key": "size", + "value": "10" + } + ] + } + }, + "response": [] + }, + { + "name": "Regions", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{Pool-Host}}/api/catena/regions", + "host": [ + "{{Pool-Host}}" + ], + "path": [ + "api", + "catena", + "regions" + ] + } + }, + "response": [] + }, + { + "name": "Create Legal Form", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"technicalKey\": \"CUSTOM_LEGAL_FORM\",\n \"name\": \"Custom Legal Form for Testing\",\n \"abbreviation\": null\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{Pool-Host}}/api/catena/legal-forms", + "host": [ + "{{Pool-Host}}" + ], + "path": [ + "api", + "catena", + "legal-forms" + ] + } + }, + "response": [] + }, + { + "name": "Identifier Types", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{Pool-Host}}/api/catena/identifier-types?page=0&size=10&businessPartnerType=LEGAL_ENTITY", + "host": [ + "{{Pool-Host}}" + ], + "path": [ + "api", + "catena", + "identifier-types" + ], + "query": [ + { + "key": "page", + "value": "0" + }, + { + "key": "size", + "value": "10" + }, + { + "key": "businessPartnerType", + "value": "LEGAL_ENTITY" + } + ] + } + }, + "response": [] + }, + { + "name": "Create Identifier Type", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"technicalKey\": \"CUSTOM_ID_TYPE\",\n \"businessPartnerType\": \"LEGAL_ENTITY\",\n \"name\": \"CUSTOM_ID_TYPE\",\n \"details\": [\n {\n \"country\": \"DE\",\n \"mandatory\": false\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{Pool-Host}}/api/catena/identifier-types", + "host": [ + "{{Pool-Host}}" + ], + "path": [ + "api", + "catena", + "identifier-types" + ] + } + }, + "response": [] + }, + { + "name": "Field Quality Rules", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{Pool-Host}}/api/catena/field-quality-rules/?country=CZ", + "host": [ + "{{Pool-Host}}" + ], + "path": [ + "api", + "catena", + "field-quality-rules", + "" + ], + "query": [ + { + "key": "country", + "value": "CZ" + } + ] + } + }, + "response": [] + }, + { + "name": "Administrative areas level1", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{Pool-Host}}/api/catena/administrative-areas-level1?page=0&size=10", + "host": [ + "{{Pool-Host}}" + ], + "path": [ + "api", + "catena", + "administrative-areas-level1" + ], + "query": [ + { + "key": "page", + "value": "0" + }, + { + "key": "size", + "value": "10" + } + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Legal Entity Controller", + "item": [ + { + "name": "Legal Entities", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{Pool-Host}}/api/catena/legal-entities?legalName=Name of Company&page=0&size=10", + "host": [ + "{{Pool-Host}}" + ], + "path": [ + "api", + "catena", + "legal-entities" + ], + "query": [ + { + "key": "legalName", + "value": "Name of Company" + }, + { + "key": "legalForm", + "value": "", + "disabled": true + }, + { + "key": "status", + "value": "", + "disabled": true + }, + { + "key": "classification", + "value": "", + "disabled": true + }, + { + "key": "administrativeArea", + "value": "", + "disabled": true + }, + { + "key": "postCode", + "value": "", + "disabled": true + }, + { + "key": "locality", + "value": "", + "disabled": true + }, + { + "key": "thoroughfare", + "value": "", + "disabled": true + }, + { + "key": "premise", + "value": "", + "disabled": true + }, + { + "key": "postalDeliveryPoint", + "value": "", + "disabled": true + }, + { + "key": "siteName", + "value": "", + "disabled": true + }, + { + "key": "page", + "value": "0" + }, + { + "key": "size", + "value": "10" + } + ] + } + }, + "response": [] + }, + { + "name": "Update Legal Entity", + "request": { + "method": "PUT", + "header": [], + "body": { + "mode": "raw", + "raw": "[\n {\n \"bpnl\": \"BPNL000000000001\",\n \"legalName\": \"Name of Company\",\n \"identifiers\": [\n {\n \"value\": \"123456789\",\n \"type\": \"CUSTOM_ID_TYPE\",\n \"issuingBody\": \"CUSTOM_ISSUE_BODY\"\n }\n ],\n \"legalShortName\": \"NoC\",\n \"legalForm\": \"CUSTOM_LEGAL_FORM\",\n \"states\": [\n {\n \"officialDenotation\": \"Active\",\n \"validFrom\": \"2020-12-16T05:54:48.942Z\",\n \"validTo\": \"2023-06-05T07:31:01.213Z\",\n \"type\": \"ACTIVE\"\n }\n ],\n \"classifications\": [\n {\n \"value\": \"Farming of cattle, dairy farming\",\n \"code\": \"01.21\",\n \"type\": \"NACE\"\n }\n ],\n \"legalAddress\": {\n \"name\": \"WESTERN_LATIN_STANDARD\",\n \"states\": [\n {\n \"description\": \"WESTERN_LATIN_STANDARD\",\n \"validFrom\": \"2020-12-16T05:54:48.942Z\",\n \"validTo\": \"2023-06-05T07:31:01.213Z\",\n \"type\": \"ACTIVE\"\n }\n ],\n \"identifiers\": [\n {\n \"value\": \"12345678910\",\n \"type\": \"CUSTOM_ID_ADD_TYPE\"\n }\n ],\n \"physicalPostalAddress\": {\n \"geographicCoordinates\": {\n \"longitude\": 0,\n \"latitude\": 0,\n \"altitude\": 0\n },\n \"country\": \"DE\",\n \"postalCode\": \"70546\",\n \"city\": \"Stuttgart\",\n \"street\": {\n \"name\": \"Stuttgarter Strasse\",\n \"houseNumber\": \"1\",\n \"milestone\": \"Stuttgarter Strasse 1\",\n \"direction\": \"Stuttgarter Str.\"\n },\n \"administrativeAreaLevel1\": \"Baden-Wuerttemberg\",\n \"administrativeAreaLevel2\": \"test1\",\n \"administrativeAreaLevel3\": \"test2\",\n \"district\": \"Stuttgart\",\n \"companyPostalCode\": \"GM01\",\n \"industrialZone\": \"HEADQUARTER\",\n \"building\": \"Building A\",\n \"floor\": \"A\",\n \"door\": \"test\"\n },\n \"alternativePostalAddress\": {\n \"geographicCoordinates\": {\n \"longitude\": 0,\n \"latitude\": 0,\n \"altitude\": 0\n },\n \"country\": \"DE\",\n \"postalCode\": \"1234\",\n \"city\": \"Stuttgart 1\",\n \"administrativeAreaLevel1\": \"Baden-Wuerttemberg 1\",\n \"deliveryServiceNumber\": \"1234\",\n \"deliveryServiceType\": \"PO_BOX\",\n \"deliveryServiceQualifier\": \"test\"\n }\n }\n }\n]", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{Pool-Host}}/api/catena/legal-entities", + "host": [ + "{{Pool-Host}}" + ], + "path": [ + "api", + "catena", + "legal-entities" + ] + } + }, + "response": [] + }, + { + "name": "Create Legal Entities", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "[\n {\n \"legalName\": \"Name of Company\",\n \"identifiers\": [\n {\n \"value\": \"123456789\",\n \"type\": \"CUSTOM_ID_TYPE\",\n \"issuingBody\": \"CUSTOM_ISSUE_BODY\"\n }\n ],\n \"legalShortName\": \"NoC\",\n \"legalForm\": \"CUSTOM_LEGAL_FORM\",\n \"states\": [\n {\n \"officialDenotation\": \"Active\",\n \"validFrom\": \"2020-12-16T05:54:48.942Z\",\n \"validTo\": \"2023-06-05T07:31:01.213Z\",\n \"type\": \"ACTIVE\"\n }\n ],\n \"classifications\": [\n {\n \"value\": \"Farming of cattle, dairy farming\",\n \"code\": \"01.21\",\n \"type\": \"NACE\"\n }\n ],\n \"legalAddress\": {\n \"name\": \"WESTERN_LATIN_STANDARD\",\n \"states\": [\n {\n \"description\": \"WESTERN_LATIN_STANDARD\",\n \"validFrom\": \"2020-12-16T05:54:48.942Z\",\n \"validTo\": \"2023-06-05T07:31:01.213Z\",\n \"type\": \"ACTIVE\"\n }\n ],\n \"identifiers\": [\n {\n \"value\": \"12345678910\",\n \"type\": \"CUSTOM_ID_ADD_TYPE\"\n }\n ],\n \"physicalPostalAddress\": {\n \"geographicCoordinates\": {\n \"longitude\": 0,\n \"latitude\": 0,\n \"altitude\": 0\n },\n \"country\": \"DE\",\n \"postalCode\": \"70546\",\n \"city\": \"Stuttgart\",\n \"street\": {\n \"name\": \"Stuttgarter Strasse\",\n \"houseNumber\": \"1\",\n \"milestone\": \"Stuttgarter Strasse 1\",\n \"direction\": \"Stuttgarter Str.\"\n },\n \"administrativeAreaLevel1\": null,\n \"administrativeAreaLevel2\": \"test1\",\n \"administrativeAreaLevel3\": \"test2\",\n \"district\": \"Stuttgart\",\n \"companyPostalCode\": \"GM01\",\n \"industrialZone\": \"HEADQUARTER\",\n \"building\": \"Building A\",\n \"floor\": \"A\",\n \"door\": \"test\"\n },\n \"alternativePostalAddress\": {\n \"geographicCoordinates\": {\n \"longitude\": 0,\n \"latitude\": 0,\n \"altitude\": 0\n },\n \"country\": \"DE\",\n \"postalCode\": \"1234\",\n \"city\": \"Stuttgart 1\",\n \"administrativeAreaLevel1\": null,\n \"deliveryServiceNumber\": \"1234\",\n \"deliveryServiceType\": \"PO_BOX\",\n \"deliveryServiceQualifier\": \"test\"\n }\n },\n \"index\": \"0\"\n }\n]", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{Pool-Host}}/api/catena/legal-entities", + "host": [ + "{{Pool-Host}}" + ], + "path": [ + "api", + "catena", + "legal-entities" + ] + } + }, + "response": [] + }, + { + "name": "Confirm up to date", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{Pool-Host}}/api/catena/legal-entities/BPNL000000000001/confirm-up-to-date", + "host": [ + "{{Pool-Host}}" + ], + "path": [ + "api", + "catena", + "legal-entities", + "BPNL000000000001", + "confirm-up-to-date" + ] + } + }, + "response": [] + }, + { + "name": "Search Legal Entities", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "[\n \"BPNL000000000001\"\n]", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{Pool-Host}}/api/catena/legal-entities/search", + "host": [ + "{{Pool-Host}}" + ], + "path": [ + "api", + "catena", + "legal-entities", + "search" + ] + } + }, + "response": [] + }, + { + "name": "Search Legal Addresses", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "[\n \"BPNL000000000001\"\n]", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{Pool-Host}}/api/catena/legal-entities/legal-addresses/search", + "host": [ + "{{Pool-Host}}" + ], + "path": [ + "api", + "catena", + "legal-entities", + "legal-addresses", + "search" + ] + } + }, + "response": [] + }, + { + "name": "Legal Entity", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{Pool-Host}}/api/catena/legal-entities/123456789?idType=CUSTOM_ID_TYPE", + "host": [ + "{{Pool-Host}}" + ], + "path": [ + "api", + "catena", + "legal-entities", + "123456789" + ], + "query": [ + { + "key": "idType", + "value": "CUSTOM_ID_TYPE" + } + ] + } + }, + "response": [] + }, + { + "name": "Legal Entity Sites", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{Pool-Host}}/api/catena/legal-entities/BPNL000000000001/sites?page=0&size=10", + "host": [ + "{{Pool-Host}}" + ], + "path": [ + "api", + "catena", + "legal-entities", + "BPNL000000000001", + "sites" + ], + "query": [ + { + "key": "page", + "value": "0" + }, + { + "key": "size", + "value": "10" + } + ] + } + }, + "response": [] + }, + { + "name": "Legal Entity Addresses", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{Pool-Host}}/api/catena/legal-entities/BPNL000000000001/addresses?page=0&size=10", + "host": [ + "{{Pool-Host}}" + ], + "path": [ + "api", + "catena", + "legal-entities", + "BPNL000000000001", + "addresses" + ], + "query": [ + { + "key": "page", + "value": "0" + }, + { + "key": "size", + "value": "10" + } + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Site Controller", + "item": [ + { + "name": "Create Sites", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "[\n {\n \"name\": \"Factory UT\",\n \"states\": [\n {\n \"description\": \"Baden-Wuerttemberg\",\n \"validFrom\": \"2023-06-06T08:18:05.777Z\",\n \"validTo\": \"2024-06-06T08:18:05.777Z\",\n \"type\": \"ACTIVE\"\n }\n ],\n \"mainAddress\": {\n \"name\": \"WESTERN_LATIN_STANDARD\",\n \"states\": [\n {\n \"description\": \"Baden-Wuerttemberg\",\n \"validFrom\": \"2023-06-06T08:18:05.777Z\",\n \"validTo\": \"2024-06-06T08:18:05.777Z\",\n \"type\": \"ACTIVE\"\n }\n ],\n \"identifiers\": [\n {\n \"value\": \"123456789\",\n \"type\": \"CUSTOM_SITE_ID\"\n }\n ],\n \"physicalPostalAddress\": {\n \"geographicCoordinates\": {\n \"longitude\": 0,\n \"latitude\": 0,\n \"altitude\": 0\n },\n \"country\": \"DE\",\n \"postalCode\": \"70327\",\n \"city\": \"Stuttgart\",\n \"street\": {\n \"name\": \"Untertuerckheim Strasse 1\",\n \"houseNumber\": \"1234\",\n \"milestone\": \"Untertuerckheim Strasse 1\",\n \"direction\": \"Untertuerckheim Strasse 1\"\n },\n \"administrativeAreaLevel1\": \"Baden-Wuerttember\",\n \"district\": \"Stuttgart\",\n \"companyPostalCode\": \"71034\",\n \"industrialZone\": \"Sindelfinden\",\n \"building\": \"Building A\",\n \"floor\": \"A\",\n \"door\": \"1\"\n },\n \"alternativePostalAddress\": {\n \"geographicCoordinates\": {\n \"longitude\": 0,\n \"latitude\": 0,\n \"altitude\": 0\n },\n \"country\": \"DE\",\n \"postalCode\": \"1234\",\n \"city\": \"Stuttgart\",\n \"administrativeAreaLevel1\": \"Stuttgart\",\n \"deliveryServiceNumber\": \"Untertuerckheim Strasse 1\",\n \"deliveryServiceType\": \"PO_BOX\",\n \"deliveryServiceQualifier\": \"test qualifier\"\n }\n },\n \"bpnlParent\": \"BPNL000000000001\",\n \"index\": \"1\"\n }\n]", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{Pool-Host}}/api/catena/sites", + "host": [ + "{{Pool-Host}}" + ], + "path": [ + "api", + "catena", + "sites" + ] + } + }, + "response": [] + }, + { + "name": "Update Sites", + "request": { + "method": "PUT", + "header": [], + "body": { + "mode": "raw", + "raw": "[\n {\n \"bpns\": \"BPNS000000000001\",\n \"name\": \"Factory UT\",\n \"states\": [\n {\n \"description\": \"Baden-Wuerttemberg\",\n \"validFrom\": \"2023-06-06T08:18:05.777Z\",\n \"validTo\": \"2024-06-06T08:18:05.777Z\",\n \"type\": \"ACTIVE\"\n }\n ],\n \"mainAddress\": {\n \"name\": \"WESTERN_LATIN_STANDARD\",\n \"states\": [\n {\n \"description\": \"Baden-Wuerttemberg\",\n \"validFrom\": \"2023-06-06T08:18:05.777Z\",\n \"validTo\": \"2024-06-06T08:18:05.777Z\",\n \"type\": \"ACTIVE\"\n }\n ],\n \"identifiers\": [\n {\n \"value\": \"123456789\",\n \"type\": \"CUSTOM_SITE_ID\"\n }\n ],\n \"physicalPostalAddress\": {\n \"geographicCoordinates\": {\n \"longitude\": 0,\n \"latitude\": 0,\n \"altitude\": 0\n },\n \"country\": \"DE\",\n \"postalCode\": \"70327\",\n \"city\": \"Stuttgart\",\n \"street\": {\n \"name\": \"Untertuerckheim Strasse 1\",\n \"houseNumber\": \"1234\",\n \"milestone\": \"Untertuerckheim Strasse 1\",\n \"direction\": \"Untertuerckheim Strasse 1\"\n },\n \"administrativeAreaLevel1\": \"Baden-Wuerttember\",\n \"district\": \"Stuttgart\",\n \"companyPostalCode\": \"71034\",\n \"industrialZone\": \"Sindelfinden\",\n \"building\": \"Building A\",\n \"floor\": \"A\",\n \"door\": \"1\"\n },\n \"alternativePostalAddress\": {\n \"geographicCoordinates\": {\n \"longitude\": 0,\n \"latitude\": 0,\n \"altitude\": 0\n },\n \"country\": \"DE\",\n \"postalCode\": \"1234\",\n \"city\": \"Stuttgart\",\n \"administrativeAreaLevel1\": \"Stuttgart\",\n \"deliveryServiceNumber\": \"Untertuerckheim Strasse 1\",\n \"deliveryServiceType\": \"PO_BOX\",\n \"deliveryServiceQualifier\": \"test qualifier\"\n }\n }\n }\n]", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{Pool-Host}}/api/catena/sites", + "host": [ + "{{Pool-Host}}" + ], + "path": [ + "api", + "catena", + "sites" + ] + } + }, + "response": [] + }, + { + "name": "Search Sites", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"legalEntities\": [\n \"BPNL000000000001\"\n ],\n \"sites\": [\n \"BPNS000000000001\"\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{Pool-Host}}/api/catena/sites/search?page=0&size=10", + "host": [ + "{{Pool-Host}}" + ], + "path": [ + "api", + "catena", + "sites", + "search" + ], + "query": [ + { + "key": "page", + "value": "0" + }, + { + "key": "size", + "value": "10" + } + ] + } + }, + "response": [] + }, + { + "name": "Search Main Addresses", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "[\n \"BPNS000000000001\"\n]", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{Pool-Host}}/api/catena/sites/main-addresses/search", + "host": [ + "{{Pool-Host}}" + ], + "path": [ + "api", + "catena", + "sites", + "main-addresses", + "search" + ] + } + }, + "response": [] + }, + { + "name": "Site", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{Pool-Host}}/api/catena/sites/BPNS0000000007UH", + "host": [ + "{{Pool-Host}}" + ], + "path": [ + "api", + "catena", + "sites", + "BPNS0000000007UH" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Address Controller", + "item": [ + { + "name": "Create Address Partners", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "[\n {\n \"name\": \"WESTERN_LATIN_STANDARD\",\n \"states\": [\n {\n \"description\": \"WESTERN_LATIN_STANDARD\",\n \"validFrom\": \"2023-06-06T10:02:00.355Z\",\n \"validTo\": \"2024-06-06T10:02:00.355Z\",\n \"type\": \"ACTIVE\"\n }\n ],\n \"identifiers\": [\n {\n \"value\": \"12345678910\",\n \"type\": \"CUSTOM_ID_ADD_TYPE\"\n }\n ],\n \"physicalPostalAddress\": {\n \"geographicCoordinates\": {\n \"longitude\": 0,\n \"latitude\": 0,\n \"altitude\": 0\n },\n \"country\": \"DE\",\n \"postalCode\": \"70546\",\n \"city\": \"Stuttgart\",\n \"street\": {\n \"name\": \"Stuttgarter Strasse\",\n \"houseNumber\": \"1\",\n \"milestone\": \"Stuttgarter Strasse 1\",\n \"direction\": \"Stuttgarter Str.\"\n },\n \"administrativeAreaLevel1\": \"Baden-Wuerttemberg\",\n \"district\": \"Stuttgart\",\n \"companyPostalCode\": \"GM01\",\n \"industrialZone\": \"HEADQUARTER\",\n \"building\": \"Building A\",\n \"floor\": \"A\",\n \"door\": null\n },\n \"alternativePostalAddress\": {\n \"geographicCoordinates\": {\n \"longitude\": 0,\n \"latitude\": 0,\n \"altitude\": 0\n },\n \"country\": \"DE\",\n \"postalCode\": \"1234\",\n \"city\": \"Stuttgart\",\n \"administrativeAreaLevel1\": \"Baden-Wuerttemberg test1\",\n \"deliveryServiceNumber\": \"test\",\n \"deliveryServiceType\": \"PO_BOX\",\n \"deliveryServiceQualifier\": \"test1\"\n },\n \"bpnParent\": \"BPNL000000000001\",\n \"index\": \"0\"\n }\n]", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{Pool-Host}}/api/catena/addresses", + "host": [ + "{{Pool-Host}}" + ], + "path": [ + "api", + "catena", + "addresses" + ] + } + }, + "response": [] + }, + { + "name": "Update Address Partner", + "request": { + "method": "PUT", + "header": [], + "body": { + "mode": "raw", + "raw": "[\n {\n \"bpna\": \"BPNA000000000001\",\n \"name\": \"WESTERN_LATIN_STANDARD\",\n \"states\": [\n {\n \"description\": \"WESTERN_LATIN_STANDARD\",\n \"validFrom\": \"2020-12-16T05:54:48.942\",\n \"validTo\": \"2023-06-05T07:31:01.213\",\n \"type\": \"ACTIVE\"\n }\n ],\n \"identifiers\": [\n {\n \"value\": \"12345678910\",\n \"type\": \"CUSTOM_ID_ADD_TYPE\"\n }\n ],\n \"physicalPostalAddress\": {\n \"geographicCoordinates\": {\n \"longitude\": 0,\n \"latitude\": 0,\n \"altitude\": 0\n },\n \"country\": \"DE\",\n \"postalCode\": \"70546\",\n \"city\": \"Stuttgart\",\n \"street\": {\n \"name\": \"Stuttgarter Strasse\",\n \"houseNumber\": \"1\",\n \"milestone\": \"Stuttgarter Strasse 1\",\n \"direction\": \"Stuttgarter Str.\"\n },\n \"administrativeAreaLevel1\": null,\n \"administrativeAreaLevel2\": \"test1\",\n \"administrativeAreaLevel3\": \"test2\",\n \"district\": \"Stuttgart\",\n \"companyPostalCode\": \"GM01\",\n \"industrialZone\": \"HEADQUARTER\",\n \"building\": \"Building A\",\n \"floor\": \"A\",\n \"door\": \"test\"\n },\n \"alternativePostalAddress\": {\n \"geographicCoordinates\": {\n \"longitude\": 0,\n \"latitude\": 0,\n \"altitude\": 0\n },\n \"country\": \"DE\",\n \"postalCode\": \"Stuttgart 1\",\n \"city\": \"string\",\n \"administrativeAreaLevel1\": \"test1\",\n \"deliveryServiceNumber\": \"test2\",\n \"deliveryServiceType\": \"PO_BOX\",\n \"deliveryServiceQualifier\": \"test3\"\n }\n }\n]", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{Pool-Host}}/api/catena/addresses", + "host": [ + "{{Pool-Host}}" + ], + "path": [ + "api", + "catena", + "addresses" + ] + } + }, + "response": [] + }, + { + "name": "Address Partners", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{Pool-Host}}/api/catena/addresses?Name=ad&page=0&size=10", + "host": [ + "{{Pool-Host}}" + ], + "path": [ + "api", + "catena", + "addresses" + ], + "query": [ + { + "key": "Name", + "value": "ad" + }, + { + "key": "postCode", + "value": "", + "disabled": true + }, + { + "key": "locality", + "value": "", + "disabled": true + }, + { + "key": "thoroughfare", + "value": "", + "disabled": true + }, + { + "key": "premise", + "value": "", + "disabled": true + }, + { + "key": "postalDeliveryPoint", + "value": "", + "disabled": true + }, + { + "key": "countryCode", + "value": "", + "disabled": true + }, + { + "key": "page", + "value": "0" + }, + { + "key": "size", + "value": "10" + } + ] + } + }, + "response": [] + }, + { + "name": "Search Address Partners", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"legalEntities\": [\n \"BPNL000000000001\"\n ],\n \"sites\": [\n \"BPNS000000000001\"\n ],\n \"addresses\": [\n \"BPNA000000000001\"\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{Pool-Host}}/api/catena/addresses/search?page=0&size=10", + "host": [ + "{{Pool-Host}}" + ], + "path": [ + "api", + "catena", + "addresses", + "search" + ], + "query": [ + { + "key": "page", + "value": "0" + }, + { + "key": "size", + "value": "10" + } + ] + } + }, + "response": [] + }, + { + "name": "Address Partner", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{Pool-Host}}/api/catena/addresses/BPNA000000000001", + "host": [ + "{{Pool-Host}}" + ], + "path": [ + "api", + "catena", + "addresses", + "BPNA000000000001" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Opensearch Controller", + "item": [ + { + "name": "Check Opensearch Last Update Status", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{Pool-Host}}/api/opensearch/business-partner", + "host": [ + "{{Pool-Host}}" + ], + "path": [ + "api", + "opensearch", + "business-partner" + ] + } + }, + "response": [] + }, + { + "name": "Update Opensearch Index", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{Pool-Host}}/api/opensearch/business-partner", + "host": [ + "{{Pool-Host}}" + ], + "path": [ + "api", + "opensearch", + "business-partner" + ] + } + }, + "response": [] + }, + { + "name": "Empty Opensearch Index", + "request": { + "method": "DELETE", + "header": [], + "url": { + "raw": "{{Pool-Host}}/api/opensearch/business-partner", + "host": [ + "{{Pool-Host}}" + ], + "path": [ + "api", + "opensearch", + "business-partner" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "BPN Controller", + "item": [ + { + "name": "Search BPNs", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"businessPartnerType\": \"LEGAL_ENTITY\",\n \"idType\": \"CUSTOM_ID_TYPE\",\n \"idValues\": [\n \"123456789\"\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{Pool-Host}}/api/catena/bpn/search", + "host": [ + "{{Pool-Host}}" + ], + "path": [ + "api", + "catena", + "bpn", + "search" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Changelog Controller", + "item": [ + { + "name": "Business Partner Changelog", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"timestampAfter\": \"2023-03-21T09:00:25.298594Z\",\n \"bpns\": [\n \"BPNL000000000001\"\n ],\n \"businessPartnerTypes\": [\n \"LEGAL_ENTITY\"\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{Pool-Host}}/api/catena/business-partners/changelog/search?page=0&size=10", + "host": [ + "{{Pool-Host}}" + ], + "path": [ + "api", + "catena", + "business-partners", + "changelog", + "search" + ], + "query": [ + { + "key": "page", + "value": "0" + }, + { + "key": "size", + "value": "10" + } + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Pool Documentation Controller", + "item": [ + { + "name": "mermaid", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{Pool-Host}}/api/catena/mermaid/", + "host": [ + "{{Pool-Host}}" + ], + "path": [ + "api", + "catena", + "mermaid", + "" + ] + } + }, + "response": [] + } + ] + } + ], + "auth": { + "type": "oauth2", + "oauth2": [ + { + "key": "accessTokenUrl", + "value": "{{Keycloak-Host}}/auth/realms/CX-Central/protocol/openid-connect/token", + "type": "string" + }, + { + "key": "client_authentication", + "value": "body", + "type": "string" + }, + { + "key": "clientSecret", + "value": "{{Pool-Client-Secret}}", + "type": "string" + }, + { + "key": "clientId", + "value": "{{Pool-Client-ID}}", + "type": "string" + }, + { + "key": "tokenName", + "value": "BPDM Pool Token {{Environment}}", + "type": "string" + }, + { + "key": "refreshRequestParams", + "value": [], + "type": "any" + }, + { + "key": "tokenRequestParams", + "value": [], + "type": "any" + }, + { + "key": "authRequestParams", + "value": [], + "type": "any" + }, + { + "key": "challengeAlgorithm", + "value": "S256", + "type": "string" + }, + { + "key": "grant_type", + "value": "client_credentials", + "type": "string" + }, + { + "key": "addTokenTo", + "value": "header", + "type": "string" + } + ] + }, + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] +} \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Bridge Dummy Api/business-partner-data-management-bridge-dummy.info.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Bridge Dummy Api/business-partner-data-management-bridge-dummy.info.mdx new file mode 100644 index 00000000000..9f966c14dad --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Bridge Dummy Api/business-partner-data-management-bridge-dummy.info.mdx @@ -0,0 +1,25 @@ +--- +id: business-partner-data-management-bridge-dummy +title: "Business Partner Data Management Bridge Dummy" +description: "Bridge between Gate and Pool as a simple replacement for a dedicated sharing service" +sidebar_label: Introduction +sidebar_position: 0 +hide_title: true +custom_edit_url: null +--- + +import ApiLogo from "@theme/ApiLogo"; +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; +import Export from "@theme/ApiDemoPanel/Export"; + +Version: 4.0.0-SNAPSHOT + +# Business Partner Data Management Bridge Dummy + + + +Bridge between Gate and Pool as a simple replacement for a dedicated sharing service + + + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Bridge Dummy Api/sidebar.js b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Bridge Dummy Api/sidebar.js new file mode 100644 index 00000000000..26bad89f12c --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Bridge Dummy Api/sidebar.js @@ -0,0 +1 @@ +module.exports = [{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Bridge Dummy Api/business-partner-data-management-bridge-dummy"},{"type":"category","label":"bridge-controller","link":{"type":"generated-index","title":"bridge-controller","slug":"/category/kits/Business Partner Kit/Software Development View/Bridge Dummy Api/bridge-controller"},"items":[{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Bridge Dummy Api/trigger-sync","label":"Start sync between Gate and Pool","className":"api-method post"}]}]; \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Bridge Dummy Api/trigger-sync.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Bridge Dummy Api/trigger-sync.api.mdx new file mode 100644 index 00000000000..3b9b10acbe7 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Bridge Dummy Api/trigger-sync.api.mdx @@ -0,0 +1,34 @@ +--- +id: trigger-sync +title: "Start sync between Gate and Pool" +description: "Start sync between Gate and Pool" +sidebar_label: "Start sync between Gate and Pool" +hide_title: true +hide_table_of_contents: true +api: {"tags":["bridge-controller"],"operationId":"triggerSync","responses":{"200":{"description":"OK"}},"description":"Start sync between Gate and Pool","method":"post","path":"/api/bridge/sync","servers":[{"url":"http://localhost:8083","description":"Generated server url"}],"info":{"title":"Business Partner Data Management Bridge Dummy","description":"Bridge between Gate and Pool as a simple replacement for a dedicated sharing service","version":"4.0.0-SNAPSHOT"},"postman":{"name":"Start sync between Gate and Pool","description":{"type":"text/plain"},"url":{"path":["api","bridge","sync"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"method":"POST"}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Bridge Dummy Api/business-partner-data-management-bridge-dummy +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Start sync between Gate and Pool + + + +Start sync between Gate and Pool + +
+ +OK + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Cleaning Dummy Api/business-partner-data-management-cleaning-service-dummy.info.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Cleaning Dummy Api/business-partner-data-management-cleaning-service-dummy.info.mdx new file mode 100644 index 00000000000..5613220e45f --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Cleaning Dummy Api/business-partner-data-management-cleaning-service-dummy.info.mdx @@ -0,0 +1,25 @@ +--- +id: business-partner-data-management-cleaning-service-dummy +title: "Business Partner Data Management Cleaning Service Dummy" +description: "Place holder for the cleaning service provider" +sidebar_label: Introduction +sidebar_position: 0 +hide_title: true +custom_edit_url: null +--- + +import ApiLogo from "@theme/ApiLogo"; +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; +import Export from "@theme/ApiDemoPanel/Export"; + +Version: 4.1.0-SNAPSHOT + +# Business Partner Data Management Cleaning Service Dummy + + + +Place holder for the cleaning service provider + + + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Cleaning Dummy Api/sidebar.js b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Cleaning Dummy Api/sidebar.js new file mode 100644 index 00000000000..84f6658d5b7 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Cleaning Dummy Api/sidebar.js @@ -0,0 +1 @@ +module.exports = [{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Cleaning Dummy Api/business-partner-data-management-cleaning-service-dummy"}]; \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/business-partner-data-management-gate.info.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/business-partner-data-management-gate.info.mdx new file mode 100644 index 00000000000..0e027609bd2 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/business-partner-data-management-gate.info.mdx @@ -0,0 +1,25 @@ +--- +id: business-partner-data-management-gate +title: "Business Partner Data Management Gate" +description: "A gate for a member to share business partner data with CatenaX" +sidebar_label: Introduction +sidebar_position: 0 +hide_title: true +custom_edit_url: null +--- + +import ApiLogo from "@theme/ApiLogo"; +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; +import Export from "@theme/ApiDemoPanel/Export"; + +Version: 4.1.0-SNAPSHOT + +# Business Partner Data Management Gate + + + +A gate for a member to share business partner data with CatenaX + + + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-address-by-external-id.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-address-by-external-id.api.mdx new file mode 100644 index 00000000000..be20a4a4225 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-address-by-external-id.api.mdx @@ -0,0 +1,66 @@ +--- +id: get-address-by-external-id +title: "Returns address by external ID from the input stage" +description: "Returns address by external ID from the input stage." +sidebar_label: "Returns address by external ID from the input stage" +hide_title: true +hide_table_of_contents: true +api: {"tags":["address-controller"],"description":"Returns address by external ID from the input stage.","operationId":"getAddressByExternalId","parameters":[{"name":"externalId","in":"path","description":"External ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Found address with external ID","content":{"application/json":{"schema":{"type":"object","properties":{"nameParts":{"type":"array","description":"The list of name parts of the address to accommodate the different number of name fields in different systems. This is not according to official registers but according to the name the sharing member chooses.","items":{"type":"string"}},"states":{"type":"array","description":"The list of (temporary) states of the address.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the address."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}},"description":"An address state indicates if the address is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the business partner is still operating at that address."}},"identifiers":{"type":"array","description":"The list of identifiers of the address.","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"0847976000005\"."},"type":{"type":"string","description":"The type of the identifier."}},"description":"An address identifier (uniquely) identifies the address, such as the Global Location Number (GLN)."}},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"namePrefix":{"type":"string","description":"The street related information, which is usually printed before the official street name on an address label."},"additionalNamePrefix":{"type":"string","description":"The additional street related information, which is usually printed before the official street name on an address label."},"name":{"type":"string","description":"The name of the street."},"nameSuffix":{"type":"string","description":"The street related information, which is usually printed after the official street name on an address label."},"additionalNameSuffix":{"type":"string","description":"The additional street related information, which is usually printed after the official street name on an address label."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."}},"description":"The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway"},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"A physical postal address describes the physical location of an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else."},"roles":{"type":"array","description":"Roles this business partner takes in relation to the sharing member.","items":{"type":"string","enum":["SUPPLIER","CUSTOMER"]}},"externalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner."},"legalEntityExternalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner, representing the legal entity, that owns the address."},"siteExternalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner, representing the site, that the address belongs to."}},"description":"In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA."}}}},"404":{"description":"No address found under specified external ID"}},"method":"get","path":"/api/catena/input/addresses/{externalId}","servers":[{"url":"http://localhost:8081","description":"Generated server url"}],"info":{"title":"Business Partner Data Management Gate","description":"A gate for a member to share business partner data with CatenaX","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Returns address by external ID from the input stage","description":{"content":"Returns address by external ID from the input stage.","type":"text/plain"},"url":{"path":["api","catena","input","addresses",":externalId"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) External ID","type":"text/plain"},"type":"any","value":"","key":"externalId"}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Gate Api/business-partner-data-management-gate +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Returns address by external ID from the input stage + + + +Returns address by external ID from the input stage. + +
Path Parameters
+ +Found address with external ID + +
Schema
    states object[]
    + +The list of (temporary) states of the address. + +
    identifiers object[]
    + +The list of identifiers of the address. + +
    physicalPostalAddress object
    + +A physical postal address describes the physical location of an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    street object
    + +The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway + +
    alternativePostalAddress object
    + +An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
+ +No address found under specified external ID + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-addresses-by-external-ids.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-addresses-by-external-ids.api.mdx new file mode 100644 index 00000000000..db3a3c32290 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-addresses-by-external-ids.api.mdx @@ -0,0 +1,70 @@ +--- +id: get-addresses-by-external-ids +title: "Returns addresses by an array of external IDs from the input stage" +description: "Returns page of addresses from the input stage. Can optionally be filtered by external IDs." +sidebar_label: "Returns addresses by an array of external IDs from the input stage" +hide_title: true +hide_table_of_contents: true +api: {"tags":["address-controller"],"description":"Returns page of addresses from the input stage. Can optionally be filtered by external IDs.","operationId":"getAddressesByExternalIds","parameters":[{"name":"page","in":"query","description":"Number of page to get results from","required":false,"schema":{"minimum":0,"type":"string","default":"0"}},{"name":"size","in":"query","description":"Size of each page","required":false,"schema":{"maximum":100,"minimum":0,"type":"string","default":"10"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}},"required":true},"responses":{"200":{"description":"The requested page of addresses","content":{"application/json":{"schema":{"type":"object","properties":{"totalElements":{"type":"integer","description":"Total number of all results in all pages","format":"int64"},"totalPages":{"type":"integer","description":"Total number pages","format":"int32"},"page":{"type":"integer","description":"Current page number","format":"int32"},"contentSize":{"type":"integer","description":"Number of results in the page","format":"int32"},"content":{"type":"array","description":"Collection of results in the page","items":{"type":"object","properties":{"nameParts":{"type":"array","description":"The list of name parts of the address to accommodate the different number of name fields in different systems. This is not according to official registers but according to the name the sharing member chooses.","items":{"type":"string"}},"states":{"type":"array","description":"The list of (temporary) states of the address.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the address."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}},"description":"An address state indicates if the address is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the business partner is still operating at that address."}},"identifiers":{"type":"array","description":"The list of identifiers of the address.","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"0847976000005\"."},"type":{"type":"string","description":"The type of the identifier."}},"description":"An address identifier (uniquely) identifies the address, such as the Global Location Number (GLN)."}},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"namePrefix":{"type":"string","description":"The street related information, which is usually printed before the official street name on an address label."},"additionalNamePrefix":{"type":"string","description":"The additional street related information, which is usually printed before the official street name on an address label."},"name":{"type":"string","description":"The name of the street."},"nameSuffix":{"type":"string","description":"The street related information, which is usually printed after the official street name on an address label."},"additionalNameSuffix":{"type":"string","description":"The additional street related information, which is usually printed after the official street name on an address label."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."}},"description":"The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway"},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"A physical postal address describes the physical location of an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else."},"roles":{"type":"array","description":"Roles this business partner takes in relation to the sharing member.","items":{"type":"string","enum":["SUPPLIER","CUSTOMER"]}},"externalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner."},"legalEntityExternalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner, representing the legal entity, that owns the address."},"siteExternalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner, representing the site, that the address belongs to."}},"description":"In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA."}}},"description":"Paginated collection of results"}}}},"400":{"description":"On malformed pagination request"}},"method":"post","path":"/api/catena/input/addresses/search","servers":[{"url":"http://localhost:8081","description":"Generated server url"}],"jsonRequestBodyExample":["string"],"info":{"title":"Business Partner Data Management Gate","description":"A gate for a member to share business partner data with CatenaX","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Returns addresses by an array of external IDs from the input stage","description":{"content":"Returns page of addresses from the input stage. Can optionally be filtered by external IDs.","type":"text/plain"},"url":{"path":["api","catena","input","addresses","search"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"description":{"content":"Number of page to get results from","type":"text/plain"},"key":"page","value":""},{"disabled":false,"description":{"content":"Size of each page","type":"text/plain"},"key":"size","value":""}],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Gate Api/business-partner-data-management-gate +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Returns addresses by an array of external IDs from the input stage + + + +Returns page of addresses from the input stage. Can optionally be filtered by external IDs. + +
Query Parameters
Request Body array required
  • string
+ +The requested page of addresses + +
Schema
    content object[]
    + +Collection of results in the page + +
    states object[]
    + +The list of (temporary) states of the address. + +
    identifiers object[]
    + +The list of identifiers of the address. + +
    physicalPostalAddress object
    + +A physical postal address describes the physical location of an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    street object
    + +The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway + +
    alternativePostalAddress object
    + +An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
+ +On malformed pagination request + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-addresses-output.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-addresses-output.api.mdx new file mode 100644 index 00000000000..53bf9dfd3c0 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-addresses-output.api.mdx @@ -0,0 +1,70 @@ +--- +id: get-addresses-output +title: "Returns addresses by an array of external IDs from the output stage" +description: "Get page of addresses from the output stage. Can optionally be filtered by external IDs." +sidebar_label: "Returns addresses by an array of external IDs from the output stage" +hide_title: true +hide_table_of_contents: true +api: {"tags":["address-controller"],"description":"Get page of addresses from the output stage. Can optionally be filtered by external IDs.","operationId":"getAddressesOutput","parameters":[{"name":"page","in":"query","description":"Number of page to get results from","required":false,"schema":{"minimum":0,"type":"string","default":"0"}},{"name":"size","in":"query","description":"Size of each page","required":false,"schema":{"maximum":100,"minimum":0,"type":"string","default":"10"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}}},"responses":{"200":{"description":"The requested page of addresses","content":{"application/json":{"schema":{"type":"object","properties":{"totalElements":{"type":"integer","description":"Total number of all results in all pages","format":"int64"},"totalPages":{"type":"integer","description":"Total number pages","format":"int32"},"page":{"type":"integer","description":"Current page number","format":"int32"},"contentSize":{"type":"integer","description":"Number of results in the page","format":"int32"},"content":{"type":"array","description":"Collection of results in the page","items":{"type":"object","properties":{"nameParts":{"type":"array","description":"The list of name parts of the address to accommodate the different number of name fields in different systems. This is not according to official registers but according to the name the sharing member chooses.","items":{"type":"string"}},"states":{"type":"array","description":"The list of (temporary) states of the address.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the address."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}},"description":"An address state indicates if the address is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the business partner is still operating at that address."}},"identifiers":{"type":"array","description":"The list of identifiers of the address.","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"0847976000005\"."},"type":{"type":"string","description":"The type of the identifier."}},"description":"An address identifier (uniquely) identifies the address, such as the Global Location Number (GLN)."}},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"namePrefix":{"type":"string","description":"The street related information, which is usually printed before the official street name on an address label."},"additionalNamePrefix":{"type":"string","description":"The additional street related information, which is usually printed before the official street name on an address label."},"name":{"type":"string","description":"The name of the street."},"nameSuffix":{"type":"string","description":"The street related information, which is usually printed after the official street name on an address label."},"additionalNameSuffix":{"type":"string","description":"The additional street related information, which is usually printed after the official street name on an address label."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."}},"description":"The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway"},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"A physical postal address describes the physical location of an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else."},"roles":{"type":"array","description":"Roles this business partner takes in relation to the sharing member.","items":{"type":"string","enum":["SUPPLIER","CUSTOMER"]}},"externalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner."},"legalEntityExternalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner, representing the legal entity, that owns the address."},"siteExternalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner, representing the site, that the address belongs to."},"bpna":{"type":"string","description":"A BPNA represents and uniquely identifies an address, which can be the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates). It is important to note that only the BPNL must be used to uniquely identify a legal entity. Even in the case that the BPNA represents the legal address of the legal entity, it shall not be used to uniquely identify the legal entity."}},"description":"In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA."}}},"description":"Paginated collection of results"}}}},"400":{"description":"On malformed pagination request"}},"method":"post","path":"/api/catena/output/addresses/search","servers":[{"url":"http://localhost:8081","description":"Generated server url"}],"jsonRequestBodyExample":["string"],"info":{"title":"Business Partner Data Management Gate","description":"A gate for a member to share business partner data with CatenaX","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Returns addresses by an array of external IDs from the output stage","description":{"content":"Get page of addresses from the output stage. Can optionally be filtered by external IDs.","type":"text/plain"},"url":{"path":["api","catena","output","addresses","search"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"description":{"content":"Number of page to get results from","type":"text/plain"},"key":"page","value":""},{"disabled":false,"description":{"content":"Size of each page","type":"text/plain"},"key":"size","value":""}],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Gate Api/business-partner-data-management-gate +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Returns addresses by an array of external IDs from the output stage + + + +Get page of addresses from the output stage. Can optionally be filtered by external IDs. + +
Query Parameters
Request Body array
  • string
+ +The requested page of addresses + +
Schema
    content object[]
    + +Collection of results in the page + +
    states object[]
    + +The list of (temporary) states of the address. + +
    identifiers object[]
    + +The list of identifiers of the address. + +
    physicalPostalAddress object
    + +A physical postal address describes the physical location of an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    street object
    + +The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway + +
    alternativePostalAddress object
    + +An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
+ +On malformed pagination request + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-addresses.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-addresses.api.mdx new file mode 100644 index 00000000000..01bf5683aef --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-addresses.api.mdx @@ -0,0 +1,70 @@ +--- +id: get-addresses +title: "Returns addresses from the input stage" +description: "Returns page of addresses from the input stage." +sidebar_label: "Returns addresses from the input stage" +hide_title: true +hide_table_of_contents: true +api: {"tags":["address-controller"],"description":"Returns page of addresses from the input stage.","operationId":"getAddresses","parameters":[{"name":"page","in":"query","description":"Number of page to get results from","required":false,"schema":{"minimum":0,"type":"string","default":"0"}},{"name":"size","in":"query","description":"Size of each page","required":false,"schema":{"maximum":100,"minimum":0,"type":"string","default":"10"}}],"responses":{"200":{"description":"The requested page of addresses","content":{"application/json":{"schema":{"type":"object","properties":{"totalElements":{"type":"integer","description":"Total number of all results in all pages","format":"int64"},"totalPages":{"type":"integer","description":"Total number pages","format":"int32"},"page":{"type":"integer","description":"Current page number","format":"int32"},"contentSize":{"type":"integer","description":"Number of results in the page","format":"int32"},"content":{"type":"array","description":"Collection of results in the page","items":{"type":"object","properties":{"nameParts":{"type":"array","description":"The list of name parts of the address to accommodate the different number of name fields in different systems. This is not according to official registers but according to the name the sharing member chooses.","items":{"type":"string"}},"states":{"type":"array","description":"The list of (temporary) states of the address.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the address."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}},"description":"An address state indicates if the address is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the business partner is still operating at that address."}},"identifiers":{"type":"array","description":"The list of identifiers of the address.","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"0847976000005\"."},"type":{"type":"string","description":"The type of the identifier."}},"description":"An address identifier (uniquely) identifies the address, such as the Global Location Number (GLN)."}},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"namePrefix":{"type":"string","description":"The street related information, which is usually printed before the official street name on an address label."},"additionalNamePrefix":{"type":"string","description":"The additional street related information, which is usually printed before the official street name on an address label."},"name":{"type":"string","description":"The name of the street."},"nameSuffix":{"type":"string","description":"The street related information, which is usually printed after the official street name on an address label."},"additionalNameSuffix":{"type":"string","description":"The additional street related information, which is usually printed after the official street name on an address label."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."}},"description":"The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway"},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"A physical postal address describes the physical location of an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else."},"roles":{"type":"array","description":"Roles this business partner takes in relation to the sharing member.","items":{"type":"string","enum":["SUPPLIER","CUSTOMER"]}},"externalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner."},"legalEntityExternalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner, representing the legal entity, that owns the address."},"siteExternalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner, representing the site, that the address belongs to."}},"description":"In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA."}}},"description":"Paginated collection of results"}}}},"400":{"description":"On malformed pagination request"}},"method":"get","path":"/api/catena/input/addresses","servers":[{"url":"http://localhost:8081","description":"Generated server url"}],"info":{"title":"Business Partner Data Management Gate","description":"A gate for a member to share business partner data with CatenaX","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Returns addresses from the input stage","description":{"content":"Returns page of addresses from the input stage.","type":"text/plain"},"url":{"path":["api","catena","input","addresses"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"description":{"content":"Number of page to get results from","type":"text/plain"},"key":"page","value":""},{"disabled":false,"description":{"content":"Size of each page","type":"text/plain"},"key":"size","value":""}],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Gate Api/business-partner-data-management-gate +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Returns addresses from the input stage + + + +Returns page of addresses from the input stage. + +
Query Parameters
+ +The requested page of addresses + +
Schema
    content object[]
    + +Collection of results in the page + +
    states object[]
    + +The list of (temporary) states of the address. + +
    identifiers object[]
    + +The list of identifiers of the address. + +
    physicalPostalAddress object
    + +A physical postal address describes the physical location of an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    street object
    + +The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway + +
    alternativePostalAddress object
    + +An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
+ +On malformed pagination request + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-business-partners-input.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-business-partners-input.api.mdx new file mode 100644 index 00000000000..bded60981a1 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-business-partners-input.api.mdx @@ -0,0 +1,78 @@ +--- +id: get-business-partners-input +title: "Search business partner by external ID. An empty external ID list returns a paginated list of all business partners." +description: "Get page of business partners filtered by a collection of external IDs." +sidebar_label: "Search business partner by external ID. An empty external ID list returns a paginated list of all business partners." +hide_title: true +hide_table_of_contents: true +api: {"tags":["business-partner-controller"],"description":"Get page of business partners filtered by a collection of external IDs.","operationId":"getBusinessPartnersInput","parameters":[{"name":"page","in":"query","description":"Number of page to get results from","required":false,"schema":{"minimum":0,"type":"string","default":"0"}},{"name":"size","in":"query","description":"Size of each page","required":false,"schema":{"maximum":100,"minimum":0,"type":"string","default":"10"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}}},"responses":{"200":{"description":"The requested page of busines partners","content":{"application/json":{"schema":{"type":"object","properties":{"totalElements":{"type":"integer","description":"Total number of all results in all pages","format":"int64"},"totalPages":{"type":"integer","description":"Total number pages","format":"int32"},"page":{"type":"integer","description":"Current page number","format":"int32"},"contentSize":{"type":"integer","description":"Number of results in the page","format":"int32"},"content":{"type":"array","description":"Collection of results in the page","items":{"required":["externalId","postalAddress"],"type":"object","properties":{"externalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner."},"nameParts":{"type":"array","description":"The list of name parts to accommodate the different number of name fields in different systems.","items":{"type":"string"}},"shortName":{"type":"string","description":"Abbreviated name or shorthand."},"identifiers":{"type":"array","description":"The list of identifiers of the business partner. Sorted and duplicates removed by the service.","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","description":"Technical key of the type to which this identifier belongs to"},"value":{"type":"string","description":"Value of the identifier"},"issuingBody":{"type":"string","description":"Body which issued the identifier"}},"description":"Identifier record for a business partner"}},"legalName":{"type":"string"},"legalForm":{"type":"string","description":"Technical key of the legal form."},"states":{"type":"array","description":"The list of (temporary) states of the business partner. Sorted and duplicates removed by the service.","items":{"required":["type"],"type":"object","properties":{"validFrom":{"type":"string","description":"Date since when the status is/was valid.","format":"date-time"},"validTo":{"type":"string","description":"Date until the status was valid, if applicable.","format":"date-time"},"type":{"type":"string","description":"The type of this specified status.","enum":["ACTIVE","INACTIVE"]},"description":{"type":"string","description":"Denotation of the status."}},"description":"A legal entity state indicates if the legal entity is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the legal entity is still operating."}},"classifications":{"type":"array","description":"The list of classifications of the business partner, such as a specific industry. Sorted and duplicates removed by the service.","items":{"type":"object","properties":{"type":{"type":"string","description":"Type of classification.","enum":["NACE","NAF","NAICS","SIC"]},"code":{"type":"string","description":"The identifier of the class belonging to the classification."},"value":{"type":"string","description":"The name of the class belonging to the classification."}},"description":"A legal entity classification is an assignment of the legal entity to an industry. It does not necessarily have to be the only industry the company is active in (see large companies operating in different industries). Multiple assignments to several industries are possible per classification type."}},"roles":{"type":"array","description":"Roles this business partner takes in relation to the sharing member. Sorted and duplicates removed by the service.","items":{"type":"string","enum":["SUPPLIER","CUSTOMER"]}},"postalAddress":{"type":"object","properties":{"addressType":{"type":"string","description":"Type of the address","enum":["LegalAndSiteMainAddress","LegalAddress","SiteMainAddress","AdditionalAddress"]},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"namePrefix":{"type":"string","description":"The street related information, which is usually printed before the official street name on an address label."},"additionalNamePrefix":{"type":"string","description":"The additional street related information, which is usually printed before the official street name on an address label."},"name":{"type":"string","description":"The name of the street."},"nameSuffix":{"type":"string","description":"The street related information, which is usually printed after the official street name on an address label."},"additionalNameSuffix":{"type":"string","description":"The additional street related information, which is usually printed after the official street name on an address label."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."}},"description":"The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway"},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"A physical postal address describes the physical location of an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else."}},"description":"Postal address of a business partner"},"bpnL":{"type":"string","description":"BPNL"},"bpnS":{"type":"string","description":"BPNS"},"bpnA":{"type":"string","description":"BPNA"},"createdAt":{"type":"string","description":"The date when the data record has been created.","format":"date-time"},"updatedAt":{"type":"string","description":"The date when the data record has been last updated.","format":"date-time"},"ownCompanyData":{"type":"boolean","description":"True if the sharing member declares itself as the owner of the business partner."}},"description":"Generic business partner with external id"}}},"description":"Paginated collection of results"}}}},"400":{"description":"On malformed pagination request"}},"method":"post","path":"/api/catena/input/business-partners/search","servers":[{"url":"http://localhost:8081","description":"Generated server url"}],"jsonRequestBodyExample":["string"],"info":{"title":"Business Partner Data Management Gate","description":"A gate for a member to share business partner data with CatenaX","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Search business partner by external ID. An empty external ID list returns a paginated list of all business partners.","description":{"content":"Get page of business partners filtered by a collection of external IDs.","type":"text/plain"},"url":{"path":["api","catena","input","business-partners","search"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"description":{"content":"Number of page to get results from","type":"text/plain"},"key":"page","value":""},{"disabled":false,"description":{"content":"Size of each page","type":"text/plain"},"key":"size","value":""}],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Gate Api/business-partner-data-management-gate +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Search business partner by external ID. An empty external ID list returns a paginated list of all business partners. + + + +Get page of business partners filtered by a collection of external IDs. + +
Query Parameters
Request Body array
  • string
+ +The requested page of busines partners + +
Schema
    content object[]
    + +Collection of results in the page + +
    identifiers object[]
    + +The list of identifiers of the business partner. Sorted and duplicates removed by the service. + +
    states object[]
    + +The list of (temporary) states of the business partner. Sorted and duplicates removed by the service. + +
    classifications object[]
    + +The list of classifications of the business partner, such as a specific industry. Sorted and duplicates removed by the service. + +
    postalAddress object
    + +Postal address of a business partner + +
    physicalPostalAddress object
    + +A physical postal address describes the physical location of an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    street object
    + +The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway + +
    alternativePostalAddress object
    + +An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
+ +On malformed pagination request + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-business-partners-output.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-business-partners-output.api.mdx new file mode 100644 index 00000000000..e0ffd87b4ec --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-business-partners-output.api.mdx @@ -0,0 +1,78 @@ +--- +id: get-business-partners-output +title: "Search business partners by an array of external IDs from the output stage" +description: "Get page of business partners output data filtered by a collection of external IDs. An empty external ID list will return a paginated list of all business partners." +sidebar_label: "Search business partners by an array of external IDs from the output stage" +hide_title: true +hide_table_of_contents: true +api: {"tags":["business-partner-controller"],"description":"Get page of business partners output data filtered by a collection of external IDs. An empty external ID list will return a paginated list of all business partners.","operationId":"getBusinessPartnersOutput","parameters":[{"name":"page","in":"query","description":"Number of page to get results from","required":false,"schema":{"minimum":0,"type":"string","default":"0"}},{"name":"size","in":"query","description":"Size of each page","required":false,"schema":{"maximum":100,"minimum":0,"type":"string","default":"10"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}}},"responses":{"200":{"description":"The requested page of business partners","content":{"application/json":{"schema":{"type":"object","properties":{"totalElements":{"type":"integer","description":"Total number of all results in all pages","format":"int64"},"totalPages":{"type":"integer","description":"Total number pages","format":"int32"},"page":{"type":"integer","description":"Current page number","format":"int32"},"contentSize":{"type":"integer","description":"Number of results in the page","format":"int32"},"content":{"type":"array","description":"Collection of results in the page","items":{"required":["bpnA","bpnL","externalId","postalAddress"],"type":"object","properties":{"externalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner."},"nameParts":{"type":"array","description":"The list of name parts to accommodate the different number of name fields in different systems.","items":{"type":"string"}},"shortName":{"type":"string","description":"Abbreviated name or shorthand."},"identifiers":{"type":"array","description":"The list of identifiers of the business partner. Sorted and duplicates removed by the service.","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","description":"Technical key of the type to which this identifier belongs to"},"value":{"type":"string","description":"Value of the identifier"},"issuingBody":{"type":"string","description":"Body which issued the identifier"}},"description":"Identifier record for a business partner"}},"legalName":{"type":"string"},"legalForm":{"type":"string","description":"Technical key of the legal form."},"states":{"type":"array","description":"The list of (temporary) states of the business partner. Sorted and duplicates removed by the service.","items":{"required":["type"],"type":"object","properties":{"validFrom":{"type":"string","description":"Date since when the status is/was valid.","format":"date-time"},"validTo":{"type":"string","description":"Date until the status was valid, if applicable.","format":"date-time"},"type":{"type":"string","description":"The type of this specified status.","enum":["ACTIVE","INACTIVE"]},"description":{"type":"string","description":"Denotation of the status."}},"description":"A legal entity state indicates if the legal entity is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the legal entity is still operating."}},"classifications":{"type":"array","description":"The list of classifications of the business partner, such as a specific industry. Sorted and duplicates removed by the service.","items":{"type":"object","properties":{"type":{"type":"string","description":"Type of classification.","enum":["NACE","NAF","NAICS","SIC"]},"code":{"type":"string","description":"The identifier of the class belonging to the classification."},"value":{"type":"string","description":"The name of the class belonging to the classification."}},"description":"A legal entity classification is an assignment of the legal entity to an industry. It does not necessarily have to be the only industry the company is active in (see large companies operating in different industries). Multiple assignments to several industries are possible per classification type."}},"roles":{"type":"array","description":"Roles this business partner takes in relation to the sharing member. Sorted and duplicates removed by the service.","items":{"type":"string","enum":["SUPPLIER","CUSTOMER"]}},"postalAddress":{"type":"object","properties":{"addressType":{"type":"string","description":"Type of the address","enum":["LegalAndSiteMainAddress","LegalAddress","SiteMainAddress","AdditionalAddress"]},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"namePrefix":{"type":"string","description":"The street related information, which is usually printed before the official street name on an address label."},"additionalNamePrefix":{"type":"string","description":"The additional street related information, which is usually printed before the official street name on an address label."},"name":{"type":"string","description":"The name of the street."},"nameSuffix":{"type":"string","description":"The street related information, which is usually printed after the official street name on an address label."},"additionalNameSuffix":{"type":"string","description":"The additional street related information, which is usually printed after the official street name on an address label."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."}},"description":"The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway"},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"A physical postal address describes the physical location of an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else."}},"description":"Postal address of a business partner"},"bpnL":{"type":"string","description":"BPNL"},"bpnS":{"type":"string","description":"BPNS"},"bpnA":{"type":"string","description":"BPNA"},"createdAt":{"type":"string","description":"The date when the data record has been created.","format":"date-time"},"updatedAt":{"type":"string","description":"The date when the data record has been last updated.","format":"date-time"},"ownCompanyData":{"type":"boolean","description":"True if the sharing member declares itself as the owner of the business partner."}},"description":"Generic business partner output with external id"}}},"description":"Paginated collection of results"}}}},"400":{"description":"On malformed pagination request"}},"method":"post","path":"/api/catena/output/business-partners/search","servers":[{"url":"http://localhost:8081","description":"Generated server url"}],"jsonRequestBodyExample":["string"],"info":{"title":"Business Partner Data Management Gate","description":"A gate for a member to share business partner data with CatenaX","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Search business partners by an array of external IDs from the output stage","description":{"content":"Get page of business partners output data filtered by a collection of external IDs. An empty external ID list will return a paginated list of all business partners.","type":"text/plain"},"url":{"path":["api","catena","output","business-partners","search"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"description":{"content":"Number of page to get results from","type":"text/plain"},"key":"page","value":""},{"disabled":false,"description":{"content":"Size of each page","type":"text/plain"},"key":"size","value":""}],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Gate Api/business-partner-data-management-gate +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Search business partners by an array of external IDs from the output stage + + + +Get page of business partners output data filtered by a collection of external IDs. An empty external ID list will return a paginated list of all business partners. + +
Query Parameters
Request Body array
  • string
+ +The requested page of business partners + +
Schema
    content object[]
    + +Collection of results in the page + +
    identifiers object[]
    + +The list of identifiers of the business partner. Sorted and duplicates removed by the service. + +
    states object[]
    + +The list of (temporary) states of the business partner. Sorted and duplicates removed by the service. + +
    classifications object[]
    + +The list of classifications of the business partner, such as a specific industry. Sorted and duplicates removed by the service. + +
    postalAddress object
    + +Postal address of a business partner + +
    physicalPostalAddress object
    + +A physical postal address describes the physical location of an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    street object
    + +The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway + +
    alternativePostalAddress object
    + +An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
+ +On malformed pagination request + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-input-changelog.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-input-changelog.api.mdx new file mode 100644 index 00000000000..0d6ce1de734 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-input-changelog.api.mdx @@ -0,0 +1,46 @@ +--- +id: get-input-changelog +title: "Returns changelog entries for changes to the business partner input stage" +description: "Returns changelog entries as of a specified timestamp from the input stage, optionally filtered by timestamp, an array of external IDs and a business partner type." +sidebar_label: "Returns changelog entries for changes to the business partner input stage" +hide_title: true +hide_table_of_contents: true +api: {"tags":["changelog-controller"],"description":"Returns changelog entries as of a specified timestamp from the input stage, optionally filtered by timestamp, an array of external IDs and a business partner type.","operationId":"getInputChangelog","parameters":[{"name":"page","in":"query","description":"Number of page to get results from","required":false,"schema":{"minimum":0,"type":"string","default":"0"}},{"name":"size","in":"query","description":"Size of each page","required":false,"schema":{"maximum":100,"minimum":0,"type":"string","default":"10"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"timestampAfter":{"type":"string","description":"Only changelog entries created after this time. Ignored if empty.","format":"date-time","example":"2023-03-20T10:23:28.194Z"},"externalIds":{"uniqueItems":true,"type":"array","description":"Only for business partners with the given array of external IDs. Ignored if empty.","items":{"type":"string"}},"businessPartnerTypes":{"uniqueItems":true,"type":"array","description":"Only for business partners with the given array of business partner types. Ignored if empty.","items":{"type":"string","enum":["LEGAL_ENTITY","SITE","ADDRESS","GENERIC"]}}}}}},"required":true},"responses":{"200":{"description":"The changelog entries for the specified parameters","content":{"application/json":{"schema":{"type":"object","properties":{"totalElements":{"type":"integer","description":"Total number of all results in all pages","format":"int64"},"totalPages":{"type":"integer","description":"Total number pages","format":"int32"},"page":{"type":"integer","description":"Current page number","format":"int32"},"contentSize":{"type":"integer","description":"Number of results in the page","format":"int32"},"content":{"type":"array","description":"Collection of results in the page","items":{"type":"object","properties":{"externalId":{"type":"string","description":"The external identifier of the business partner for which the changelog entry was created."},"businessPartnerType":{"type":"string","description":"One of the types of business partners for which the changelog entry was created: legal entity, site, address.","enum":["LEGAL_ENTITY","SITE","ADDRESS","GENERIC"]},"timestamp":{"type":"string","description":"The date and time when the changelog entry was created.","format":"date-time"},"changelogType":{"type":"string","description":"One of the actions for which the changelog entry was created: create, update.","enum":["CREATE","UPDATE"]}},"description":"An entry of the changelog, which is created each time a business partner is modified and contains data about the change. The actual new state of the business partner is not included."}},"invalidEntries":{"type":"integer","description":"Number of entries in the page that have been omitted due to being invalid (error)","format":"int32"},"errors":{"type":"array","description":"Infos about the entries with errors","items":{"title":"ErrorInfo","type":"object","properties":{"errorCode":{"type":"string","description":"Error code identifying the error","enum":["ExternalIdNotFound"]},"message":{"type":"string","description":"Error message that explains the error"},"entityKey":{"type":"string","description":"Key (externalId) of the entity that failed"}},"description":"Holds information about failures"}}},"description":"Paginated collection of results"}}}},"400":{"description":"On malformed pagination request"}},"method":"post","path":"/api/catena/input/changelog/search","servers":[{"url":"http://localhost:8081","description":"Generated server url"}],"jsonRequestBodyExample":{"timestampAfter":"2023-03-20T10:23:28.194Z","externalIds":["string"],"businessPartnerTypes":["LEGAL_ENTITY"]},"info":{"title":"Business Partner Data Management Gate","description":"A gate for a member to share business partner data with CatenaX","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Returns changelog entries for changes to the business partner input stage","description":{"content":"Returns changelog entries as of a specified timestamp from the input stage, optionally filtered by timestamp, an array of external IDs and a business partner type.","type":"text/plain"},"url":{"path":["api","catena","input","changelog","search"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"description":{"content":"Number of page to get results from","type":"text/plain"},"key":"page","value":""},{"disabled":false,"description":{"content":"Size of each page","type":"text/plain"},"key":"size","value":""}],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Gate Api/business-partner-data-management-gate +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Returns changelog entries for changes to the business partner input stage + + + +Returns changelog entries as of a specified timestamp from the input stage, optionally filtered by timestamp, an array of external IDs and a business partner type. + +
Query Parameters
Request Body required
+ +The changelog entries for the specified parameters + +
Schema
    content object[]
    + +Collection of results in the page + +
    errors object[]
    + +Infos about the entries with errors + +
+ +On malformed pagination request + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-legal-entities-by-external-ids.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-legal-entities-by-external-ids.api.mdx new file mode 100644 index 00000000000..e9e400cd237 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-legal-entities-by-external-ids.api.mdx @@ -0,0 +1,86 @@ +--- +id: get-legal-entities-by-external-ids +title: "Returns legal entities by an array of external IDs from the input stage" +description: "Returns page of legal entities from the input stage. Can optionally be filtered by external IDs." +sidebar_label: "Returns legal entities by an array of external IDs from the input stage" +hide_title: true +hide_table_of_contents: true +api: {"tags":["legal-entity-controller"],"description":"Returns page of legal entities from the input stage. Can optionally be filtered by external IDs.","operationId":"getLegalEntitiesByExternalIds","parameters":[{"name":"page","in":"query","description":"Number of page to get results from","required":false,"schema":{"minimum":0,"type":"string","default":"0"}},{"name":"size","in":"query","description":"Size of each page","required":false,"schema":{"maximum":100,"minimum":0,"type":"string","default":"10"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}},"required":true},"responses":{"200":{"description":"The requested page of legal-entities","content":{"application/json":{"schema":{"type":"object","properties":{"totalElements":{"type":"integer","description":"Total number of all results in all pages","format":"int64"},"totalPages":{"type":"integer","description":"Total number pages","format":"int32"},"page":{"type":"integer","description":"Current page number","format":"int32"},"contentSize":{"type":"integer","description":"Number of results in the page","format":"int32"},"content":{"type":"array","description":"Collection of results in the page","items":{"required":["externalId"],"type":"object","properties":{"legalNameParts":{"type":"array","description":"The list of name parts of the legal entity to accommodate the different number of name fields in different systems.","items":{"type":"string"}},"identifiers":{"type":"array","description":"The list of identifiers of the legal entity.","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"DE123465789\"."},"type":{"type":"string","description":"The type of the identifier."},"issuingBody":{"type":"string","description":"The name of the official register, where the identifier is registered. For example, a Handelsregisternummer in Germany is only valid with its corresponding Handelsregister."}}}},"legalShortName":{"type":"string","description":"The abbreviated name of the legal entity."},"legalForm":{"type":"string","description":"The legal form of the legal entity."},"states":{"type":"array","description":"The list of (temporary) states of the legal entity.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the legal entity, such as from the German Handelsregister."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}},"description":"A legal entity state indicates if the legal entity is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the legal entity is still operating."}},"classifications":{"type":"array","description":"The list of classifications of the legal entity, such as a specific industry.","items":{"type":"object","properties":{"type":{"type":"string","description":"Type of classification.","enum":["NACE","NAF","NAICS","SIC"]},"code":{"type":"string","description":"The identifier of the class belonging to the classification."},"value":{"type":"string","description":"The name of the class belonging to the classification."}},"description":"A legal entity classification is an assignment of the legal entity to an industry. It does not necessarily have to be the only industry the company is active in (see large companies operating in different industries). Multiple assignments to several industries are possible per classification type."}},"roles":{"type":"array","description":"Roles this business partner takes in relation to the sharing member.","items":{"type":"string","enum":["SUPPLIER","CUSTOMER"]}},"legalAddress":{"type":"object","properties":{"nameParts":{"type":"array","description":"The list of name parts of the address to accommodate the different number of name fields in different systems. This is not according to official registers but according to the name the sharing member chooses.","items":{"type":"string"}},"states":{"type":"array","description":"The list of (temporary) states of the address.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the address."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}},"description":"An address state indicates if the address is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the business partner is still operating at that address."}},"identifiers":{"type":"array","description":"The list of identifiers of the address.","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"0847976000005\"."},"type":{"type":"string","description":"The type of the identifier."}},"description":"An address identifier (uniquely) identifies the address, such as the Global Location Number (GLN)."}},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"namePrefix":{"type":"string","description":"The street related information, which is usually printed before the official street name on an address label."},"additionalNamePrefix":{"type":"string","description":"The additional street related information, which is usually printed before the official street name on an address label."},"name":{"type":"string","description":"The name of the street."},"nameSuffix":{"type":"string","description":"The street related information, which is usually printed after the official street name on an address label."},"additionalNameSuffix":{"type":"string","description":"The additional street related information, which is usually printed after the official street name on an address label."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."}},"description":"The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway"},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"A physical postal address describes the physical location of an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else."},"roles":{"type":"array","description":"Roles this business partner takes in relation to the sharing member.","items":{"type":"string","enum":["SUPPLIER","CUSTOMER"]}},"externalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner."},"legalEntityExternalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner, representing the legal entity, that owns the address."},"siteExternalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner, representing the site, that the address belongs to."}},"description":"In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA."},"externalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner."}},"description":"In general, a legal entity is a juridical person that has legal rights and duties related to contracts, agreements, and obligations. The term especially applies to any kind of organization (such as an enterprise or company, university, association, etc.) established under the law applicable to a country.In Catena-X, a legal entity is a type of business partner representing a legally registered organization with its official registration information, such as legal name (including legal form, if registered), legal address and tax number.A legal entity has exactly one legal address, but it is possible to specify additional addresses that a legal entity owns. Thus, at least one address is assigned to a legal entity. A legal entity can own sites. Thus, many or no sites are assigned to a legal entity. A legal entity is uniquely identified by the BPNL."}}},"description":"Paginated collection of results"}}}},"400":{"description":"On malformed pagination request"}},"method":"post","path":"/api/catena/input/legal-entities/search","servers":[{"url":"http://localhost:8081","description":"Generated server url"}],"jsonRequestBodyExample":["string"],"info":{"title":"Business Partner Data Management Gate","description":"A gate for a member to share business partner data with CatenaX","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Returns legal entities by an array of external IDs from the input stage","description":{"content":"Returns page of legal entities from the input stage. Can optionally be filtered by external IDs.","type":"text/plain"},"url":{"path":["api","catena","input","legal-entities","search"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"description":{"content":"Number of page to get results from","type":"text/plain"},"key":"page","value":""},{"disabled":false,"description":{"content":"Size of each page","type":"text/plain"},"key":"size","value":""}],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Gate Api/business-partner-data-management-gate +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Returns legal entities by an array of external IDs from the input stage + + + +Returns page of legal entities from the input stage. Can optionally be filtered by external IDs. + +
Query Parameters
Request Body array required
  • string
+ +The requested page of legal-entities + +
Schema
    content object[]
    + +Collection of results in the page + +
    identifiers object[]
    + +The list of identifiers of the legal entity. + +
    states object[]
    + +The list of (temporary) states of the legal entity. + +
    classifications object[]
    + +The list of classifications of the legal entity, such as a specific industry. + +
    legalAddress object
    + +In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA. + +
    states object[]
    + +The list of (temporary) states of the address. + +
    identifiers object[]
    + +The list of identifiers of the address. + +
    physicalPostalAddress object
    + +A physical postal address describes the physical location of an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    street object
    + +The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway + +
    alternativePostalAddress object
    + +An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
+ +On malformed pagination request + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-legal-entities-output.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-legal-entities-output.api.mdx new file mode 100644 index 00000000000..da62e506574 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-legal-entities-output.api.mdx @@ -0,0 +1,86 @@ +--- +id: get-legal-entities-output +title: "Returns legal entities by an array of external IDs from the output stage" +description: "Get page of legal entities from the output stage. Can optionally be filtered by external IDs." +sidebar_label: "Returns legal entities by an array of external IDs from the output stage" +hide_title: true +hide_table_of_contents: true +api: {"tags":["legal-entity-controller"],"description":"Get page of legal entities from the output stage. Can optionally be filtered by external IDs.","operationId":"getLegalEntitiesOutput","parameters":[{"name":"page","in":"query","description":"Number of page to get results from","required":false,"schema":{"minimum":0,"type":"string","default":"0"}},{"name":"size","in":"query","description":"Size of each page","required":false,"schema":{"maximum":100,"minimum":0,"type":"string","default":"10"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}}},"responses":{"200":{"description":"The requested page of legal entities","content":{"application/json":{"schema":{"type":"object","properties":{"totalElements":{"type":"integer","description":"Total number of all results in all pages","format":"int64"},"totalPages":{"type":"integer","description":"Total number pages","format":"int32"},"page":{"type":"integer","description":"Current page number","format":"int32"},"contentSize":{"type":"integer","description":"Number of results in the page","format":"int32"},"content":{"type":"array","description":"Collection of results in the page","items":{"required":["externalId"],"type":"object","properties":{"legalNameParts":{"type":"array","description":"The list of name parts of the legal entity to accommodate the different number of name fields in different systems.","items":{"type":"string"}},"identifiers":{"type":"array","description":"The list of identifiers of the legal entity.","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"DE123465789\"."},"type":{"type":"string","description":"The type of the identifier."},"issuingBody":{"type":"string","description":"The name of the official register, where the identifier is registered. For example, a Handelsregisternummer in Germany is only valid with its corresponding Handelsregister."}}}},"legalShortName":{"type":"string","description":"The abbreviated name of the legal entity."},"legalForm":{"type":"string","description":"The legal form of the legal entity."},"states":{"type":"array","description":"The list of (temporary) states of the legal entity.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the legal entity, such as from the German Handelsregister."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}},"description":"A legal entity state indicates if the legal entity is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the legal entity is still operating."}},"classifications":{"type":"array","description":"The list of classifications of the legal entity, such as a specific industry.","items":{"type":"object","properties":{"type":{"type":"string","description":"Type of classification.","enum":["NACE","NAF","NAICS","SIC"]},"code":{"type":"string","description":"The identifier of the class belonging to the classification."},"value":{"type":"string","description":"The name of the class belonging to the classification."}},"description":"A legal entity classification is an assignment of the legal entity to an industry. It does not necessarily have to be the only industry the company is active in (see large companies operating in different industries). Multiple assignments to several industries are possible per classification type."}},"roles":{"type":"array","description":"Roles this business partner takes in relation to the sharing member.","items":{"type":"string","enum":["SUPPLIER","CUSTOMER"]}},"legalAddress":{"type":"object","properties":{"nameParts":{"type":"array","description":"The list of name parts of the address to accommodate the different number of name fields in different systems. This is not according to official registers but according to the name the sharing member chooses.","items":{"type":"string"}},"states":{"type":"array","description":"The list of (temporary) states of the address.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the address."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}},"description":"An address state indicates if the address is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the business partner is still operating at that address."}},"identifiers":{"type":"array","description":"The list of identifiers of the address.","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"0847976000005\"."},"type":{"type":"string","description":"The type of the identifier."}},"description":"An address identifier (uniquely) identifies the address, such as the Global Location Number (GLN)."}},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"namePrefix":{"type":"string","description":"The street related information, which is usually printed before the official street name on an address label."},"additionalNamePrefix":{"type":"string","description":"The additional street related information, which is usually printed before the official street name on an address label."},"name":{"type":"string","description":"The name of the street."},"nameSuffix":{"type":"string","description":"The street related information, which is usually printed after the official street name on an address label."},"additionalNameSuffix":{"type":"string","description":"The additional street related information, which is usually printed after the official street name on an address label."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."}},"description":"The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway"},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"A physical postal address describes the physical location of an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else."},"roles":{"type":"array","description":"Roles this business partner takes in relation to the sharing member.","items":{"type":"string","enum":["SUPPLIER","CUSTOMER"]}},"externalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner."},"legalEntityExternalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner, representing the legal entity, that owns the address."},"siteExternalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner, representing the site, that the address belongs to."},"bpna":{"type":"string","description":"A BPNA represents and uniquely identifies an address, which can be the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates). It is important to note that only the BPNL must be used to uniquely identify a legal entity. Even in the case that the BPNA represents the legal address of the legal entity, it shall not be used to uniquely identify the legal entity."}},"description":"In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA."},"externalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner."},"bpnl":{"type":"string","description":"A BPNL represents and uniquely identifies a legal entity, which is defined by its legal name (including legal form, if registered), legal address and tax number."}},"description":"In general, a legal entity is a juridical person that has legal rights and duties related to contracts, agreements, and obligations. The term especially applies to any kind of organization (such as an enterprise or company, university, association, etc.) established under the law applicable to a country.In Catena-X, a legal entity is a type of business partner representing a legally registered organization with its official registration information, such as legal name (including legal form, if registered), legal address and tax number.A legal entity has exactly one legal address, but it is possible to specify additional addresses that a legal entity owns. Thus, at least one address is assigned to a legal entity. A legal entity can own sites. Thus, many or no sites are assigned to a legal entity. A legal entity is uniquely identified by the BPNL."}}},"description":"Paginated collection of results"}}}},"400":{"description":"On malformed pagination request"}},"method":"post","path":"/api/catena/output/legal-entities/search","servers":[{"url":"http://localhost:8081","description":"Generated server url"}],"jsonRequestBodyExample":["string"],"info":{"title":"Business Partner Data Management Gate","description":"A gate for a member to share business partner data with CatenaX","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Returns legal entities by an array of external IDs from the output stage","description":{"content":"Get page of legal entities from the output stage. Can optionally be filtered by external IDs.","type":"text/plain"},"url":{"path":["api","catena","output","legal-entities","search"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"description":{"content":"Number of page to get results from","type":"text/plain"},"key":"page","value":""},{"disabled":false,"description":{"content":"Size of each page","type":"text/plain"},"key":"size","value":""}],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Gate Api/business-partner-data-management-gate +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Returns legal entities by an array of external IDs from the output stage + + + +Get page of legal entities from the output stage. Can optionally be filtered by external IDs. + +
Query Parameters
Request Body array
  • string
+ +The requested page of legal entities + +
Schema
    content object[]
    + +Collection of results in the page + +
    identifiers object[]
    + +The list of identifiers of the legal entity. + +
    states object[]
    + +The list of (temporary) states of the legal entity. + +
    classifications object[]
    + +The list of classifications of the legal entity, such as a specific industry. + +
    legalAddress object
    + +In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA. + +
    states object[]
    + +The list of (temporary) states of the address. + +
    identifiers object[]
    + +The list of identifiers of the address. + +
    physicalPostalAddress object
    + +A physical postal address describes the physical location of an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    street object
    + +The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway + +
    alternativePostalAddress object
    + +An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
+ +On malformed pagination request + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-legal-entities.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-legal-entities.api.mdx new file mode 100644 index 00000000000..af32ac190f1 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-legal-entities.api.mdx @@ -0,0 +1,86 @@ +--- +id: get-legal-entities +title: "Returns legal entities from the input stage" +description: "Returns page of legal entities from the input stage." +sidebar_label: "Returns legal entities from the input stage" +hide_title: true +hide_table_of_contents: true +api: {"tags":["legal-entity-controller"],"description":"Returns page of legal entities from the input stage.","operationId":"getLegalEntities","parameters":[{"name":"page","in":"query","description":"Number of page to get results from","required":false,"schema":{"minimum":0,"type":"string","default":"0"}},{"name":"size","in":"query","description":"Size of each page","required":false,"schema":{"maximum":100,"minimum":0,"type":"string","default":"10"}}],"responses":{"200":{"description":"The requested page of legal entities","content":{"application/json":{"schema":{"type":"object","properties":{"totalElements":{"type":"integer","description":"Total number of all results in all pages","format":"int64"},"totalPages":{"type":"integer","description":"Total number pages","format":"int32"},"page":{"type":"integer","description":"Current page number","format":"int32"},"contentSize":{"type":"integer","description":"Number of results in the page","format":"int32"},"content":{"type":"array","description":"Collection of results in the page","items":{"required":["externalId"],"type":"object","properties":{"legalNameParts":{"type":"array","description":"The list of name parts of the legal entity to accommodate the different number of name fields in different systems.","items":{"type":"string"}},"identifiers":{"type":"array","description":"The list of identifiers of the legal entity.","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"DE123465789\"."},"type":{"type":"string","description":"The type of the identifier."},"issuingBody":{"type":"string","description":"The name of the official register, where the identifier is registered. For example, a Handelsregisternummer in Germany is only valid with its corresponding Handelsregister."}}}},"legalShortName":{"type":"string","description":"The abbreviated name of the legal entity."},"legalForm":{"type":"string","description":"The legal form of the legal entity."},"states":{"type":"array","description":"The list of (temporary) states of the legal entity.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the legal entity, such as from the German Handelsregister."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}},"description":"A legal entity state indicates if the legal entity is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the legal entity is still operating."}},"classifications":{"type":"array","description":"The list of classifications of the legal entity, such as a specific industry.","items":{"type":"object","properties":{"type":{"type":"string","description":"Type of classification.","enum":["NACE","NAF","NAICS","SIC"]},"code":{"type":"string","description":"The identifier of the class belonging to the classification."},"value":{"type":"string","description":"The name of the class belonging to the classification."}},"description":"A legal entity classification is an assignment of the legal entity to an industry. It does not necessarily have to be the only industry the company is active in (see large companies operating in different industries). Multiple assignments to several industries are possible per classification type."}},"roles":{"type":"array","description":"Roles this business partner takes in relation to the sharing member.","items":{"type":"string","enum":["SUPPLIER","CUSTOMER"]}},"legalAddress":{"type":"object","properties":{"nameParts":{"type":"array","description":"The list of name parts of the address to accommodate the different number of name fields in different systems. This is not according to official registers but according to the name the sharing member chooses.","items":{"type":"string"}},"states":{"type":"array","description":"The list of (temporary) states of the address.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the address."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}},"description":"An address state indicates if the address is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the business partner is still operating at that address."}},"identifiers":{"type":"array","description":"The list of identifiers of the address.","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"0847976000005\"."},"type":{"type":"string","description":"The type of the identifier."}},"description":"An address identifier (uniquely) identifies the address, such as the Global Location Number (GLN)."}},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"namePrefix":{"type":"string","description":"The street related information, which is usually printed before the official street name on an address label."},"additionalNamePrefix":{"type":"string","description":"The additional street related information, which is usually printed before the official street name on an address label."},"name":{"type":"string","description":"The name of the street."},"nameSuffix":{"type":"string","description":"The street related information, which is usually printed after the official street name on an address label."},"additionalNameSuffix":{"type":"string","description":"The additional street related information, which is usually printed after the official street name on an address label."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."}},"description":"The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway"},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"A physical postal address describes the physical location of an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else."},"roles":{"type":"array","description":"Roles this business partner takes in relation to the sharing member.","items":{"type":"string","enum":["SUPPLIER","CUSTOMER"]}},"externalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner."},"legalEntityExternalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner, representing the legal entity, that owns the address."},"siteExternalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner, representing the site, that the address belongs to."}},"description":"In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA."},"externalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner."}},"description":"In general, a legal entity is a juridical person that has legal rights and duties related to contracts, agreements, and obligations. The term especially applies to any kind of organization (such as an enterprise or company, university, association, etc.) established under the law applicable to a country.In Catena-X, a legal entity is a type of business partner representing a legally registered organization with its official registration information, such as legal name (including legal form, if registered), legal address and tax number.A legal entity has exactly one legal address, but it is possible to specify additional addresses that a legal entity owns. Thus, at least one address is assigned to a legal entity. A legal entity can own sites. Thus, many or no sites are assigned to a legal entity. A legal entity is uniquely identified by the BPNL."}}},"description":"Paginated collection of results"}}}},"400":{"description":"On malformed pagination request"}},"method":"get","path":"/api/catena/input/legal-entities","servers":[{"url":"http://localhost:8081","description":"Generated server url"}],"info":{"title":"Business Partner Data Management Gate","description":"A gate for a member to share business partner data with CatenaX","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Returns legal entities from the input stage","description":{"content":"Returns page of legal entities from the input stage.","type":"text/plain"},"url":{"path":["api","catena","input","legal-entities"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"description":{"content":"Number of page to get results from","type":"text/plain"},"key":"page","value":""},{"disabled":false,"description":{"content":"Size of each page","type":"text/plain"},"key":"size","value":""}],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Gate Api/business-partner-data-management-gate +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Returns legal entities from the input stage + + + +Returns page of legal entities from the input stage. + +
Query Parameters
+ +The requested page of legal entities + +
Schema
    content object[]
    + +Collection of results in the page + +
    identifiers object[]
    + +The list of identifiers of the legal entity. + +
    states object[]
    + +The list of (temporary) states of the legal entity. + +
    classifications object[]
    + +The list of classifications of the legal entity, such as a specific industry. + +
    legalAddress object
    + +In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA. + +
    states object[]
    + +The list of (temporary) states of the address. + +
    identifiers object[]
    + +The list of identifiers of the address. + +
    physicalPostalAddress object
    + +A physical postal address describes the physical location of an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    street object
    + +The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway + +
    alternativePostalAddress object
    + +An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
+ +On malformed pagination request + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-legal-entity-by-external-id.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-legal-entity-by-external-id.api.mdx new file mode 100644 index 00000000000..c8fde2da76c --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-legal-entity-by-external-id.api.mdx @@ -0,0 +1,82 @@ +--- +id: get-legal-entity-by-external-id +title: "Returns legal entity by external ID from the input stage" +description: "Returns legal entity by external ID from the input stage." +sidebar_label: "Returns legal entity by external ID from the input stage" +hide_title: true +hide_table_of_contents: true +api: {"tags":["legal-entity-controller"],"description":"Returns legal entity by external ID from the input stage.","operationId":"getLegalEntityByExternalId","parameters":[{"name":"externalId","in":"path","description":"External ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Found legal entity with external ID","content":{"application/json":{"schema":{"required":["externalId"],"type":"object","properties":{"legalNameParts":{"type":"array","description":"The list of name parts of the legal entity to accommodate the different number of name fields in different systems.","items":{"type":"string"}},"identifiers":{"type":"array","description":"The list of identifiers of the legal entity.","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"DE123465789\"."},"type":{"type":"string","description":"The type of the identifier."},"issuingBody":{"type":"string","description":"The name of the official register, where the identifier is registered. For example, a Handelsregisternummer in Germany is only valid with its corresponding Handelsregister."}}}},"legalShortName":{"type":"string","description":"The abbreviated name of the legal entity."},"legalForm":{"type":"string","description":"The legal form of the legal entity."},"states":{"type":"array","description":"The list of (temporary) states of the legal entity.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the legal entity, such as from the German Handelsregister."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}},"description":"A legal entity state indicates if the legal entity is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the legal entity is still operating."}},"classifications":{"type":"array","description":"The list of classifications of the legal entity, such as a specific industry.","items":{"type":"object","properties":{"type":{"type":"string","description":"Type of classification.","enum":["NACE","NAF","NAICS","SIC"]},"code":{"type":"string","description":"The identifier of the class belonging to the classification."},"value":{"type":"string","description":"The name of the class belonging to the classification."}},"description":"A legal entity classification is an assignment of the legal entity to an industry. It does not necessarily have to be the only industry the company is active in (see large companies operating in different industries). Multiple assignments to several industries are possible per classification type."}},"roles":{"type":"array","description":"Roles this business partner takes in relation to the sharing member.","items":{"type":"string","enum":["SUPPLIER","CUSTOMER"]}},"legalAddress":{"type":"object","properties":{"nameParts":{"type":"array","description":"The list of name parts of the address to accommodate the different number of name fields in different systems. This is not according to official registers but according to the name the sharing member chooses.","items":{"type":"string"}},"states":{"type":"array","description":"The list of (temporary) states of the address.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the address."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}},"description":"An address state indicates if the address is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the business partner is still operating at that address."}},"identifiers":{"type":"array","description":"The list of identifiers of the address.","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"0847976000005\"."},"type":{"type":"string","description":"The type of the identifier."}},"description":"An address identifier (uniquely) identifies the address, such as the Global Location Number (GLN)."}},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"namePrefix":{"type":"string","description":"The street related information, which is usually printed before the official street name on an address label."},"additionalNamePrefix":{"type":"string","description":"The additional street related information, which is usually printed before the official street name on an address label."},"name":{"type":"string","description":"The name of the street."},"nameSuffix":{"type":"string","description":"The street related information, which is usually printed after the official street name on an address label."},"additionalNameSuffix":{"type":"string","description":"The additional street related information, which is usually printed after the official street name on an address label."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."}},"description":"The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway"},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"A physical postal address describes the physical location of an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else."},"roles":{"type":"array","description":"Roles this business partner takes in relation to the sharing member.","items":{"type":"string","enum":["SUPPLIER","CUSTOMER"]}},"externalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner."},"legalEntityExternalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner, representing the legal entity, that owns the address."},"siteExternalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner, representing the site, that the address belongs to."}},"description":"In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA."},"externalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner."}},"description":"In general, a legal entity is a juridical person that has legal rights and duties related to contracts, agreements, and obligations. The term especially applies to any kind of organization (such as an enterprise or company, university, association, etc.) established under the law applicable to a country.In Catena-X, a legal entity is a type of business partner representing a legally registered organization with its official registration information, such as legal name (including legal form, if registered), legal address and tax number.A legal entity has exactly one legal address, but it is possible to specify additional addresses that a legal entity owns. Thus, at least one address is assigned to a legal entity. A legal entity can own sites. Thus, many or no sites are assigned to a legal entity. A legal entity is uniquely identified by the BPNL."}}}},"404":{"description":"No legal entity found under specified external ID"}},"method":"get","path":"/api/catena/input/legal-entities/{externalId}","servers":[{"url":"http://localhost:8081","description":"Generated server url"}],"info":{"title":"Business Partner Data Management Gate","description":"A gate for a member to share business partner data with CatenaX","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Returns legal entity by external ID from the input stage","description":{"content":"Returns legal entity by external ID from the input stage.","type":"text/plain"},"url":{"path":["api","catena","input","legal-entities",":externalId"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) External ID","type":"text/plain"},"type":"any","value":"","key":"externalId"}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Gate Api/business-partner-data-management-gate +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Returns legal entity by external ID from the input stage + + + +Returns legal entity by external ID from the input stage. + +
Path Parameters
+ +Found legal entity with external ID + +
Schema
    identifiers object[]
    + +The list of identifiers of the legal entity. + +
    states object[]
    + +The list of (temporary) states of the legal entity. + +
    classifications object[]
    + +The list of classifications of the legal entity, such as a specific industry. + +
    legalAddress object
    + +In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA. + +
    states object[]
    + +The list of (temporary) states of the address. + +
    identifiers object[]
    + +The list of identifiers of the address. + +
    physicalPostalAddress object
    + +A physical postal address describes the physical location of an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    street object
    + +The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway + +
    alternativePostalAddress object
    + +An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
+ +No legal entity found under specified external ID + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-mermaid-gate-persistence.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-mermaid-gate-persistence.api.mdx new file mode 100644 index 00000000000..0bfd3016829 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-mermaid-gate-persistence.api.mdx @@ -0,0 +1,34 @@ +--- +id: get-mermaid-gate-persistence +title: "Get mermaid class diagramm for the gate JPA model" +description: "Get mermaid class diagramm for the gate JPA model" +sidebar_label: "Get mermaid class diagramm for the gate JPA model" +hide_title: true +hide_table_of_contents: true +api: {"tags":["gate-documentation-controller"],"operationId":"getMermaidGatePersistence","responses":{"200":{"description":"Entity model as mermaid diagramm","content":{"text/plain":{"schema":{"type":"string"}}}}},"description":"Get mermaid class diagramm for the gate JPA model","method":"get","path":"/api/catena/mermaid/","servers":[{"url":"http://localhost:8081","description":"Generated server url"}],"info":{"title":"Business Partner Data Management Gate","description":"A gate for a member to share business partner data with CatenaX","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Get mermaid class diagramm for the gate JPA model","description":{"type":"text/plain"},"url":{"path":["api","catena","mermaid",""],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"text/plain"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Gate Api/business-partner-data-management-gate +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Get mermaid class diagramm for the gate JPA model + + + +Get mermaid class diagramm for the gate JPA model + +
+ +Entity model as mermaid diagramm + +
Schema
  • string
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-output-changelog.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-output-changelog.api.mdx new file mode 100644 index 00000000000..0a1ff1d16de --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-output-changelog.api.mdx @@ -0,0 +1,46 @@ +--- +id: get-output-changelog +title: "Returns changelog entries for changes to the business partner output stage" +description: "Returns changelog entries as of a specified timestamp from the output stage, optionally filtered by timestamp, an array of external IDs and a business partner type." +sidebar_label: "Returns changelog entries for changes to the business partner output stage" +hide_title: true +hide_table_of_contents: true +api: {"tags":["changelog-controller"],"description":"Returns changelog entries as of a specified timestamp from the output stage, optionally filtered by timestamp, an array of external IDs and a business partner type.","operationId":"getOutputChangelog","parameters":[{"name":"page","in":"query","description":"Number of page to get results from","required":false,"schema":{"minimum":0,"type":"string","default":"0"}},{"name":"size","in":"query","description":"Size of each page","required":false,"schema":{"maximum":100,"minimum":0,"type":"string","default":"10"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"timestampAfter":{"type":"string","description":"Only changelog entries created after this time. Ignored if empty.","format":"date-time","example":"2023-03-20T10:23:28.194Z"},"externalIds":{"uniqueItems":true,"type":"array","description":"Only for business partners with the given array of external IDs. Ignored if empty.","items":{"type":"string"}},"businessPartnerTypes":{"uniqueItems":true,"type":"array","description":"Only for business partners with the given array of business partner types. Ignored if empty.","items":{"type":"string","enum":["LEGAL_ENTITY","SITE","ADDRESS","GENERIC"]}}}}}},"required":true},"responses":{"200":{"description":"The changelog entries for the specified parameters","content":{"application/json":{"schema":{"type":"object","properties":{"totalElements":{"type":"integer","description":"Total number of all results in all pages","format":"int64"},"totalPages":{"type":"integer","description":"Total number pages","format":"int32"},"page":{"type":"integer","description":"Current page number","format":"int32"},"contentSize":{"type":"integer","description":"Number of results in the page","format":"int32"},"content":{"type":"array","description":"Collection of results in the page","items":{"type":"object","properties":{"externalId":{"type":"string","description":"The external identifier of the business partner for which the changelog entry was created."},"businessPartnerType":{"type":"string","description":"One of the types of business partners for which the changelog entry was created: legal entity, site, address.","enum":["LEGAL_ENTITY","SITE","ADDRESS","GENERIC"]},"timestamp":{"type":"string","description":"The date and time when the changelog entry was created.","format":"date-time"},"changelogType":{"type":"string","description":"One of the actions for which the changelog entry was created: create, update.","enum":["CREATE","UPDATE"]}},"description":"An entry of the changelog, which is created each time a business partner is modified and contains data about the change. The actual new state of the business partner is not included."}},"invalidEntries":{"type":"integer","description":"Number of entries in the page that have been omitted due to being invalid (error)","format":"int32"},"errors":{"type":"array","description":"Infos about the entries with errors","items":{"title":"ErrorInfo","type":"object","properties":{"errorCode":{"type":"string","description":"Error code identifying the error","enum":["ExternalIdNotFound"]},"message":{"type":"string","description":"Error message that explains the error"},"entityKey":{"type":"string","description":"Key (externalId) of the entity that failed"}},"description":"Holds information about failures"}}},"description":"Paginated collection of results"}}}},"400":{"description":"On malformed pagination request"}},"method":"post","path":"/api/catena/output/changelog/search","servers":[{"url":"http://localhost:8081","description":"Generated server url"}],"jsonRequestBodyExample":{"timestampAfter":"2023-03-20T10:23:28.194Z","externalIds":["string"],"businessPartnerTypes":["LEGAL_ENTITY"]},"info":{"title":"Business Partner Data Management Gate","description":"A gate for a member to share business partner data with CatenaX","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Returns changelog entries for changes to the business partner output stage","description":{"content":"Returns changelog entries as of a specified timestamp from the output stage, optionally filtered by timestamp, an array of external IDs and a business partner type.","type":"text/plain"},"url":{"path":["api","catena","output","changelog","search"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"description":{"content":"Number of page to get results from","type":"text/plain"},"key":"page","value":""},{"disabled":false,"description":{"content":"Size of each page","type":"text/plain"},"key":"size","value":""}],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Gate Api/business-partner-data-management-gate +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Returns changelog entries for changes to the business partner output stage + + + +Returns changelog entries as of a specified timestamp from the output stage, optionally filtered by timestamp, an array of external IDs and a business partner type. + +
Query Parameters
Request Body required
+ +The changelog entries for the specified parameters + +
Schema
    content object[]
    + +Collection of results in the page + +
    errors object[]
    + +Infos about the entries with errors + +
+ +On malformed pagination request + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-sharing-states.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-sharing-states.api.mdx new file mode 100644 index 00000000000..ed95dcbd239 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-sharing-states.api.mdx @@ -0,0 +1,38 @@ +--- +id: get-sharing-states +title: "Returns sharing states of business partners, optionally filtered by a business partner type and an array of external IDs" +description: "Returns sharing states of business partners, optionally filtered by a business partner type and an array of external IDs" +sidebar_label: "Returns sharing states of business partners, optionally filtered by a business partner type and an array of external IDs" +hide_title: true +hide_table_of_contents: true +api: {"tags":["sharing-state-controller"],"operationId":"getSharingStates","parameters":[{"name":"page","in":"query","description":"Number of page to get results from","required":false,"schema":{"minimum":0,"type":"string","default":"0"}},{"name":"size","in":"query","description":"Size of each page","required":false,"schema":{"maximum":100,"minimum":0,"type":"string","default":"10"}},{"name":"businessPartnerType","in":"query","description":"Business partner type","required":false,"schema":{"type":"string","enum":["LEGAL_ENTITY","SITE","ADDRESS","GENERIC"]}},{"name":"externalIds","in":"query","description":"External IDs","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"Page of sharing states","content":{"application/json":{"schema":{"type":"object","properties":{"totalElements":{"type":"integer","description":"Total number of all results in all pages","format":"int64"},"totalPages":{"type":"integer","description":"Total number pages","format":"int32"},"page":{"type":"integer","description":"Current page number","format":"int32"},"contentSize":{"type":"integer","description":"Number of results in the page","format":"int32"},"content":{"type":"array","description":"Collection of results in the page","items":{"type":"object","properties":{"businessPartnerType":{"type":"string","description":"One of the types of business partners for which the sharing state entry was created.","enum":["LEGAL_ENTITY","SITE","ADDRESS","GENERIC"]},"externalId":{"type":"string","description":"The external identifier of the business partner for which the sharing state entry was created."},"sharingStateType":{"type":"string","description":"One of the sharing state types of the current sharing state.","enum":["Pending","Success","Error","Initial"]},"sharingErrorCode":{"type":"string","description":"One of the sharing error codes in case the current sharing state type is \"error\".","enum":["SharingProcessError","SharingTimeout","BpnNotInPool"]},"sharingErrorMessage":{"type":"string","description":"The error message in case the current sharing state type is \"error\"."},"bpn":{"type":"string","description":"The business partner number associated to the combination of external identifier and business partner type in case the sharing state type is “success”. Can be either a BPNL, BPNS or BPNA."},"sharingProcessStarted":{"type":"string","description":"The date and time when the sharing process was started.","format":"date-time"},"taskId":{"type":"string","description":"The orchestrator task identifier that was created"}},"description":"A sharing state entry shows the progress in the sharing process and is updated each time the progress for a business partner changes. The business partner is identified by a combination of external ID and business partner type."}}},"description":"Paginated collection of results"}}}}},"description":"Returns sharing states of business partners, optionally filtered by a business partner type and an array of external IDs","method":"get","path":"/api/catena/sharing-state","servers":[{"url":"http://localhost:8081","description":"Generated server url"}],"info":{"title":"Business Partner Data Management Gate","description":"A gate for a member to share business partner data with CatenaX","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Returns sharing states of business partners, optionally filtered by a business partner type and an array of external IDs","description":{"type":"text/plain"},"url":{"path":["api","catena","sharing-state"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"description":{"content":"Number of page to get results from","type":"text/plain"},"key":"page","value":""},{"disabled":false,"description":{"content":"Size of each page","type":"text/plain"},"key":"size","value":""},{"disabled":false,"description":{"content":"Business partner type","type":"text/plain"},"key":"businessPartnerType","value":""},{"disabled":false,"description":{"content":"External IDs","type":"text/plain"},"key":"externalIds","value":""}],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Gate Api/business-partner-data-management-gate +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Returns sharing states of business partners, optionally filtered by a business partner type and an array of external IDs + + + +Returns sharing states of business partners, optionally filtered by a business partner type and an array of external IDs + +
Query Parameters
+ +Page of sharing states + +
Schema
    content object[]
    + +Collection of results in the page + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-site-by-external-id.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-site-by-external-id.api.mdx new file mode 100644 index 00000000000..22b3b6623ca --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-site-by-external-id.api.mdx @@ -0,0 +1,74 @@ +--- +id: get-site-by-external-id +title: "Returns site by external ID from the input stage" +description: "Returns site by external ID from the input stage." +sidebar_label: "Returns site by external ID from the input stage" +hide_title: true +hide_table_of_contents: true +api: {"tags":["site-controller"],"description":"Returns site by external ID from the input stage.","operationId":"getSiteByExternalId","parameters":[{"name":"externalId","in":"path","description":"External ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Found site with external ID","content":{"application/json":{"schema":{"type":"object","properties":{"nameParts":{"type":"array","description":"The list of name parts of the site to accommodate the different number of name fields in different systems. This is not according to official registers but according to the name the owner chooses.","items":{"type":"string"}},"states":{"type":"array","description":"The list of the (temporary) states of the site.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the site."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}},"description":"A site state indicates if the site is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the site is still operating."}},"roles":{"type":"array","description":"Roles this business partner takes in relation to the sharing member.","items":{"type":"string","enum":["SUPPLIER","CUSTOMER"]}},"mainAddress":{"type":"object","properties":{"nameParts":{"type":"array","description":"The list of name parts of the address to accommodate the different number of name fields in different systems. This is not according to official registers but according to the name the sharing member chooses.","items":{"type":"string"}},"states":{"type":"array","description":"The list of (temporary) states of the address.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the address."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}},"description":"An address state indicates if the address is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the business partner is still operating at that address."}},"identifiers":{"type":"array","description":"The list of identifiers of the address.","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"0847976000005\"."},"type":{"type":"string","description":"The type of the identifier."}},"description":"An address identifier (uniquely) identifies the address, such as the Global Location Number (GLN)."}},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"namePrefix":{"type":"string","description":"The street related information, which is usually printed before the official street name on an address label."},"additionalNamePrefix":{"type":"string","description":"The additional street related information, which is usually printed before the official street name on an address label."},"name":{"type":"string","description":"The name of the street."},"nameSuffix":{"type":"string","description":"The street related information, which is usually printed after the official street name on an address label."},"additionalNameSuffix":{"type":"string","description":"The additional street related information, which is usually printed after the official street name on an address label."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."}},"description":"The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway"},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"A physical postal address describes the physical location of an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else."},"roles":{"type":"array","description":"Roles this business partner takes in relation to the sharing member.","items":{"type":"string","enum":["SUPPLIER","CUSTOMER"]}},"externalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner."},"legalEntityExternalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner, representing the legal entity, that owns the address."},"siteExternalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner, representing the site, that the address belongs to."}},"description":"In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA."},"externalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner."},"legalEntityExternalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner owning the site."}},"description":"In general, a site is a delimited geographical area in which an organization (such as an enterprise or company, university, association, etc.) conducts business. In Catena-X, a site is a type of business partner representing a physical location or area owned by a legal entity, where a production plant, a warehouse, or an office building is located. A site is owned by a legal entity. Thus, exactly one legal entity is assigned to a site. A site has exactly one main address, but it is possible to specify additional addresses (such as different gates), that belong to a site. Thus, at least one address is assigned to a site. A site can only be uploaded and modified by the owner (the legal entity), because only the owner knows which addresses belong to which site. A site is uniquely identified by the BPNS."}}}},"404":{"description":"No site found under specified external ID"}},"method":"get","path":"/api/catena/input/sites/{externalId}","servers":[{"url":"http://localhost:8081","description":"Generated server url"}],"info":{"title":"Business Partner Data Management Gate","description":"A gate for a member to share business partner data with CatenaX","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Returns site by external ID from the input stage","description":{"content":"Returns site by external ID from the input stage.","type":"text/plain"},"url":{"path":["api","catena","input","sites",":externalId"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) External ID","type":"text/plain"},"type":"any","value":"","key":"externalId"}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Gate Api/business-partner-data-management-gate +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Returns site by external ID from the input stage + + + +Returns site by external ID from the input stage. + +
Path Parameters
+ +Found site with external ID + +
Schema
    states object[]
    + +The list of the (temporary) states of the site. + +
    mainAddress object
    + +In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA. + +
    states object[]
    + +The list of (temporary) states of the address. + +
    identifiers object[]
    + +The list of identifiers of the address. + +
    physicalPostalAddress object
    + +A physical postal address describes the physical location of an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    street object
    + +The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway + +
    alternativePostalAddress object
    + +An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
+ +No site found under specified external ID + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-sites-by-external-ids.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-sites-by-external-ids.api.mdx new file mode 100644 index 00000000000..db482a7a40b --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-sites-by-external-ids.api.mdx @@ -0,0 +1,78 @@ +--- +id: get-sites-by-external-ids +title: "Returns sites by an array of external IDs from the input stage" +description: "Returns page of sites from the input stage. Can optionally be filtered by external IDs." +sidebar_label: "Returns sites by an array of external IDs from the input stage" +hide_title: true +hide_table_of_contents: true +api: {"tags":["site-controller"],"description":"Returns page of sites from the input stage. Can optionally be filtered by external IDs.","operationId":"getSitesByExternalIds","parameters":[{"name":"page","in":"query","description":"Number of page to get results from","required":false,"schema":{"minimum":0,"type":"string","default":"0"}},{"name":"size","in":"query","description":"Size of each page","required":false,"schema":{"maximum":100,"minimum":0,"type":"string","default":"10"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}},"required":true},"responses":{"200":{"description":"The requested page of sites","content":{"application/json":{"schema":{"type":"object","properties":{"totalElements":{"type":"integer","description":"Total number of all results in all pages","format":"int64"},"totalPages":{"type":"integer","description":"Total number pages","format":"int32"},"page":{"type":"integer","description":"Current page number","format":"int32"},"contentSize":{"type":"integer","description":"Number of results in the page","format":"int32"},"content":{"type":"array","description":"Collection of results in the page","items":{"type":"object","properties":{"nameParts":{"type":"array","description":"The list of name parts of the site to accommodate the different number of name fields in different systems. This is not according to official registers but according to the name the owner chooses.","items":{"type":"string"}},"states":{"type":"array","description":"The list of the (temporary) states of the site.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the site."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}},"description":"A site state indicates if the site is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the site is still operating."}},"roles":{"type":"array","description":"Roles this business partner takes in relation to the sharing member.","items":{"type":"string","enum":["SUPPLIER","CUSTOMER"]}},"mainAddress":{"type":"object","properties":{"nameParts":{"type":"array","description":"The list of name parts of the address to accommodate the different number of name fields in different systems. This is not according to official registers but according to the name the sharing member chooses.","items":{"type":"string"}},"states":{"type":"array","description":"The list of (temporary) states of the address.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the address."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}},"description":"An address state indicates if the address is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the business partner is still operating at that address."}},"identifiers":{"type":"array","description":"The list of identifiers of the address.","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"0847976000005\"."},"type":{"type":"string","description":"The type of the identifier."}},"description":"An address identifier (uniquely) identifies the address, such as the Global Location Number (GLN)."}},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"namePrefix":{"type":"string","description":"The street related information, which is usually printed before the official street name on an address label."},"additionalNamePrefix":{"type":"string","description":"The additional street related information, which is usually printed before the official street name on an address label."},"name":{"type":"string","description":"The name of the street."},"nameSuffix":{"type":"string","description":"The street related information, which is usually printed after the official street name on an address label."},"additionalNameSuffix":{"type":"string","description":"The additional street related information, which is usually printed after the official street name on an address label."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."}},"description":"The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway"},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"A physical postal address describes the physical location of an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else."},"roles":{"type":"array","description":"Roles this business partner takes in relation to the sharing member.","items":{"type":"string","enum":["SUPPLIER","CUSTOMER"]}},"externalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner."},"legalEntityExternalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner, representing the legal entity, that owns the address."},"siteExternalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner, representing the site, that the address belongs to."}},"description":"In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA."},"externalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner."},"legalEntityExternalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner owning the site."}},"description":"In general, a site is a delimited geographical area in which an organization (such as an enterprise or company, university, association, etc.) conducts business. In Catena-X, a site is a type of business partner representing a physical location or area owned by a legal entity, where a production plant, a warehouse, or an office building is located. A site is owned by a legal entity. Thus, exactly one legal entity is assigned to a site. A site has exactly one main address, but it is possible to specify additional addresses (such as different gates), that belong to a site. Thus, at least one address is assigned to a site. A site can only be uploaded and modified by the owner (the legal entity), because only the owner knows which addresses belong to which site. A site is uniquely identified by the BPNS."}}},"description":"Paginated collection of results"}}}},"400":{"description":"On malformed pagination request"}},"method":"post","path":"/api/catena/input/sites/search","servers":[{"url":"http://localhost:8081","description":"Generated server url"}],"jsonRequestBodyExample":["string"],"info":{"title":"Business Partner Data Management Gate","description":"A gate for a member to share business partner data with CatenaX","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Returns sites by an array of external IDs from the input stage","description":{"content":"Returns page of sites from the input stage. Can optionally be filtered by external IDs.","type":"text/plain"},"url":{"path":["api","catena","input","sites","search"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"description":{"content":"Number of page to get results from","type":"text/plain"},"key":"page","value":""},{"disabled":false,"description":{"content":"Size of each page","type":"text/plain"},"key":"size","value":""}],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Gate Api/business-partner-data-management-gate +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Returns sites by an array of external IDs from the input stage + + + +Returns page of sites from the input stage. Can optionally be filtered by external IDs. + +
Query Parameters
Request Body array required
  • string
+ +The requested page of sites + +
Schema
    content object[]
    + +Collection of results in the page + +
    states object[]
    + +The list of the (temporary) states of the site. + +
    mainAddress object
    + +In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA. + +
    states object[]
    + +The list of (temporary) states of the address. + +
    identifiers object[]
    + +The list of identifiers of the address. + +
    physicalPostalAddress object
    + +A physical postal address describes the physical location of an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    street object
    + +The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway + +
    alternativePostalAddress object
    + +An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
+ +On malformed pagination request + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-sites-output.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-sites-output.api.mdx new file mode 100644 index 00000000000..34ce1c8f0c6 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-sites-output.api.mdx @@ -0,0 +1,78 @@ +--- +id: get-sites-output +title: "Returns sites by an array of external IDs from the output stage" +description: "Get page of sites from the output stage. Can optionally be filtered by external IDs." +sidebar_label: "Returns sites by an array of external IDs from the output stage" +hide_title: true +hide_table_of_contents: true +api: {"tags":["site-controller"],"description":"Get page of sites from the output stage. Can optionally be filtered by external IDs.","operationId":"getSitesOutput","parameters":[{"name":"page","in":"query","description":"Number of page to get results from","required":false,"schema":{"minimum":0,"type":"string","default":"0"}},{"name":"size","in":"query","description":"Size of each page","required":false,"schema":{"maximum":100,"minimum":0,"type":"string","default":"10"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}}},"responses":{"200":{"description":"The requested page of sites","content":{"application/json":{"schema":{"type":"object","properties":{"totalElements":{"type":"integer","description":"Total number of all results in all pages","format":"int64"},"totalPages":{"type":"integer","description":"Total number pages","format":"int32"},"page":{"type":"integer","description":"Current page number","format":"int32"},"contentSize":{"type":"integer","description":"Number of results in the page","format":"int32"},"content":{"type":"array","description":"Collection of results in the page","items":{"type":"object","properties":{"nameParts":{"type":"array","description":"The list of name parts of the site to accommodate the different number of name fields in different systems. This is not according to official registers but according to the name the owner chooses.","items":{"type":"string"}},"states":{"type":"array","description":"The list of the (temporary) states of the site.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the site."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}},"description":"A site state indicates if the site is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the site is still operating."}},"roles":{"type":"array","description":"Roles this business partner takes in relation to the sharing member.","items":{"type":"string","enum":["SUPPLIER","CUSTOMER"]}},"mainAddress":{"type":"object","properties":{"nameParts":{"type":"array","description":"The list of name parts of the address to accommodate the different number of name fields in different systems. This is not according to official registers but according to the name the sharing member chooses.","items":{"type":"string"}},"states":{"type":"array","description":"The list of (temporary) states of the address.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the address."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}},"description":"An address state indicates if the address is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the business partner is still operating at that address."}},"identifiers":{"type":"array","description":"The list of identifiers of the address.","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"0847976000005\"."},"type":{"type":"string","description":"The type of the identifier."}},"description":"An address identifier (uniquely) identifies the address, such as the Global Location Number (GLN)."}},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"namePrefix":{"type":"string","description":"The street related information, which is usually printed before the official street name on an address label."},"additionalNamePrefix":{"type":"string","description":"The additional street related information, which is usually printed before the official street name on an address label."},"name":{"type":"string","description":"The name of the street."},"nameSuffix":{"type":"string","description":"The street related information, which is usually printed after the official street name on an address label."},"additionalNameSuffix":{"type":"string","description":"The additional street related information, which is usually printed after the official street name on an address label."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."}},"description":"The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway"},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"A physical postal address describes the physical location of an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else."},"roles":{"type":"array","description":"Roles this business partner takes in relation to the sharing member.","items":{"type":"string","enum":["SUPPLIER","CUSTOMER"]}},"externalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner."},"legalEntityExternalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner, representing the legal entity, that owns the address."},"siteExternalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner, representing the site, that the address belongs to."},"bpna":{"type":"string","description":"A BPNA represents and uniquely identifies an address, which can be the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates). It is important to note that only the BPNL must be used to uniquely identify a legal entity. Even in the case that the BPNA represents the legal address of the legal entity, it shall not be used to uniquely identify the legal entity."}},"description":"In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA."},"externalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner."},"legalEntityExternalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner owning the site."},"bpns":{"type":"string","description":"A BPNS represents and uniquely identifies a site, which is where for example a production plant, a warehouse, or an office building is located."}},"description":"In general, a site is a delimited geographical area in which an organization (such as an enterprise or company, university, association, etc.) conducts business. In Catena-X, a site is a type of business partner representing a physical location or area owned by a legal entity, where a production plant, a warehouse, or an office building is located. A site is owned by a legal entity. Thus, exactly one legal entity is assigned to a site. A site has exactly one main address, but it is possible to specify additional addresses (such as different gates), that belong to a site. Thus, at least one address is assigned to a site. A site can only be uploaded and modified by the owner (the legal entity), because only the owner knows which addresses belong to which site. A site is uniquely identified by the BPNS."}}},"description":"Paginated collection of results"}}}},"400":{"description":"On malformed pagination request"}},"method":"post","path":"/api/catena/output/sites/search","servers":[{"url":"http://localhost:8081","description":"Generated server url"}],"jsonRequestBodyExample":["string"],"info":{"title":"Business Partner Data Management Gate","description":"A gate for a member to share business partner data with CatenaX","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Returns sites by an array of external IDs from the output stage","description":{"content":"Get page of sites from the output stage. Can optionally be filtered by external IDs.","type":"text/plain"},"url":{"path":["api","catena","output","sites","search"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"description":{"content":"Number of page to get results from","type":"text/plain"},"key":"page","value":""},{"disabled":false,"description":{"content":"Size of each page","type":"text/plain"},"key":"size","value":""}],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Gate Api/business-partner-data-management-gate +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Returns sites by an array of external IDs from the output stage + + + +Get page of sites from the output stage. Can optionally be filtered by external IDs. + +
Query Parameters
Request Body array
  • string
+ +The requested page of sites + +
Schema
    content object[]
    + +Collection of results in the page + +
    states object[]
    + +The list of the (temporary) states of the site. + +
    mainAddress object
    + +In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA. + +
    states object[]
    + +The list of (temporary) states of the address. + +
    identifiers object[]
    + +The list of identifiers of the address. + +
    physicalPostalAddress object
    + +A physical postal address describes the physical location of an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    street object
    + +The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway + +
    alternativePostalAddress object
    + +An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
+ +On malformed pagination request + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-sites.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-sites.api.mdx new file mode 100644 index 00000000000..44745eebfc0 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/get-sites.api.mdx @@ -0,0 +1,78 @@ +--- +id: get-sites +title: "Returns sites from the input stage" +description: "Returns page of sites from the input stage." +sidebar_label: "Returns sites from the input stage" +hide_title: true +hide_table_of_contents: true +api: {"tags":["site-controller"],"description":"Returns page of sites from the input stage.","operationId":"getSites","parameters":[{"name":"page","in":"query","description":"Number of page to get results from","required":false,"schema":{"minimum":0,"type":"string","default":"0"}},{"name":"size","in":"query","description":"Size of each page","required":false,"schema":{"maximum":100,"minimum":0,"type":"string","default":"10"}}],"responses":{"200":{"description":"The requested page of sites","content":{"application/json":{"schema":{"type":"object","properties":{"totalElements":{"type":"integer","description":"Total number of all results in all pages","format":"int64"},"totalPages":{"type":"integer","description":"Total number pages","format":"int32"},"page":{"type":"integer","description":"Current page number","format":"int32"},"contentSize":{"type":"integer","description":"Number of results in the page","format":"int32"},"content":{"type":"array","description":"Collection of results in the page","items":{"type":"object","properties":{"nameParts":{"type":"array","description":"The list of name parts of the site to accommodate the different number of name fields in different systems. This is not according to official registers but according to the name the owner chooses.","items":{"type":"string"}},"states":{"type":"array","description":"The list of the (temporary) states of the site.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the site."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}},"description":"A site state indicates if the site is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the site is still operating."}},"roles":{"type":"array","description":"Roles this business partner takes in relation to the sharing member.","items":{"type":"string","enum":["SUPPLIER","CUSTOMER"]}},"mainAddress":{"type":"object","properties":{"nameParts":{"type":"array","description":"The list of name parts of the address to accommodate the different number of name fields in different systems. This is not according to official registers but according to the name the sharing member chooses.","items":{"type":"string"}},"states":{"type":"array","description":"The list of (temporary) states of the address.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the address."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}},"description":"An address state indicates if the address is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the business partner is still operating at that address."}},"identifiers":{"type":"array","description":"The list of identifiers of the address.","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"0847976000005\"."},"type":{"type":"string","description":"The type of the identifier."}},"description":"An address identifier (uniquely) identifies the address, such as the Global Location Number (GLN)."}},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"namePrefix":{"type":"string","description":"The street related information, which is usually printed before the official street name on an address label."},"additionalNamePrefix":{"type":"string","description":"The additional street related information, which is usually printed before the official street name on an address label."},"name":{"type":"string","description":"The name of the street."},"nameSuffix":{"type":"string","description":"The street related information, which is usually printed after the official street name on an address label."},"additionalNameSuffix":{"type":"string","description":"The additional street related information, which is usually printed after the official street name on an address label."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."}},"description":"The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway"},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"A physical postal address describes the physical location of an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else."},"roles":{"type":"array","description":"Roles this business partner takes in relation to the sharing member.","items":{"type":"string","enum":["SUPPLIER","CUSTOMER"]}},"externalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner."},"legalEntityExternalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner, representing the legal entity, that owns the address."},"siteExternalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner, representing the site, that the address belongs to."}},"description":"In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA."},"externalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner."},"legalEntityExternalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner owning the site."}},"description":"In general, a site is a delimited geographical area in which an organization (such as an enterprise or company, university, association, etc.) conducts business. In Catena-X, a site is a type of business partner representing a physical location or area owned by a legal entity, where a production plant, a warehouse, or an office building is located. A site is owned by a legal entity. Thus, exactly one legal entity is assigned to a site. A site has exactly one main address, but it is possible to specify additional addresses (such as different gates), that belong to a site. Thus, at least one address is assigned to a site. A site can only be uploaded and modified by the owner (the legal entity), because only the owner knows which addresses belong to which site. A site is uniquely identified by the BPNS."}}},"description":"Paginated collection of results"}}}},"400":{"description":"On malformed pagination request"}},"method":"get","path":"/api/catena/input/sites","servers":[{"url":"http://localhost:8081","description":"Generated server url"}],"info":{"title":"Business Partner Data Management Gate","description":"A gate for a member to share business partner data with CatenaX","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Returns sites from the input stage","description":{"content":"Returns page of sites from the input stage.","type":"text/plain"},"url":{"path":["api","catena","input","sites"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"description":{"content":"Number of page to get results from","type":"text/plain"},"key":"page","value":""},{"disabled":false,"description":{"content":"Size of each page","type":"text/plain"},"key":"size","value":""}],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Gate Api/business-partner-data-management-gate +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Returns sites from the input stage + + + +Returns page of sites from the input stage. + +
Query Parameters
+ +The requested page of sites + +
Schema
    content object[]
    + +Collection of results in the page + +
    states object[]
    + +The list of the (temporary) states of the site. + +
    mainAddress object
    + +In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA. + +
    states object[]
    + +The list of (temporary) states of the address. + +
    identifiers object[]
    + +The list of identifiers of the address. + +
    physicalPostalAddress object
    + +A physical postal address describes the physical location of an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    street object
    + +The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway + +
    alternativePostalAddress object
    + +An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
+ +On malformed pagination request + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/sidebar.js b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/sidebar.js new file mode 100644 index 00000000000..d782f70150c --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/sidebar.js @@ -0,0 +1 @@ +module.exports = [{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Gate Api/business-partner-data-management-gate"},{"type":"category","label":"sharing-state-controller","link":{"type":"generated-index","title":"sharing-state-controller","slug":"/category/kits/Business Partner Kit/Software Development View/Gate Api/sharing-state-controller"},"items":[{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Gate Api/get-sharing-states","label":"Returns sharing states of business partners, optionally filtered by a business partner type and an array of external IDs","className":"api-method get"},{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Gate Api/upsert-sharing-state","label":"Creates or updates a sharing state of a business partner","className":"api-method put"}]},{"type":"category","label":"site-controller","link":{"type":"generated-index","title":"site-controller","slug":"/category/kits/Business Partner Kit/Software Development View/Gate Api/site-controller"},"items":[{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Gate Api/upsert-sites-output","label":"Creates or updates an existing site in the output stage","className":"api-method put"},{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Gate Api/get-sites","label":"Returns sites from the input stage","className":"api-method get"},{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Gate Api/upsert-sites","label":"Creates or updates an existing site in the input stage","className":"api-method put"},{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Gate Api/get-sites-output","label":"Returns sites by an array of external IDs from the output stage","className":"api-method post"},{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Gate Api/get-sites-by-external-ids","label":"Returns sites by an array of external IDs from the input stage","className":"api-method post"},{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Gate Api/get-site-by-external-id","label":"Returns site by external ID from the input stage","className":"api-method get"}]},{"type":"category","label":"legal-entity-controller","link":{"type":"generated-index","title":"legal-entity-controller","slug":"/category/kits/Business Partner Kit/Software Development View/Gate Api/legal-entity-controller"},"items":[{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Gate Api/upsert-legal-entities-output","label":"Creates or updates an existing legal entity in the output stage","className":"api-method put"},{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Gate Api/get-legal-entities","label":"Returns legal entities from the input stage","className":"api-method get"},{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Gate Api/upsert-legal-entities","label":"Creates or updates an existing legal entity in the input stage","className":"api-method put"},{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Gate Api/get-legal-entities-output","label":"Returns legal entities by an array of external IDs from the output stage","className":"api-method post"},{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Gate Api/get-legal-entities-by-external-ids","label":"Returns legal entities by an array of external IDs from the input stage","className":"api-method post"},{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Gate Api/get-legal-entity-by-external-id","label":"Returns legal entity by external ID from the input stage","className":"api-method get"}]},{"type":"category","label":"address-controller","link":{"type":"generated-index","title":"address-controller","slug":"/category/kits/Business Partner Kit/Software Development View/Gate Api/address-controller"},"items":[{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Gate Api/upsert-addresses-output","label":"Creates or updates an existing address in the output stage","className":"api-method put"},{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Gate Api/get-addresses","label":"Returns addresses from the input stage","className":"api-method get"},{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Gate Api/upsert-addresses","label":"Creates or updates an existing address in the input stage","className":"api-method put"},{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Gate Api/get-addresses-output","label":"Returns addresses by an array of external IDs from the output stage","className":"api-method post"},{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Gate Api/get-addresses-by-external-ids","label":"Returns addresses by an array of external IDs from the input stage","className":"api-method post"},{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Gate Api/get-address-by-external-id","label":"Returns address by external ID from the input stage","className":"api-method get"}]},{"type":"category","label":"business-partner-controller","link":{"type":"generated-index","title":"business-partner-controller","slug":"/category/kits/Business Partner Kit/Software Development View/Gate Api/business-partner-controller"},"items":[{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Gate Api/upsert-business-partners-input","label":"Create or update business partner with given external ID","className":"api-method put"},{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Gate Api/get-business-partners-output","label":"Search business partners by an array of external IDs from the output stage","className":"api-method post"},{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Gate Api/get-business-partners-input","label":"Search business partner by external ID. An empty external ID list returns a paginated list of all business partners.","className":"api-method post"}]},{"type":"category","label":"changelog-controller","link":{"type":"generated-index","title":"changelog-controller","slug":"/category/kits/Business Partner Kit/Software Development View/Gate Api/changelog-controller"},"items":[{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Gate Api/get-output-changelog","label":"Returns changelog entries for changes to the business partner output stage","className":"api-method post"},{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Gate Api/get-input-changelog","label":"Returns changelog entries for changes to the business partner input stage","className":"api-method post"}]},{"type":"category","label":"gate-documentation-controller","link":{"type":"generated-index","title":"gate-documentation-controller","slug":"/category/kits/Business Partner Kit/Software Development View/Gate Api/gate-documentation-controller"},"items":[{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Gate Api/get-mermaid-gate-persistence","label":"Get mermaid class diagramm for the gate JPA model","className":"api-method get"}]}]; \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/upsert-addresses-output.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/upsert-addresses-output.api.mdx new file mode 100644 index 00000000000..9c93649b0c4 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/upsert-addresses-output.api.mdx @@ -0,0 +1,66 @@ +--- +id: upsert-addresses-output +title: "Creates or updates an existing address in the output stage" +description: "Create or update addresses (Output). Updates instead of creating a new address if an already existing external ID is used. The same external ID may not occur more than once in a single request. For a single request, the maximum number of addresses in the request is limited to 100 entries." +sidebar_label: "Creates or updates an existing address in the output stage" +hide_title: true +hide_table_of_contents: true +api: {"tags":["address-controller"],"description":"Create or update addresses (Output). Updates instead of creating a new address if an already existing external ID is used. The same external ID may not occur more than once in a single request. For a single request, the maximum number of addresses in the request is limited to 100 entries.","operationId":"upsertAddressesOutput","requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"nameParts":{"type":"array","description":"The list of name parts of the address to accommodate the different number of name fields in different systems. This is not according to official registers but according to the name the sharing member chooses.","items":{"type":"string"}},"states":{"type":"array","description":"The list of (temporary) states of the address.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the address."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}},"description":"An address state indicates if the address is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the business partner is still operating at that address."}},"identifiers":{"type":"array","description":"The list of identifiers of the address.","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"0847976000005\"."},"type":{"type":"string","description":"The type of the identifier."}},"description":"An address identifier (uniquely) identifies the address, such as the Global Location Number (GLN)."}},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"namePrefix":{"type":"string","description":"The street related information, which is usually printed before the official street name on an address label."},"additionalNamePrefix":{"type":"string","description":"The additional street related information, which is usually printed before the official street name on an address label."},"name":{"type":"string","description":"The name of the street."},"nameSuffix":{"type":"string","description":"The street related information, which is usually printed after the official street name on an address label."},"additionalNameSuffix":{"type":"string","description":"The additional street related information, which is usually printed after the official street name on an address label."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."}},"description":"The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway"},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"A physical postal address describes the physical location of an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else."},"roles":{"type":"array","description":"Roles this business partner takes in relation to the sharing member.","items":{"type":"string","enum":["SUPPLIER","CUSTOMER"]}},"externalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner."},"legalEntityExternalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner, representing the legal entity, that owns the address."},"siteExternalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner, representing the site, that the address belongs to."},"bpn":{"type":"string","description":"A BPNA represents and uniquely identifies an address, which can be the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates). It is important to note that only the BPNL must be used to uniquely identify a legal entity. Even in the case that the BPNA represents the legal address of the legal entity, it shall not be used to uniquely identify the legal entity."}},"description":"Request for creating/updating a business partner record of type address. In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA."}}}},"required":true},"responses":{"200":{"description":"Addresses were successfully updated or created","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"On malformed address request"}},"method":"put","path":"/api/catena/output/addresses","servers":[{"url":"http://localhost:8081","description":"Generated server url"}],"jsonRequestBodyExample":[{"nameParts":["string"],"states":[{"description":"string","validFrom":"2023-11-02","validTo":"2023-11-02","type":"ACTIVE"}],"identifiers":[{"value":"string","type":"string"}],"physicalPostalAddress":{"geographicCoordinates":{"longitude":0,"latitude":0,"altitude":0},"country":"UNDEFINED","administrativeAreaLevel1":"string","administrativeAreaLevel2":"string","administrativeAreaLevel3":"string","postalCode":"string","city":"string","district":"string","street":{"namePrefix":"string","additionalNamePrefix":"string","name":"string","nameSuffix":"string","additionalNameSuffix":"string","houseNumber":"string","milestone":"string","direction":"string"},"companyPostalCode":"string","industrialZone":"string","building":"string","floor":"string","door":"string"},"alternativePostalAddress":{"geographicCoordinates":{"longitude":0,"latitude":0,"altitude":0},"country":"UNDEFINED","administrativeAreaLevel1":"string","postalCode":"string","city":"string","deliveryServiceType":"PO_BOX","deliveryServiceQualifier":"string","deliveryServiceNumber":"string"},"roles":["SUPPLIER"],"externalId":"string","legalEntityExternalId":"string","siteExternalId":"string","bpn":"string"}],"info":{"title":"Business Partner Data Management Gate","description":"A gate for a member to share business partner data with CatenaX","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Creates or updates an existing address in the output stage","description":{"content":"Create or update addresses (Output). Updates instead of creating a new address if an already existing external ID is used. The same external ID may not occur more than once in a single request. For a single request, the maximum number of addresses in the request is limited to 100 entries.","type":"text/plain"},"url":{"path":["api","catena","output","addresses"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"PUT","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "put api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Gate Api/business-partner-data-management-gate +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Creates or updates an existing address in the output stage + + + +Create or update addresses (Output). Updates instead of creating a new address if an already existing external ID is used. The same external ID may not occur more than once in a single request. For a single request, the maximum number of addresses in the request is limited to 100 entries. + +
Request Body array required
    states object[]
    + +The list of (temporary) states of the address. + +
    identifiers object[]
    + +The list of identifiers of the address. + +
    physicalPostalAddress object
    + +A physical postal address describes the physical location of an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    street object
    + +The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway + +
    alternativePostalAddress object
    + +An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
+ +Addresses were successfully updated or created + +
Schema
  • object
+ +On malformed address request + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/upsert-addresses.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/upsert-addresses.api.mdx new file mode 100644 index 00000000000..09b1c2e5f0f --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/upsert-addresses.api.mdx @@ -0,0 +1,66 @@ +--- +id: upsert-addresses +title: "Creates or updates an existing address in the input stage" +description: "Create or update addresses. Updates instead of creating a new address if an already existing external ID is used. The same external ID may not occur more than once in a single request. For a single request, the maximum number of addresses in the request is limited to 100 entries." +sidebar_label: "Creates or updates an existing address in the input stage" +hide_title: true +hide_table_of_contents: true +api: {"tags":["address-controller"],"description":"Create or update addresses. Updates instead of creating a new address if an already existing external ID is used. The same external ID may not occur more than once in a single request. For a single request, the maximum number of addresses in the request is limited to 100 entries.","operationId":"upsertAddresses","requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"nameParts":{"type":"array","description":"The list of name parts of the address to accommodate the different number of name fields in different systems. This is not according to official registers but according to the name the sharing member chooses.","items":{"type":"string"}},"states":{"type":"array","description":"The list of (temporary) states of the address.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the address."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}},"description":"An address state indicates if the address is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the business partner is still operating at that address."}},"identifiers":{"type":"array","description":"The list of identifiers of the address.","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"0847976000005\"."},"type":{"type":"string","description":"The type of the identifier."}},"description":"An address identifier (uniquely) identifies the address, such as the Global Location Number (GLN)."}},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"namePrefix":{"type":"string","description":"The street related information, which is usually printed before the official street name on an address label."},"additionalNamePrefix":{"type":"string","description":"The additional street related information, which is usually printed before the official street name on an address label."},"name":{"type":"string","description":"The name of the street."},"nameSuffix":{"type":"string","description":"The street related information, which is usually printed after the official street name on an address label."},"additionalNameSuffix":{"type":"string","description":"The additional street related information, which is usually printed after the official street name on an address label."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."}},"description":"The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway"},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"A physical postal address describes the physical location of an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else."},"roles":{"type":"array","description":"Roles this business partner takes in relation to the sharing member.","items":{"type":"string","enum":["SUPPLIER","CUSTOMER"]}},"externalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner."},"legalEntityExternalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner, representing the legal entity, that owns the address."},"siteExternalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner, representing the site, that the address belongs to."}},"description":"Request for creating/updating a business partner record of type address. In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA."}}}},"required":true},"responses":{"200":{"description":"Addresses were successfully updated or created","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"On malformed address request"}},"method":"put","path":"/api/catena/input/addresses","servers":[{"url":"http://localhost:8081","description":"Generated server url"}],"jsonRequestBodyExample":[{"nameParts":["string"],"states":[{"description":"string","validFrom":"2023-11-02","validTo":"2023-11-02","type":"ACTIVE"}],"identifiers":[{"value":"string","type":"string"}],"physicalPostalAddress":{"geographicCoordinates":{"longitude":0,"latitude":0,"altitude":0},"country":"UNDEFINED","administrativeAreaLevel1":"string","administrativeAreaLevel2":"string","administrativeAreaLevel3":"string","postalCode":"string","city":"string","district":"string","street":{"namePrefix":"string","additionalNamePrefix":"string","name":"string","nameSuffix":"string","additionalNameSuffix":"string","houseNumber":"string","milestone":"string","direction":"string"},"companyPostalCode":"string","industrialZone":"string","building":"string","floor":"string","door":"string"},"alternativePostalAddress":{"geographicCoordinates":{"longitude":0,"latitude":0,"altitude":0},"country":"UNDEFINED","administrativeAreaLevel1":"string","postalCode":"string","city":"string","deliveryServiceType":"PO_BOX","deliveryServiceQualifier":"string","deliveryServiceNumber":"string"},"roles":["SUPPLIER"],"externalId":"string","legalEntityExternalId":"string","siteExternalId":"string"}],"info":{"title":"Business Partner Data Management Gate","description":"A gate for a member to share business partner data with CatenaX","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Creates or updates an existing address in the input stage","description":{"content":"Create or update addresses. Updates instead of creating a new address if an already existing external ID is used. The same external ID may not occur more than once in a single request. For a single request, the maximum number of addresses in the request is limited to 100 entries.","type":"text/plain"},"url":{"path":["api","catena","input","addresses"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"PUT","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "put api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Gate Api/business-partner-data-management-gate +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Creates or updates an existing address in the input stage + + + +Create or update addresses. Updates instead of creating a new address if an already existing external ID is used. The same external ID may not occur more than once in a single request. For a single request, the maximum number of addresses in the request is limited to 100 entries. + +
Request Body array required
    states object[]
    + +The list of (temporary) states of the address. + +
    identifiers object[]
    + +The list of identifiers of the address. + +
    physicalPostalAddress object
    + +A physical postal address describes the physical location of an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    street object
    + +The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway + +
    alternativePostalAddress object
    + +An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
+ +Addresses were successfully updated or created + +
Schema
  • object
+ +On malformed address request + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/upsert-business-partners-input.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/upsert-business-partners-input.api.mdx new file mode 100644 index 00000000000..ab64df9de71 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/upsert-business-partners-input.api.mdx @@ -0,0 +1,110 @@ +--- +id: upsert-business-partners-input +title: "Create or update business partner with given external ID" +description: "Create or update generic business partner. Updates instead of creating a new business partner if an already existing external ID is used. The same external ID may not occur more than once in a single request. For a single request, the maximum number of business partners in the request is limited to 100 entries." +sidebar_label: "Create or update business partner with given external ID" +hide_title: true +hide_table_of_contents: true +api: {"tags":["business-partner-controller"],"description":"Create or update generic business partner. Updates instead of creating a new business partner if an already existing external ID is used. The same external ID may not occur more than once in a single request. For a single request, the maximum number of business partners in the request is limited to 100 entries.","operationId":"upsertBusinessPartnersInput","requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"required":["externalId"],"type":"object","properties":{"externalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner."},"nameParts":{"type":"array","description":"The list of name parts to accommodate the different number of name fields in different systems.","items":{"type":"string"}},"shortName":{"type":"string","description":"Abbreviated name or shorthand."},"identifiers":{"type":"array","description":"The list of identifiers of the business partner. Sorted and duplicates removed by the service.","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","description":"Technical key of the type to which this identifier belongs to"},"value":{"type":"string","description":"Value of the identifier"},"issuingBody":{"type":"string","description":"Body which issued the identifier"}},"description":"Identifier record for a business partner"}},"legalName":{"type":"string"},"legalForm":{"type":"string","description":"Technical key of the legal form."},"states":{"type":"array","description":"The list of (temporary) states of the business partner. Sorted and duplicates removed by the service.","items":{"required":["type"],"type":"object","properties":{"validFrom":{"type":"string","description":"Date since when the status is/was valid.","format":"date-time"},"validTo":{"type":"string","description":"Date until the status was valid, if applicable.","format":"date-time"},"type":{"type":"string","description":"The type of this specified status.","enum":["ACTIVE","INACTIVE"]},"description":{"type":"string","description":"Denotation of the status."}},"description":"A legal entity state indicates if the legal entity is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the legal entity is still operating."}},"classifications":{"type":"array","description":"The list of classifications of the business partner, such as a specific industry. Sorted and duplicates removed by the service.","items":{"type":"object","properties":{"type":{"type":"string","description":"Type of classification.","enum":["NACE","NAF","NAICS","SIC"]},"code":{"type":"string","description":"The identifier of the class belonging to the classification."},"value":{"type":"string","description":"The name of the class belonging to the classification."}},"description":"A legal entity classification is an assignment of the legal entity to an industry. It does not necessarily have to be the only industry the company is active in (see large companies operating in different industries). Multiple assignments to several industries are possible per classification type."}},"roles":{"type":"array","description":"Roles this business partner takes in relation to the sharing member. Sorted and duplicates removed by the service.","items":{"type":"string","enum":["SUPPLIER","CUSTOMER"]}},"postalAddress":{"type":"object","properties":{"addressType":{"type":"string","description":"Type of the address","enum":["LegalAndSiteMainAddress","LegalAddress","SiteMainAddress","AdditionalAddress"]},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"namePrefix":{"type":"string","description":"The street related information, which is usually printed before the official street name on an address label."},"additionalNamePrefix":{"type":"string","description":"The additional street related information, which is usually printed before the official street name on an address label."},"name":{"type":"string","description":"The name of the street."},"nameSuffix":{"type":"string","description":"The street related information, which is usually printed after the official street name on an address label."},"additionalNameSuffix":{"type":"string","description":"The additional street related information, which is usually printed after the official street name on an address label."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."}},"description":"The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway"},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"A physical postal address describes the physical location of an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else."}},"description":"Postal address of a business partner"},"bpnL":{"type":"string","description":"BPNL"},"bpnS":{"type":"string","description":"BPNS"},"bpnA":{"type":"string","description":"BPNA"},"ownCompanyData":{"type":"boolean","description":"True if the sharing member declares itself as the owner of the business partner."}},"description":"Generic business partner with external id"}}}},"required":true},"responses":{"200":{"description":"Business partner were successfully updated or created","content":{"application/json":{"schema":{"type":"array","items":{"required":["externalId","postalAddress"],"type":"object","properties":{"externalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner."},"nameParts":{"type":"array","description":"The list of name parts to accommodate the different number of name fields in different systems.","items":{"type":"string"}},"shortName":{"type":"string","description":"Abbreviated name or shorthand."},"identifiers":{"type":"array","description":"The list of identifiers of the business partner. Sorted and duplicates removed by the service.","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","description":"Technical key of the type to which this identifier belongs to"},"value":{"type":"string","description":"Value of the identifier"},"issuingBody":{"type":"string","description":"Body which issued the identifier"}},"description":"Identifier record for a business partner"}},"legalName":{"type":"string"},"legalForm":{"type":"string","description":"Technical key of the legal form."},"states":{"type":"array","description":"The list of (temporary) states of the business partner. Sorted and duplicates removed by the service.","items":{"required":["type"],"type":"object","properties":{"validFrom":{"type":"string","description":"Date since when the status is/was valid.","format":"date-time"},"validTo":{"type":"string","description":"Date until the status was valid, if applicable.","format":"date-time"},"type":{"type":"string","description":"The type of this specified status.","enum":["ACTIVE","INACTIVE"]},"description":{"type":"string","description":"Denotation of the status."}},"description":"A legal entity state indicates if the legal entity is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the legal entity is still operating."}},"classifications":{"type":"array","description":"The list of classifications of the business partner, such as a specific industry. Sorted and duplicates removed by the service.","items":{"type":"object","properties":{"type":{"type":"string","description":"Type of classification.","enum":["NACE","NAF","NAICS","SIC"]},"code":{"type":"string","description":"The identifier of the class belonging to the classification."},"value":{"type":"string","description":"The name of the class belonging to the classification."}},"description":"A legal entity classification is an assignment of the legal entity to an industry. It does not necessarily have to be the only industry the company is active in (see large companies operating in different industries). Multiple assignments to several industries are possible per classification type."}},"roles":{"type":"array","description":"Roles this business partner takes in relation to the sharing member. Sorted and duplicates removed by the service.","items":{"type":"string","enum":["SUPPLIER","CUSTOMER"]}},"postalAddress":{"type":"object","properties":{"addressType":{"type":"string","description":"Type of the address","enum":["LegalAndSiteMainAddress","LegalAddress","SiteMainAddress","AdditionalAddress"]},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"namePrefix":{"type":"string","description":"The street related information, which is usually printed before the official street name on an address label."},"additionalNamePrefix":{"type":"string","description":"The additional street related information, which is usually printed before the official street name on an address label."},"name":{"type":"string","description":"The name of the street."},"nameSuffix":{"type":"string","description":"The street related information, which is usually printed after the official street name on an address label."},"additionalNameSuffix":{"type":"string","description":"The additional street related information, which is usually printed after the official street name on an address label."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."}},"description":"The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway"},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"A physical postal address describes the physical location of an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else."}},"description":"Postal address of a business partner"},"bpnL":{"type":"string","description":"BPNL"},"bpnS":{"type":"string","description":"BPNS"},"bpnA":{"type":"string","description":"BPNA"},"createdAt":{"type":"string","description":"The date when the data record has been created.","format":"date-time"},"updatedAt":{"type":"string","description":"The date when the data record has been last updated.","format":"date-time"},"ownCompanyData":{"type":"boolean","description":"True if the sharing member declares itself as the owner of the business partner."}},"description":"Generic business partner with external id"}}}}},"400":{"description":"On malformed legal entity request"}},"method":"put","path":"/api/catena/input/business-partners","servers":[{"url":"http://localhost:8081","description":"Generated server url"}],"jsonRequestBodyExample":[{"externalId":"string","nameParts":["string"],"shortName":"string","identifiers":[{"type":"string","value":"string","issuingBody":"string"}],"legalName":"string","legalForm":"string","states":[{"validFrom":"2023-11-02","validTo":"2023-11-02","type":"ACTIVE","description":"string"}],"classifications":[{"type":"NACE","code":"string","value":"string"}],"roles":["SUPPLIER"],"postalAddress":{"addressType":"LegalAndSiteMainAddress","physicalPostalAddress":{"geographicCoordinates":{"longitude":0,"latitude":0,"altitude":0},"country":"UNDEFINED","administrativeAreaLevel1":"string","administrativeAreaLevel2":"string","administrativeAreaLevel3":"string","postalCode":"string","city":"string","district":"string","street":{"namePrefix":"string","additionalNamePrefix":"string","name":"string","nameSuffix":"string","additionalNameSuffix":"string","houseNumber":"string","milestone":"string","direction":"string"},"companyPostalCode":"string","industrialZone":"string","building":"string","floor":"string","door":"string"},"alternativePostalAddress":{"geographicCoordinates":{"longitude":0,"latitude":0,"altitude":0},"country":"UNDEFINED","administrativeAreaLevel1":"string","postalCode":"string","city":"string","deliveryServiceType":"PO_BOX","deliveryServiceQualifier":"string","deliveryServiceNumber":"string"}},"bpnL":"string","bpnS":"string","bpnA":"string","ownCompanyData":true}],"info":{"title":"Business Partner Data Management Gate","description":"A gate for a member to share business partner data with CatenaX","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Create or update business partner with given external ID","description":{"content":"Create or update generic business partner. Updates instead of creating a new business partner if an already existing external ID is used. The same external ID may not occur more than once in a single request. For a single request, the maximum number of business partners in the request is limited to 100 entries.","type":"text/plain"},"url":{"path":["api","catena","input","business-partners"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"PUT","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "put api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Gate Api/business-partner-data-management-gate +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Create or update business partner with given external ID + + + +Create or update generic business partner. Updates instead of creating a new business partner if an already existing external ID is used. The same external ID may not occur more than once in a single request. For a single request, the maximum number of business partners in the request is limited to 100 entries. + +
Request Body array required
    identifiers object[]
    + +The list of identifiers of the business partner. Sorted and duplicates removed by the service. + +
    states object[]
    + +The list of (temporary) states of the business partner. Sorted and duplicates removed by the service. + +
    classifications object[]
    + +The list of classifications of the business partner, such as a specific industry. Sorted and duplicates removed by the service. + +
    postalAddress object
    + +Postal address of a business partner + +
    physicalPostalAddress object
    + +A physical postal address describes the physical location of an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    street object
    + +The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway + +
    alternativePostalAddress object
    + +An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
+ +Business partner were successfully updated or created + +
Schema array
    identifiers object[]
    + +The list of identifiers of the business partner. Sorted and duplicates removed by the service. + +
    states object[]
    + +The list of (temporary) states of the business partner. Sorted and duplicates removed by the service. + +
    classifications object[]
    + +The list of classifications of the business partner, such as a specific industry. Sorted and duplicates removed by the service. + +
    postalAddress object
    + +Postal address of a business partner + +
    physicalPostalAddress object
    + +A physical postal address describes the physical location of an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    street object
    + +The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway + +
    alternativePostalAddress object
    + +An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
+ +On malformed legal entity request + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/upsert-legal-entities-output.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/upsert-legal-entities-output.api.mdx new file mode 100644 index 00000000000..d2805867e13 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/upsert-legal-entities-output.api.mdx @@ -0,0 +1,82 @@ +--- +id: upsert-legal-entities-output +title: "Creates or updates an existing legal entity in the output stage" +description: "Create or update legal entities (Output). Updates instead of creating a new legal entity if an already existing external ID is used. The same external ID may not occur more than once in a single request. For a single request, the maximum number of legal entities in the request is limited to 100 entries." +sidebar_label: "Creates or updates an existing legal entity in the output stage" +hide_title: true +hide_table_of_contents: true +api: {"tags":["legal-entity-controller"],"description":"Create or update legal entities (Output). Updates instead of creating a new legal entity if an already existing external ID is used. The same external ID may not occur more than once in a single request. For a single request, the maximum number of legal entities in the request is limited to 100 entries.","operationId":"upsertLegalEntitiesOutput","requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"required":["externalId"],"type":"object","properties":{"legalNameParts":{"type":"array","description":"The list of name parts of the legal entity to accommodate the different number of name fields in different systems.","items":{"type":"string"}},"identifiers":{"type":"array","description":"The list of identifiers of the legal entity.","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"DE123465789\"."},"type":{"type":"string","description":"The type of the identifier."},"issuingBody":{"type":"string","description":"The name of the official register, where the identifier is registered. For example, a Handelsregisternummer in Germany is only valid with its corresponding Handelsregister."}}}},"legalShortName":{"type":"string","description":"The abbreviated name of the legal entity."},"legalForm":{"type":"string","description":"The legal form of the legal entity."},"states":{"type":"array","description":"The list of (temporary) states of the legal entity.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the legal entity, such as from the German Handelsregister."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}},"description":"A legal entity state indicates if the legal entity is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the legal entity is still operating."}},"classifications":{"type":"array","description":"The list of classifications of the legal entity, such as a specific industry.","items":{"type":"object","properties":{"type":{"type":"string","description":"Type of classification.","enum":["NACE","NAF","NAICS","SIC"]},"code":{"type":"string","description":"The identifier of the class belonging to the classification."},"value":{"type":"string","description":"The name of the class belonging to the classification."}},"description":"A legal entity classification is an assignment of the legal entity to an industry. It does not necessarily have to be the only industry the company is active in (see large companies operating in different industries). Multiple assignments to several industries are possible per classification type."}},"roles":{"type":"array","description":"Roles this business partner takes in relation to the sharing member.","items":{"type":"string","enum":["SUPPLIER","CUSTOMER"]}},"legalAddress":{"type":"object","properties":{"nameParts":{"type":"array","description":"The list of name parts of the address to accommodate the different number of name fields in different systems. This is not according to official registers but according to the name the sharing member chooses.","items":{"type":"string"}},"states":{"type":"array","description":"The list of (temporary) states of the address.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the address."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}},"description":"An address state indicates if the address is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the business partner is still operating at that address."}},"identifiers":{"type":"array","description":"The list of identifiers of the address.","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"0847976000005\"."},"type":{"type":"string","description":"The type of the identifier."}},"description":"An address identifier (uniquely) identifies the address, such as the Global Location Number (GLN)."}},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"namePrefix":{"type":"string","description":"The street related information, which is usually printed before the official street name on an address label."},"additionalNamePrefix":{"type":"string","description":"The additional street related information, which is usually printed before the official street name on an address label."},"name":{"type":"string","description":"The name of the street."},"nameSuffix":{"type":"string","description":"The street related information, which is usually printed after the official street name on an address label."},"additionalNameSuffix":{"type":"string","description":"The additional street related information, which is usually printed after the official street name on an address label."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."}},"description":"The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway"},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"A physical postal address describes the physical location of an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else."},"roles":{"type":"array","description":"Roles this business partner takes in relation to the sharing member.","items":{"type":"string","enum":["SUPPLIER","CUSTOMER"]}},"bpn":{"type":"string","description":"A BPNA represents and uniquely identifies an address, which can be the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates). It is important to note that only the BPNL must be used to uniquely identify a legal entity. Even in the case that the BPNA represents the legal address of the legal entity, it shall not be used to uniquely identify the legal entity."}},"description":"In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA."},"externalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner."},"bpn":{"type":"string","description":"A BPNL represents and uniquely identifies a legal entity, which is defined by its legal name (including legal form, if registered), legal address and tax number."}},"description":"Request for creating/updating a business partner record of type legal entity. In general, a legal entity is a juridical person that has legal rights and duties related to contracts, agreements, and obligations. The term especially applies to any kind of organization (such as an enterprise or company, university, association, etc.) established under the law applicable to a country.In Catena-X, a legal entity is a type of business partner representing a legally registered organization with its official registration information, such as legal name (including legal form, if registered), legal address and tax number.A legal entity has exactly one legal address, but it is possible to specify additional addresses that a legal entity owns. Thus, at least one address is assigned to a legal entity. A legal entity can own sites. Thus, many or no sites are assigned to a legal entity. A legal entity is uniquely identified by the BPNL."}}}},"required":true},"responses":{"200":{"description":"Legal entities were successfully updated or created","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"On malformed legal entity request"}},"method":"put","path":"/api/catena/output/legal-entities","servers":[{"url":"http://localhost:8081","description":"Generated server url"}],"jsonRequestBodyExample":[{"legalNameParts":["string"],"identifiers":[{"value":"string","type":"string","issuingBody":"string"}],"legalShortName":"string","legalForm":"string","states":[{"description":"string","validFrom":"2023-11-02","validTo":"2023-11-02","type":"ACTIVE"}],"classifications":[{"type":"NACE","code":"string","value":"string"}],"roles":["SUPPLIER"],"legalAddress":{"nameParts":["string"],"states":[{"description":"string","validFrom":"2023-11-02","validTo":"2023-11-02","type":"ACTIVE"}],"identifiers":[{"value":"string","type":"string"}],"physicalPostalAddress":{"geographicCoordinates":{"longitude":0,"latitude":0,"altitude":0},"country":"UNDEFINED","administrativeAreaLevel1":"string","administrativeAreaLevel2":"string","administrativeAreaLevel3":"string","postalCode":"string","city":"string","district":"string","street":{"namePrefix":"string","additionalNamePrefix":"string","name":"string","nameSuffix":"string","additionalNameSuffix":"string","houseNumber":"string","milestone":"string","direction":"string"},"companyPostalCode":"string","industrialZone":"string","building":"string","floor":"string","door":"string"},"alternativePostalAddress":{"geographicCoordinates":{"longitude":0,"latitude":0,"altitude":0},"country":"UNDEFINED","administrativeAreaLevel1":"string","postalCode":"string","city":"string","deliveryServiceType":"PO_BOX","deliveryServiceQualifier":"string","deliveryServiceNumber":"string"},"roles":["SUPPLIER"],"bpn":"string"},"externalId":"string","bpn":"string"}],"info":{"title":"Business Partner Data Management Gate","description":"A gate for a member to share business partner data with CatenaX","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Creates or updates an existing legal entity in the output stage","description":{"content":"Create or update legal entities (Output). Updates instead of creating a new legal entity if an already existing external ID is used. The same external ID may not occur more than once in a single request. For a single request, the maximum number of legal entities in the request is limited to 100 entries.","type":"text/plain"},"url":{"path":["api","catena","output","legal-entities"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"PUT","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "put api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Gate Api/business-partner-data-management-gate +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Creates or updates an existing legal entity in the output stage + + + +Create or update legal entities (Output). Updates instead of creating a new legal entity if an already existing external ID is used. The same external ID may not occur more than once in a single request. For a single request, the maximum number of legal entities in the request is limited to 100 entries. + +
Request Body array required
    identifiers object[]
    + +The list of identifiers of the legal entity. + +
    states object[]
    + +The list of (temporary) states of the legal entity. + +
    classifications object[]
    + +The list of classifications of the legal entity, such as a specific industry. + +
    legalAddress object
    + +In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA. + +
    states object[]
    + +The list of (temporary) states of the address. + +
    identifiers object[]
    + +The list of identifiers of the address. + +
    physicalPostalAddress object
    + +A physical postal address describes the physical location of an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    street object
    + +The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway + +
    alternativePostalAddress object
    + +An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
+ +Legal entities were successfully updated or created + +
Schema
  • object
+ +On malformed legal entity request + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/upsert-legal-entities.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/upsert-legal-entities.api.mdx new file mode 100644 index 00000000000..f1441f51373 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/upsert-legal-entities.api.mdx @@ -0,0 +1,82 @@ +--- +id: upsert-legal-entities +title: "Creates or updates an existing legal entity in the input stage" +description: "Create or update legal entities. Updates instead of creating a new legal entity if an already existing external ID is used. The same external ID may not occur more than once in a single request. For a single request, the maximum number of legal entities in the request is limited to 100 entries." +sidebar_label: "Creates or updates an existing legal entity in the input stage" +hide_title: true +hide_table_of_contents: true +api: {"tags":["legal-entity-controller"],"description":"Create or update legal entities. Updates instead of creating a new legal entity if an already existing external ID is used. The same external ID may not occur more than once in a single request. For a single request, the maximum number of legal entities in the request is limited to 100 entries.","operationId":"upsertLegalEntities","requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"required":["externalId"],"type":"object","properties":{"legalNameParts":{"type":"array","description":"The list of name parts of the legal entity to accommodate the different number of name fields in different systems.","items":{"type":"string"}},"identifiers":{"type":"array","description":"The list of identifiers of the legal entity.","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"DE123465789\"."},"type":{"type":"string","description":"The type of the identifier."},"issuingBody":{"type":"string","description":"The name of the official register, where the identifier is registered. For example, a Handelsregisternummer in Germany is only valid with its corresponding Handelsregister."}}}},"legalShortName":{"type":"string","description":"The abbreviated name of the legal entity."},"legalForm":{"type":"string","description":"The legal form of the legal entity."},"states":{"type":"array","description":"The list of (temporary) states of the legal entity.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the legal entity, such as from the German Handelsregister."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}},"description":"A legal entity state indicates if the legal entity is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the legal entity is still operating."}},"classifications":{"type":"array","description":"The list of classifications of the legal entity, such as a specific industry.","items":{"type":"object","properties":{"type":{"type":"string","description":"Type of classification.","enum":["NACE","NAF","NAICS","SIC"]},"code":{"type":"string","description":"The identifier of the class belonging to the classification."},"value":{"type":"string","description":"The name of the class belonging to the classification."}},"description":"A legal entity classification is an assignment of the legal entity to an industry. It does not necessarily have to be the only industry the company is active in (see large companies operating in different industries). Multiple assignments to several industries are possible per classification type."}},"roles":{"type":"array","description":"Roles this business partner takes in relation to the sharing member.","items":{"type":"string","enum":["SUPPLIER","CUSTOMER"]}},"legalAddress":{"type":"object","properties":{"nameParts":{"type":"array","description":"The list of name parts of the address to accommodate the different number of name fields in different systems. This is not according to official registers but according to the name the sharing member chooses.","items":{"type":"string"}},"states":{"type":"array","description":"The list of (temporary) states of the address.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the address."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}},"description":"An address state indicates if the address is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the business partner is still operating at that address."}},"identifiers":{"type":"array","description":"The list of identifiers of the address.","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"0847976000005\"."},"type":{"type":"string","description":"The type of the identifier."}},"description":"An address identifier (uniquely) identifies the address, such as the Global Location Number (GLN)."}},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"namePrefix":{"type":"string","description":"The street related information, which is usually printed before the official street name on an address label."},"additionalNamePrefix":{"type":"string","description":"The additional street related information, which is usually printed before the official street name on an address label."},"name":{"type":"string","description":"The name of the street."},"nameSuffix":{"type":"string","description":"The street related information, which is usually printed after the official street name on an address label."},"additionalNameSuffix":{"type":"string","description":"The additional street related information, which is usually printed after the official street name on an address label."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."}},"description":"The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway"},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"A physical postal address describes the physical location of an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else."},"roles":{"type":"array","description":"Roles this business partner takes in relation to the sharing member.","items":{"type":"string","enum":["SUPPLIER","CUSTOMER"]}}},"description":"In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA."},"externalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner."}},"description":"Request for creating/updating a business partner record of type legal entity. In general, a legal entity is a juridical person that has legal rights and duties related to contracts, agreements, and obligations. The term especially applies to any kind of organization (such as an enterprise or company, university, association, etc.) established under the law applicable to a country.In Catena-X, a legal entity is a type of business partner representing a legally registered organization with its official registration information, such as legal name (including legal form, if registered), legal address and tax number.A legal entity has exactly one legal address, but it is possible to specify additional addresses that a legal entity owns. Thus, at least one address is assigned to a legal entity. A legal entity can own sites. Thus, many or no sites are assigned to a legal entity. A legal entity is uniquely identified by the BPNL."}}}},"required":true},"responses":{"200":{"description":"Legal entities were successfully updated or created","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"On malformed legal entity request"}},"method":"put","path":"/api/catena/input/legal-entities","servers":[{"url":"http://localhost:8081","description":"Generated server url"}],"jsonRequestBodyExample":[{"legalNameParts":["string"],"identifiers":[{"value":"string","type":"string","issuingBody":"string"}],"legalShortName":"string","legalForm":"string","states":[{"description":"string","validFrom":"2023-11-02","validTo":"2023-11-02","type":"ACTIVE"}],"classifications":[{"type":"NACE","code":"string","value":"string"}],"roles":["SUPPLIER"],"legalAddress":{"nameParts":["string"],"states":[{"description":"string","validFrom":"2023-11-02","validTo":"2023-11-02","type":"ACTIVE"}],"identifiers":[{"value":"string","type":"string"}],"physicalPostalAddress":{"geographicCoordinates":{"longitude":0,"latitude":0,"altitude":0},"country":"UNDEFINED","administrativeAreaLevel1":"string","administrativeAreaLevel2":"string","administrativeAreaLevel3":"string","postalCode":"string","city":"string","district":"string","street":{"namePrefix":"string","additionalNamePrefix":"string","name":"string","nameSuffix":"string","additionalNameSuffix":"string","houseNumber":"string","milestone":"string","direction":"string"},"companyPostalCode":"string","industrialZone":"string","building":"string","floor":"string","door":"string"},"alternativePostalAddress":{"geographicCoordinates":{"longitude":0,"latitude":0,"altitude":0},"country":"UNDEFINED","administrativeAreaLevel1":"string","postalCode":"string","city":"string","deliveryServiceType":"PO_BOX","deliveryServiceQualifier":"string","deliveryServiceNumber":"string"},"roles":["SUPPLIER"]},"externalId":"string"}],"info":{"title":"Business Partner Data Management Gate","description":"A gate for a member to share business partner data with CatenaX","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Creates or updates an existing legal entity in the input stage","description":{"content":"Create or update legal entities. Updates instead of creating a new legal entity if an already existing external ID is used. The same external ID may not occur more than once in a single request. For a single request, the maximum number of legal entities in the request is limited to 100 entries.","type":"text/plain"},"url":{"path":["api","catena","input","legal-entities"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"PUT","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "put api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Gate Api/business-partner-data-management-gate +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Creates or updates an existing legal entity in the input stage + + + +Create or update legal entities. Updates instead of creating a new legal entity if an already existing external ID is used. The same external ID may not occur more than once in a single request. For a single request, the maximum number of legal entities in the request is limited to 100 entries. + +
Request Body array required
    identifiers object[]
    + +The list of identifiers of the legal entity. + +
    states object[]
    + +The list of (temporary) states of the legal entity. + +
    classifications object[]
    + +The list of classifications of the legal entity, such as a specific industry. + +
    legalAddress object
    + +In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA. + +
    states object[]
    + +The list of (temporary) states of the address. + +
    identifiers object[]
    + +The list of identifiers of the address. + +
    physicalPostalAddress object
    + +A physical postal address describes the physical location of an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    street object
    + +The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway + +
    alternativePostalAddress object
    + +An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
+ +Legal entities were successfully updated or created + +
Schema
  • object
+ +On malformed legal entity request + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/upsert-sharing-state.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/upsert-sharing-state.api.mdx new file mode 100644 index 00000000000..3dde3d719cd --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/upsert-sharing-state.api.mdx @@ -0,0 +1,38 @@ +--- +id: upsert-sharing-state +title: "Creates or updates a sharing state of a business partner" +description: "Creates or updates a sharing state of a business partner" +sidebar_label: "Creates or updates a sharing state of a business partner" +hide_title: true +hide_table_of_contents: true +api: {"tags":["sharing-state-controller"],"operationId":"upsertSharingState","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"businessPartnerType":{"type":"string","description":"One of the types of business partners for which the sharing state entry was created.","enum":["LEGAL_ENTITY","SITE","ADDRESS","GENERIC"]},"externalId":{"type":"string","description":"The external identifier of the business partner for which the sharing state entry was created."},"sharingStateType":{"type":"string","description":"One of the sharing state types of the current sharing state.","enum":["Pending","Success","Error","Initial"]},"sharingErrorCode":{"type":"string","description":"One of the sharing error codes in case the current sharing state type is \"error\".","enum":["SharingProcessError","SharingTimeout","BpnNotInPool"]},"sharingErrorMessage":{"type":"string","description":"The error message in case the current sharing state type is \"error\"."},"bpn":{"type":"string","description":"The business partner number associated to the combination of external identifier and business partner type in case the sharing state type is “success”. Can be either a BPNL, BPNS or BPNA."},"sharingProcessStarted":{"type":"string","description":"The date and time when the sharing process was started.","format":"date-time"},"taskId":{"type":"string","description":"The orchestrator task identifier that was created"}},"description":"A sharing state entry shows the progress in the sharing process and is updated each time the progress for a business partner changes. The business partner is identified by a combination of external ID and business partner type."}}},"required":true},"responses":{"204":{"description":"Operation completed successfully"},"400":{"description":"Invalid data (e.g. external ID)"}},"description":"Creates or updates a sharing state of a business partner","method":"put","path":"/api/catena/sharing-state","servers":[{"url":"http://localhost:8081","description":"Generated server url"}],"jsonRequestBodyExample":{"businessPartnerType":"LEGAL_ENTITY","externalId":"string","sharingStateType":"Pending","sharingErrorCode":"SharingProcessError","sharingErrorMessage":"string","bpn":"string","sharingProcessStarted":"2023-11-02","taskId":"string"},"info":{"title":"Business Partner Data Management Gate","description":"A gate for a member to share business partner data with CatenaX","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Creates or updates a sharing state of a business partner","description":{"type":"text/plain"},"url":{"path":["api","catena","sharing-state"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"}],"method":"PUT","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "put api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Gate Api/business-partner-data-management-gate +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Creates or updates a sharing state of a business partner + + + +Creates or updates a sharing state of a business partner + +
Request Body required
+ +Operation completed successfully + +
+ +Invalid data (e.g. external ID) + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/upsert-sites-output.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/upsert-sites-output.api.mdx new file mode 100644 index 00000000000..f795aa7a1ed --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/upsert-sites-output.api.mdx @@ -0,0 +1,74 @@ +--- +id: upsert-sites-output +title: "Creates or updates an existing site in the output stage" +description: "Create or update sites (Output). Updates instead of creating a new site if an already existing external ID is used. The same external ID may not occur more than once in a single request. For a single request, the maximum number of sites in the request is limited to 100 entries." +sidebar_label: "Creates or updates an existing site in the output stage" +hide_title: true +hide_table_of_contents: true +api: {"tags":["site-controller"],"description":"Create or update sites (Output). Updates instead of creating a new site if an already existing external ID is used. The same external ID may not occur more than once in a single request. For a single request, the maximum number of sites in the request is limited to 100 entries.","operationId":"upsertSitesOutput","requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"nameParts":{"type":"array","description":"The list of name parts of the site to accommodate the different number of name fields in different systems. This is not according to official registers but according to the name the owner chooses.","items":{"type":"string"}},"states":{"type":"array","description":"The list of the (temporary) states of the site.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the site."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}},"description":"A site state indicates if the site is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the site is still operating."}},"roles":{"type":"array","description":"Roles this business partner takes in relation to the sharing member.","items":{"type":"string","enum":["SUPPLIER","CUSTOMER"]}},"mainAddress":{"type":"object","properties":{"nameParts":{"type":"array","description":"The list of name parts of the address to accommodate the different number of name fields in different systems. This is not according to official registers but according to the name the sharing member chooses.","items":{"type":"string"}},"states":{"type":"array","description":"The list of (temporary) states of the address.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the address."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}},"description":"An address state indicates if the address is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the business partner is still operating at that address."}},"identifiers":{"type":"array","description":"The list of identifiers of the address.","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"0847976000005\"."},"type":{"type":"string","description":"The type of the identifier."}},"description":"An address identifier (uniquely) identifies the address, such as the Global Location Number (GLN)."}},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"namePrefix":{"type":"string","description":"The street related information, which is usually printed before the official street name on an address label."},"additionalNamePrefix":{"type":"string","description":"The additional street related information, which is usually printed before the official street name on an address label."},"name":{"type":"string","description":"The name of the street."},"nameSuffix":{"type":"string","description":"The street related information, which is usually printed after the official street name on an address label."},"additionalNameSuffix":{"type":"string","description":"The additional street related information, which is usually printed after the official street name on an address label."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."}},"description":"The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway"},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"A physical postal address describes the physical location of an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else."},"roles":{"type":"array","description":"Roles this business partner takes in relation to the sharing member.","items":{"type":"string","enum":["SUPPLIER","CUSTOMER"]}},"bpn":{"type":"string","description":"A BPNA represents and uniquely identifies an address, which can be the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates). It is important to note that only the BPNL must be used to uniquely identify a legal entity. Even in the case that the BPNA represents the legal address of the legal entity, it shall not be used to uniquely identify the legal entity."}},"description":"In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA."},"externalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner."},"legalEntityExternalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner owning the site."},"bpn":{"type":"string","description":"A BPNS represents and uniquely identifies a site, which is where for example a production plant, a warehouse, or an office building is located."}},"description":"Request for creating/updating a business partner record of type site. In general, a site is a delimited geographical area in which an organization (such as an enterprise or company, university, association, etc.) conducts business. In Catena-X, a site is a type of business partner representing a physical location or area owned by a legal entity, where a production plant, a warehouse, or an office building is located. A site is owned by a legal entity. Thus, exactly one legal entity is assigned to a site. A site has exactly one main address, but it is possible to specify additional addresses (such as different gates), that belong to a site. Thus, at least one address is assigned to a site. A site can only be uploaded and modified by the owner (the legal entity), because only the owner knows which addresses belong to which site. A site is uniquely identified by the BPNS."}}}},"required":true},"responses":{"200":{"description":"Sites were successfully updated or created","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"On malformed site request"}},"method":"put","path":"/api/catena/output/sites","servers":[{"url":"http://localhost:8081","description":"Generated server url"}],"jsonRequestBodyExample":[{"nameParts":["string"],"states":[{"description":"string","validFrom":"2023-11-02","validTo":"2023-11-02","type":"ACTIVE"}],"roles":["SUPPLIER"],"mainAddress":{"nameParts":["string"],"states":[{"description":"string","validFrom":"2023-11-02","validTo":"2023-11-02","type":"ACTIVE"}],"identifiers":[{"value":"string","type":"string"}],"physicalPostalAddress":{"geographicCoordinates":{"longitude":0,"latitude":0,"altitude":0},"country":"UNDEFINED","administrativeAreaLevel1":"string","administrativeAreaLevel2":"string","administrativeAreaLevel3":"string","postalCode":"string","city":"string","district":"string","street":{"namePrefix":"string","additionalNamePrefix":"string","name":"string","nameSuffix":"string","additionalNameSuffix":"string","houseNumber":"string","milestone":"string","direction":"string"},"companyPostalCode":"string","industrialZone":"string","building":"string","floor":"string","door":"string"},"alternativePostalAddress":{"geographicCoordinates":{"longitude":0,"latitude":0,"altitude":0},"country":"UNDEFINED","administrativeAreaLevel1":"string","postalCode":"string","city":"string","deliveryServiceType":"PO_BOX","deliveryServiceQualifier":"string","deliveryServiceNumber":"string"},"roles":["SUPPLIER"],"bpn":"string"},"externalId":"string","legalEntityExternalId":"string","bpn":"string"}],"info":{"title":"Business Partner Data Management Gate","description":"A gate for a member to share business partner data with CatenaX","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Creates or updates an existing site in the output stage","description":{"content":"Create or update sites (Output). Updates instead of creating a new site if an already existing external ID is used. The same external ID may not occur more than once in a single request. For a single request, the maximum number of sites in the request is limited to 100 entries.","type":"text/plain"},"url":{"path":["api","catena","output","sites"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"PUT","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "put api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Gate Api/business-partner-data-management-gate +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Creates or updates an existing site in the output stage + + + +Create or update sites (Output). Updates instead of creating a new site if an already existing external ID is used. The same external ID may not occur more than once in a single request. For a single request, the maximum number of sites in the request is limited to 100 entries. + +
Request Body array required
    states object[]
    + +The list of the (temporary) states of the site. + +
    mainAddress object
    + +In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA. + +
    states object[]
    + +The list of (temporary) states of the address. + +
    identifiers object[]
    + +The list of identifiers of the address. + +
    physicalPostalAddress object
    + +A physical postal address describes the physical location of an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    street object
    + +The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway + +
    alternativePostalAddress object
    + +An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
+ +Sites were successfully updated or created + +
Schema
  • object
+ +On malformed site request + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/upsert-sites.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/upsert-sites.api.mdx new file mode 100644 index 00000000000..9a4f8398fc3 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Gate Api/upsert-sites.api.mdx @@ -0,0 +1,74 @@ +--- +id: upsert-sites +title: "Creates or updates an existing site in the input stage" +description: "Create or update sites. Updates instead of creating a new site if an already existing external ID is used. The same external ID may not occur more than once in a single request. For a single request, the maximum number of sites in the request is limited to 100 entries." +sidebar_label: "Creates or updates an existing site in the input stage" +hide_title: true +hide_table_of_contents: true +api: {"tags":["site-controller"],"description":"Create or update sites. Updates instead of creating a new site if an already existing external ID is used. The same external ID may not occur more than once in a single request. For a single request, the maximum number of sites in the request is limited to 100 entries.","operationId":"upsertSites","requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"nameParts":{"type":"array","description":"The list of name parts of the site to accommodate the different number of name fields in different systems. This is not according to official registers but according to the name the owner chooses.","items":{"type":"string"}},"states":{"type":"array","description":"The list of the (temporary) states of the site.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the site."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}},"description":"A site state indicates if the site is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the site is still operating."}},"roles":{"type":"array","description":"Roles this business partner takes in relation to the sharing member.","items":{"type":"string","enum":["SUPPLIER","CUSTOMER"]}},"mainAddress":{"type":"object","properties":{"nameParts":{"type":"array","description":"The list of name parts of the address to accommodate the different number of name fields in different systems. This is not according to official registers but according to the name the sharing member chooses.","items":{"type":"string"}},"states":{"type":"array","description":"The list of (temporary) states of the address.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the address."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}},"description":"An address state indicates if the address is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the business partner is still operating at that address."}},"identifiers":{"type":"array","description":"The list of identifiers of the address.","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"0847976000005\"."},"type":{"type":"string","description":"The type of the identifier."}},"description":"An address identifier (uniquely) identifies the address, such as the Global Location Number (GLN)."}},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"namePrefix":{"type":"string","description":"The street related information, which is usually printed before the official street name on an address label."},"additionalNamePrefix":{"type":"string","description":"The additional street related information, which is usually printed before the official street name on an address label."},"name":{"type":"string","description":"The name of the street."},"nameSuffix":{"type":"string","description":"The street related information, which is usually printed after the official street name on an address label."},"additionalNameSuffix":{"type":"string","description":"The additional street related information, which is usually printed after the official street name on an address label."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."}},"description":"The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway"},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"A physical postal address describes the physical location of an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else."},"roles":{"type":"array","description":"Roles this business partner takes in relation to the sharing member.","items":{"type":"string","enum":["SUPPLIER","CUSTOMER"]}}},"description":"In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA."},"externalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner."},"legalEntityExternalId":{"type":"string","description":"The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner owning the site."}},"description":"Request for creating/updating a business partner record of type site. In general, a site is a delimited geographical area in which an organization (such as an enterprise or company, university, association, etc.) conducts business. In Catena-X, a site is a type of business partner representing a physical location or area owned by a legal entity, where a production plant, a warehouse, or an office building is located. A site is owned by a legal entity. Thus, exactly one legal entity is assigned to a site. A site has exactly one main address, but it is possible to specify additional addresses (such as different gates), that belong to a site. Thus, at least one address is assigned to a site. A site can only be uploaded and modified by the owner (the legal entity), because only the owner knows which addresses belong to which site. A site is uniquely identified by the BPNS."}}}},"required":true},"responses":{"200":{"description":"Sites were successfully updated or created","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"On malformed site request"}},"method":"put","path":"/api/catena/input/sites","servers":[{"url":"http://localhost:8081","description":"Generated server url"}],"jsonRequestBodyExample":[{"nameParts":["string"],"states":[{"description":"string","validFrom":"2023-11-02","validTo":"2023-11-02","type":"ACTIVE"}],"roles":["SUPPLIER"],"mainAddress":{"nameParts":["string"],"states":[{"description":"string","validFrom":"2023-11-02","validTo":"2023-11-02","type":"ACTIVE"}],"identifiers":[{"value":"string","type":"string"}],"physicalPostalAddress":{"geographicCoordinates":{"longitude":0,"latitude":0,"altitude":0},"country":"UNDEFINED","administrativeAreaLevel1":"string","administrativeAreaLevel2":"string","administrativeAreaLevel3":"string","postalCode":"string","city":"string","district":"string","street":{"namePrefix":"string","additionalNamePrefix":"string","name":"string","nameSuffix":"string","additionalNameSuffix":"string","houseNumber":"string","milestone":"string","direction":"string"},"companyPostalCode":"string","industrialZone":"string","building":"string","floor":"string","door":"string"},"alternativePostalAddress":{"geographicCoordinates":{"longitude":0,"latitude":0,"altitude":0},"country":"UNDEFINED","administrativeAreaLevel1":"string","postalCode":"string","city":"string","deliveryServiceType":"PO_BOX","deliveryServiceQualifier":"string","deliveryServiceNumber":"string"},"roles":["SUPPLIER"]},"externalId":"string","legalEntityExternalId":"string"}],"info":{"title":"Business Partner Data Management Gate","description":"A gate for a member to share business partner data with CatenaX","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Creates or updates an existing site in the input stage","description":{"content":"Create or update sites. Updates instead of creating a new site if an already existing external ID is used. The same external ID may not occur more than once in a single request. For a single request, the maximum number of sites in the request is limited to 100 entries.","type":"text/plain"},"url":{"path":["api","catena","input","sites"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"PUT","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "put api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Gate Api/business-partner-data-management-gate +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Creates or updates an existing site in the input stage + + + +Create or update sites. Updates instead of creating a new site if an already existing external ID is used. The same external ID may not occur more than once in a single request. For a single request, the maximum number of sites in the request is limited to 100 entries. + +
Request Body array required
    states object[]
    + +The list of the (temporary) states of the site. + +
    mainAddress object
    + +In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA. + +
    states object[]
    + +The list of (temporary) states of the address. + +
    identifiers object[]
    + +The list of identifiers of the address. + +
    physicalPostalAddress object
    + +A physical postal address describes the physical location of an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    street object
    + +The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway + +
    alternativePostalAddress object
    + +An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
+ +Sites were successfully updated or created + +
Schema
  • object
+ +On malformed site request + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Local.postman_environment.json b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Local.postman_environment.json new file mode 100644 index 00000000000..9d1a33a8240 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Local.postman_environment.json @@ -0,0 +1,87 @@ +{ + "id": "6c6dd52d-bf34-496d-9d33-57802fa339d0", + "name": "Local", + "values": [ + { + "key": "Environment", + "value": "Local", + "type": "default", + "enabled": true + }, + { + "key": "Keycloak-Host", + "value": "http://localhost:8180", + "type": "default", + "enabled": true + }, + { + "key": "Pool-Client-ID", + "value": "BPDM_Client", + "type": "default", + "enabled": true + }, + { + "key": "Pool-Client-Secret", + "value": "", + "type": "secret", + "enabled": true + }, + { + "key": "Pool-Host", + "value": "http://localhost:8080", + "type": "default", + "enabled": true + }, + { + "key": "Gate-Host", + "value": "http://localhost:8081", + "type": "default", + "enabled": true + }, + { + "key": "Gate-Client-ID", + "value": "BPDM_Client", + "type": "default", + "enabled": true + }, + { + "key": "Gate-Client-Secret", + "value": "", + "type": "secret", + "enabled": true + }, + { + "key": "Bridge-Host", + "value": "http://localhost:8083", + "type": "default", + "enabled": true + }, + { + "key": "Bridge-Client-ID", + "value": "bridge-client", + "type": "default", + "enabled": true + }, + { + "key": "Bridge-Client-Secret", + "value": "", + "type": "secret", + "enabled": true + }, + { + "key": "Cleaning-Host", + "value": "http://localhost:8084", + "type": "default", + "enabled": true + }, + { + "key": "Orchestrator-Host", + "value": "http://localhost:8085", + "type": "default", + "enabled": true + } + ], + "_postman_variable_scope": "environment", + "_postman_exported_at": "2023-10-17T05:20:56.125Z", + "_postman_exported_using": "Postman/10.18.11" +} \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Orchestrator Api/business-partner-data-management-orchestrator.info.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Orchestrator Api/business-partner-data-management-orchestrator.info.mdx new file mode 100644 index 00000000000..9610d7082eb --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Orchestrator Api/business-partner-data-management-orchestrator.info.mdx @@ -0,0 +1,25 @@ +--- +id: business-partner-data-management-orchestrator +title: "Business Partner Data Management Orchestrator" +description: "Orchestrator component acts as a passive component and offers for each processing steps individual endpoints" +sidebar_label: Introduction +sidebar_position: 0 +hide_title: true +custom_edit_url: null +--- + +import ApiLogo from "@theme/ApiLogo"; +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; +import Export from "@theme/ApiDemoPanel/Export"; + +Version: 4.1.0-SNAPSHOT + +# Business Partner Data Management Orchestrator + + + +Orchestrator component acts as a passive component and offers for each processing steps individual endpoints + + + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Orchestrator Api/create-tasks.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Orchestrator Api/create-tasks.api.mdx new file mode 100644 index 00000000000..accd6c75863 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Orchestrator Api/create-tasks.api.mdx @@ -0,0 +1,114 @@ +--- +id: create-tasks +title: "Create new golden record tasks for given business partner data" +description: "Create golden record tasks for given business partner data in given mode. The mode decides through which processing steps the given business partner data will go through. The response contains the states of the created tasks in the order of given business partner data.If there is an error in the request no tasks are created (all or nothing). For a single request, the maximum number of business partners in the request is limited to 100 entries." +sidebar_label: "Create new golden record tasks for given business partner data" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Task Client"],"description":"Create golden record tasks for given business partner data in given mode. The mode decides through which processing steps the given business partner data will go through. The response contains the states of the created tasks in the order of given business partner data.If there is an error in the request no tasks are created (all or nothing). For a single request, the maximum number of business partners in the request is limited to 100 entries.","operationId":"createTasks","requestBody":{"content":{"application/json":{"schema":{"required":["mode"],"type":"object","properties":{"mode":{"type":"string","description":"The mode affecting which processing steps the business partner goes through","enum":["UpdateFromSharingMember","UpdateFromPool"]},"businessPartners":{"type":"array","description":"The list of business partner data to be processed","items":{"type":"object","properties":{"nameParts":{"type":"array","description":"The list of name parts to accommodate the different number of name fields in different systems.","items":{"type":"string"}},"shortName":{"type":"string","description":"Abbreviated name or shorthand."},"identifiers":{"type":"array","description":"The list of identifiers of the business partner. Sorted and duplicates removed by the service.","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","description":"Technical key of the type to which this identifier belongs to"},"value":{"type":"string","description":"Value of the identifier"},"issuingBody":{"type":"string","description":"Body which issued the identifier"}},"description":"Identifier record for a business partner"}},"legalName":{"type":"string"},"legalForm":{"type":"string","description":"Technical key of the legal form."},"states":{"type":"array","description":"The list of (temporary) states of the business partner. Sorted and duplicates removed by the service.","items":{"required":["type"],"type":"object","properties":{"validFrom":{"type":"string","description":"Date since when the status is/was valid.","format":"date-time"},"validTo":{"type":"string","description":"Date until the status was valid, if applicable.","format":"date-time"},"type":{"type":"string","description":"The type of this specified status.","enum":["ACTIVE","INACTIVE"]},"description":{"type":"string","description":"Denotation of the status."}},"description":"A legal entity state indicates if the legal entity is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the legal entity is still operating."}},"classifications":{"type":"array","description":"The list of classifications of the business partner, such as a specific industry. Sorted and duplicates removed by the service.","items":{"type":"object","properties":{"type":{"type":"string","description":"Type of classification.","enum":["NACE","NAF","NAICS","SIC"]},"code":{"type":"string","description":"The identifier of the class belonging to the classification."},"value":{"type":"string","description":"The name of the class belonging to the classification."}},"description":"A legal entity classification is an assignment of the legal entity to an industry. It does not necessarily have to be the only industry the company is active in (see large companies operating in different industries). Multiple assignments to several industries are possible per classification type."}},"roles":{"type":"array","description":"Roles this business partner takes in relation to the sharing member. Sorted and duplicates removed by the service.","items":{"type":"string","enum":["SUPPLIER","CUSTOMER"]}},"postalAddress":{"type":"object","properties":{"addressType":{"type":"string","description":"Type of the address","enum":["LegalAndSiteMainAddress","LegalAddress","SiteMainAddress","AdditionalAddress"]},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"name":{"type":"string","description":"The name of the street."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."},"namePrefix":{"type":"string","description":"The street related information, which is usually printed before the official street name on an address label."},"additionalNamePrefix":{"type":"string","description":"The additional street related information, which is usually printed before the official street name on an address label."},"nameSuffix":{"type":"string","description":"The street related information, which is usually printed after the official street name on an address label."},"additionalNameSuffix":{"type":"string","description":"The additional street related information, which is usually printed after the official street name on an address label."}}},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"The physical postal address of the address, such as an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"The alternative postal address of the address, for example if the goods are to be picked up somewhere else."}},"description":"Address of the official seat of this business partner."},"bpnL":{"type":"string","description":"BPNL"},"bpnS":{"type":"string","description":"BPNS"},"bpnA":{"type":"string","description":"BPNA"},"ownerBpnL":{"type":"string","description":"The BPNL of the company sharing and claiming this business partner as its own"}}}}},"description":"Request object to specify for which business partner data tasks should be created and in which mode"}}},"required":true},"responses":{"200":{"description":"The states of successfully created tasks including the task identifier for tracking purposes.","content":{"application/json":{"schema":{"type":"object","properties":{"createdTasks":{"type":"array","items":{"required":["processingState","taskId"],"type":"object","properties":{"taskId":{"type":"string"},"businessPartnerResult":{"type":"object","properties":{"nameParts":{"type":"array","description":"The list of name parts to accommodate the different number of name fields in different systems.","items":{"type":"string"}},"shortName":{"type":"string","description":"Abbreviated name or shorthand."},"identifiers":{"type":"array","description":"The list of identifiers of the business partner. Sorted and duplicates removed by the service.","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","description":"Technical key of the type to which this identifier belongs to"},"value":{"type":"string","description":"Value of the identifier"},"issuingBody":{"type":"string","description":"Body which issued the identifier"}},"description":"Identifier record for a business partner"}},"legalName":{"type":"string"},"legalForm":{"type":"string","description":"Technical key of the legal form."},"states":{"type":"array","description":"The list of (temporary) states of the business partner. Sorted and duplicates removed by the service.","items":{"required":["type"],"type":"object","properties":{"validFrom":{"type":"string","description":"Date since when the status is/was valid.","format":"date-time"},"validTo":{"type":"string","description":"Date until the status was valid, if applicable.","format":"date-time"},"type":{"type":"string","description":"The type of this specified status.","enum":["ACTIVE","INACTIVE"]},"description":{"type":"string","description":"Denotation of the status."}},"description":"A legal entity state indicates if the legal entity is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the legal entity is still operating."}},"classifications":{"type":"array","description":"The list of classifications of the business partner, such as a specific industry. Sorted and duplicates removed by the service.","items":{"type":"object","properties":{"type":{"type":"string","description":"Type of classification.","enum":["NACE","NAF","NAICS","SIC"]},"code":{"type":"string","description":"The identifier of the class belonging to the classification."},"value":{"type":"string","description":"The name of the class belonging to the classification."}},"description":"A legal entity classification is an assignment of the legal entity to an industry. It does not necessarily have to be the only industry the company is active in (see large companies operating in different industries). Multiple assignments to several industries are possible per classification type."}},"roles":{"type":"array","description":"Roles this business partner takes in relation to the sharing member. Sorted and duplicates removed by the service.","items":{"type":"string","enum":["SUPPLIER","CUSTOMER"]}},"postalAddress":{"type":"object","properties":{"addressType":{"type":"string","description":"Type of the address","enum":["LegalAndSiteMainAddress","LegalAddress","SiteMainAddress","AdditionalAddress"]},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"name":{"type":"string","description":"The name of the street."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."},"namePrefix":{"type":"string","description":"The street related information, which is usually printed before the official street name on an address label."},"additionalNamePrefix":{"type":"string","description":"The additional street related information, which is usually printed before the official street name on an address label."},"nameSuffix":{"type":"string","description":"The street related information, which is usually printed after the official street name on an address label."},"additionalNameSuffix":{"type":"string","description":"The additional street related information, which is usually printed after the official street name on an address label."}}},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"The physical postal address of the address, such as an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"The alternative postal address of the address, for example if the goods are to be picked up somewhere else."}},"description":"Address of the official seat of this business partner."},"bpnL":{"type":"string","description":"BPNL"},"bpnS":{"type":"string","description":"BPNS"},"bpnA":{"type":"string","description":"BPNA"},"ownerBpnL":{"type":"string","description":"The BPNL of the company sharing and claiming this business partner as its own"}}},"processingState":{"required":["createdAt","errors","modifiedAt","resultState","step","stepState"],"type":"object","properties":{"resultState":{"type":"string","description":"The processing result of the task, can also still be pending","enum":["Pending","Success","Error"]},"step":{"type":"string","description":"The last step this task has entered","enum":["CleanAndSync","PoolSync","Clean"]},"stepState":{"type":"string","description":"Whether the task is queued or already reserved for the latest step","enum":["Queued","Reserved","Success","Error"]},"errors":{"type":"array","description":"The actual errors that happened during processing if the task has an error result state. The errors refer to the latest step.","items":{"required":["description","type"],"type":"object","properties":{"type":{"type":"string","description":"The type of error that occurred","enum":["Timeout","Unspecified"]},"description":{"type":"string","description":"The free text, detailed description of the error"}},"description":"Describes an error that happened during processing of a task"}},"createdAt":{"type":"string","description":"When the task has been created","format":"date-time"},"modifiedAt":{"type":"string","description":"When the task has last been modified","format":"date-time"},"timeout":{"type":"string","description":"The timestamp until the task is removed from the Orchestrator","format":"date-time"}},"description":"Contains detailed information about the current processing state of a golden record task"}},"description":"The golden record task's processing state together with optional business partner data in case processing is done"}}},"description":"Response object for giving a list of created tasks"}}}},"400":{"description":"On malformed task create requests or reaching upsert limit"}},"method":"post","path":"/api/golden-record-tasks","servers":[{"url":"http://localhost:8085","description":"Generated server url"}],"jsonRequestBodyExample":{"mode":"UpdateFromSharingMember","businessPartners":[{"nameParts":["string"],"shortName":"string","identifiers":[{"type":"string","value":"string","issuingBody":"string"}],"legalName":"string","legalForm":"string","states":[{"validFrom":"2023-11-02","validTo":"2023-11-02","type":"ACTIVE","description":"string"}],"classifications":[{"type":"NACE","code":"string","value":"string"}],"roles":["SUPPLIER"],"postalAddress":{"addressType":"LegalAndSiteMainAddress","physicalPostalAddress":{"geographicCoordinates":{"longitude":0,"latitude":0,"altitude":0},"country":"UNDEFINED","administrativeAreaLevel1":"string","administrativeAreaLevel2":"string","administrativeAreaLevel3":"string","postalCode":"string","city":"string","district":"string","street":{"name":"string","houseNumber":"string","milestone":"string","direction":"string","namePrefix":"string","additionalNamePrefix":"string","nameSuffix":"string","additionalNameSuffix":"string"},"companyPostalCode":"string","industrialZone":"string","building":"string","floor":"string","door":"string"},"alternativePostalAddress":{"geographicCoordinates":{"longitude":0,"latitude":0,"altitude":0},"country":"UNDEFINED","administrativeAreaLevel1":"string","postalCode":"string","city":"string","deliveryServiceType":"PO_BOX","deliveryServiceQualifier":"string","deliveryServiceNumber":"string"}},"bpnL":"string","bpnS":"string","bpnA":"string","ownerBpnL":"string"}]},"info":{"title":"Business Partner Data Management Orchestrator","description":"Orchestrator component acts as a passive component and offers for each processing steps individual endpoints","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Create new golden record tasks for given business partner data","description":{"content":"Create golden record tasks for given business partner data in given mode. The mode decides through which processing steps the given business partner data will go through. The response contains the states of the created tasks in the order of given business partner data.If there is an error in the request no tasks are created (all or nothing). For a single request, the maximum number of business partners in the request is limited to 100 entries.","type":"text/plain"},"url":{"path":["api","golden-record-tasks"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Orchestrator Api/business-partner-data-management-orchestrator +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Create new golden record tasks for given business partner data + + + +Create golden record tasks for given business partner data in given mode. The mode decides through which processing steps the given business partner data will go through. The response contains the states of the created tasks in the order of given business partner data.If there is an error in the request no tasks are created (all or nothing). For a single request, the maximum number of business partners in the request is limited to 100 entries. + +
Request Body required
    businessPartners object[]
    + +The list of business partner data to be processed + +
    identifiers object[]
    + +The list of identifiers of the business partner. Sorted and duplicates removed by the service. + +
    states object[]
    + +The list of (temporary) states of the business partner. Sorted and duplicates removed by the service. + +
    classifications object[]
    + +The list of classifications of the business partner, such as a specific industry. Sorted and duplicates removed by the service. + +
    postalAddress object
    + +Address of the official seat of this business partner. + +
    physicalPostalAddress object
    + +The physical postal address of the address, such as an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    street object
    alternativePostalAddress object
    + +The alternative postal address of the address, for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
+ +The states of successfully created tasks including the task identifier for tracking purposes. + +
Schema
    createdTasks object[]
    businessPartnerResult object
    identifiers object[]
    + +The list of identifiers of the business partner. Sorted and duplicates removed by the service. + +
    states object[]
    + +The list of (temporary) states of the business partner. Sorted and duplicates removed by the service. + +
    classifications object[]
    + +The list of classifications of the business partner, such as a specific industry. Sorted and duplicates removed by the service. + +
    postalAddress object
    + +Address of the official seat of this business partner. + +
    physicalPostalAddress object
    + +The physical postal address of the address, such as an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    street object
    alternativePostalAddress object
    + +The alternative postal address of the address, for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    processingState object
    + +Contains detailed information about the current processing state of a golden record task + +
    errors object[]
    + +The actual errors that happened during processing if the task has an error result state. The errors refer to the latest step. + +
+ +On malformed task create requests or reaching upsert limit + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Orchestrator Api/reserve-tasks-for-step.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Orchestrator Api/reserve-tasks-for-step.api.mdx new file mode 100644 index 00000000000..b456e556c55 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Orchestrator Api/reserve-tasks-for-step.api.mdx @@ -0,0 +1,206 @@ +--- +id: reserve-tasks-for-step +title: "Reserve the next golden record tasks waiting in the given step queue" +description: "Reserve up to a given number of golden record tasks in the given step queue. The response entries contain the business partner data to process which consists of the generic and L/S/A data. The reservation has a time limit which is returned. For a single request, the maximum number of reservable tasks is limited to 100." +sidebar_label: "Reserve the next golden record tasks waiting in the given step queue" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Task Worker"],"description":"Reserve up to a given number of golden record tasks in the given step queue. The response entries contain the business partner data to process which consists of the generic and L/S/A data. The reservation has a time limit which is returned. For a single request, the maximum number of reservable tasks is limited to 100.","operationId":"reserveTasksForStep","requestBody":{"content":{"application/json":{"schema":{"required":["amount","step"],"type":"object","properties":{"amount":{"type":"integer","description":"The maximum number of tasks to reserve. Can be fewer if queue is not full enough.","format":"int32"},"step":{"type":"string","description":"The step queue to reserve from","enum":["CleanAndSync","PoolSync","Clean"]}},"description":"Request object for reserving a number of tasks waiting in a step queue."}}},"required":true},"responses":{"200":{"description":"The reserved tasks with their business partner data to process.","content":{"application/json":{"schema":{"type":"object","properties":{"reservedTasks":{"type":"array","description":"The reserved tasks with their business partner data to process","items":{"type":"object","properties":{"taskId":{"type":"string","description":"The identifier of the reserved task"},"businessPartner":{"required":["generic"],"type":"object","properties":{"generic":{"type":"object","properties":{"nameParts":{"type":"array","description":"The list of name parts to accommodate the different number of name fields in different systems.","items":{"type":"string"}},"shortName":{"type":"string","description":"Abbreviated name or shorthand."},"identifiers":{"type":"array","description":"The list of identifiers of the business partner. Sorted and duplicates removed by the service.","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","description":"Technical key of the type to which this identifier belongs to"},"value":{"type":"string","description":"Value of the identifier"},"issuingBody":{"type":"string","description":"Body which issued the identifier"}},"description":"Identifier record for a business partner"}},"legalName":{"type":"string"},"legalForm":{"type":"string","description":"Technical key of the legal form."},"states":{"type":"array","description":"The list of (temporary) states of the business partner. Sorted and duplicates removed by the service.","items":{"required":["type"],"type":"object","properties":{"validFrom":{"type":"string","description":"Date since when the status is/was valid.","format":"date-time"},"validTo":{"type":"string","description":"Date until the status was valid, if applicable.","format":"date-time"},"type":{"type":"string","description":"The type of this specified status.","enum":["ACTIVE","INACTIVE"]},"description":{"type":"string","description":"Denotation of the status."}},"description":"A legal entity state indicates if the legal entity is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the legal entity is still operating."}},"classifications":{"type":"array","description":"The list of classifications of the business partner, such as a specific industry. Sorted and duplicates removed by the service.","items":{"type":"object","properties":{"type":{"type":"string","description":"Type of classification.","enum":["NACE","NAF","NAICS","SIC"]},"code":{"type":"string","description":"The identifier of the class belonging to the classification."},"value":{"type":"string","description":"The name of the class belonging to the classification."}},"description":"A legal entity classification is an assignment of the legal entity to an industry. It does not necessarily have to be the only industry the company is active in (see large companies operating in different industries). Multiple assignments to several industries are possible per classification type."}},"roles":{"type":"array","description":"Roles this business partner takes in relation to the sharing member. Sorted and duplicates removed by the service.","items":{"type":"string","enum":["SUPPLIER","CUSTOMER"]}},"postalAddress":{"type":"object","properties":{"addressType":{"type":"string","description":"Type of the address","enum":["LegalAndSiteMainAddress","LegalAddress","SiteMainAddress","AdditionalAddress"]},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"name":{"type":"string","description":"The name of the street."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."},"namePrefix":{"type":"string","description":"The street related information, which is usually printed before the official street name on an address label."},"additionalNamePrefix":{"type":"string","description":"The additional street related information, which is usually printed before the official street name on an address label."},"nameSuffix":{"type":"string","description":"The street related information, which is usually printed after the official street name on an address label."},"additionalNameSuffix":{"type":"string","description":"The additional street related information, which is usually printed after the official street name on an address label."}}},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"The physical postal address of the address, such as an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"The alternative postal address of the address, for example if the goods are to be picked up somewhere else."}},"description":"Address of the official seat of this business partner."},"bpnL":{"type":"string","description":"BPNL"},"bpnS":{"type":"string","description":"BPNS"},"bpnA":{"type":"string","description":"BPNA"},"ownerBpnL":{"type":"string","description":"The BPNL of the company sharing and claiming this business partner as its own"}}},"legalEntity":{"type":"object","properties":{"bpnLReference":{"type":"object","properties":{"referenceValue":{"type":"string","description":"The value by which the BPN is referenced"},"referenceType":{"type":"string","description":"The type by which to reference the BPN with","enum":["Bpn","BpnRequestIdentifier"]}},"description":"A reference to the BPN of a business partner. Either by the BPN value itself or a BPN request identifier"},"hasChanged":{"type":"boolean","description":"Whether this legal entity data is different from its golden record counterpart in the Pool"},"legalName":{"type":"string","description":"The name of the legal entity according to official registers."},"legalShortName":{"type":"string","description":"The abbreviated name of the legal entity."},"identifiers":{"type":"array","description":"The list of identifiers of the legal entity.","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"DE123465789\"."},"type":{"type":"string","description":"The type of the identifier."},"issuingBody":{"type":"string","description":"The name of the official register, where the identifier is registered. For example, a Handelsregisternummer in Germany is only valid with its corresponding Handelsregister."}}}},"legalForm":{"type":"string","description":"The legal form of the legal entity."},"states":{"type":"array","description":"The list of (temporary) states of the legal entity.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the legal entity, such as from the German Handelsregister."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}}}},"classifications":{"type":"array","description":"The list of classifications of the legal entity, such as a specific industry.","items":{"type":"object","properties":{"type":{"type":"string","description":"Type of classification.","enum":["NACE","NAF","NAICS","SIC"]},"code":{"type":"string","description":"The identifier of the class belonging to the classification."},"value":{"type":"string","description":"The name of the class belonging to the classification."}},"description":"A legal entity classification is an assignment of the legal entity to an industry. It does not necessarily have to be the only industry the company is active in (see large companies operating in different industries). Multiple assignments to several industries are possible per classification type."}},"legalAddress":{"type":"object","properties":{"bpnAReference":{"type":"object","properties":{"referenceValue":{"type":"string","description":"The value by which the BPN is referenced"},"referenceType":{"type":"string","description":"The type by which to reference the BPN with","enum":["Bpn","BpnRequestIdentifier"]}},"description":"A reference to the BPN of a business partner. Either by the BPN value itself or a BPN request identifier"},"hasChanged":{"type":"boolean","description":"Whether this address data is different from its golden record counterpart in the Pool"},"name":{"type":"string","description":"The name of the address. This is not according to official registers but according to the name the sharing member chooses."},"states":{"type":"array","description":"The list of (temporary) states of the address.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the address."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}}}},"identifiers":{"type":"array","description":"The list of identifiers of the address.","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"0847976000005\"."},"type":{"type":"string","description":"The type of the identifier."}}}},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"name":{"type":"string","description":"The name of the street."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."},"namePrefix":{"type":"string","description":"The street related information, which is usually printed before the official street name on an address label."},"additionalNamePrefix":{"type":"string","description":"The additional street related information, which is usually printed before the official street name on an address label."},"nameSuffix":{"type":"string","description":"The street related information, which is usually printed after the official street name on an address label."},"additionalNameSuffix":{"type":"string","description":"The additional street related information, which is usually printed after the official street name on an address label."}}},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"The physical postal address of the address, such as an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"The alternative postal address of the address, for example if the goods are to be picked up somewhere else."}},"description":"The address part of this business partner data"}},"description":"The legal entity part of this business partner data"},"site":{"type":"object","properties":{"bpnSReference":{"type":"object","properties":{"referenceValue":{"type":"string","description":"The value by which the BPN is referenced"},"referenceType":{"type":"string","description":"The type by which to reference the BPN with","enum":["Bpn","BpnRequestIdentifier"]}},"description":"A reference to the BPN of a business partner. Either by the BPN value itself or a BPN request identifier"},"hasChanged":{"type":"boolean","description":"Whether this site data is different from its golden record counterpart in the Pool"},"name":{"type":"string","description":"The name of the site. This is not according to official registers but according to the name the owner chooses."},"states":{"type":"array","description":"The list of the (temporary) states of the site.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the site."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}}}},"mainAddress":{"type":"object","properties":{"bpnAReference":{"type":"object","properties":{"referenceValue":{"type":"string","description":"The value by which the BPN is referenced"},"referenceType":{"type":"string","description":"The type by which to reference the BPN with","enum":["Bpn","BpnRequestIdentifier"]}},"description":"A reference to the BPN of a business partner. Either by the BPN value itself or a BPN request identifier"},"hasChanged":{"type":"boolean","description":"Whether this address data is different from its golden record counterpart in the Pool"},"name":{"type":"string","description":"The name of the address. This is not according to official registers but according to the name the sharing member chooses."},"states":{"type":"array","description":"The list of (temporary) states of the address.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the address."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}}}},"identifiers":{"type":"array","description":"The list of identifiers of the address.","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"0847976000005\"."},"type":{"type":"string","description":"The type of the identifier."}}}},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"name":{"type":"string","description":"The name of the street."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."},"namePrefix":{"type":"string","description":"The street related information, which is usually printed before the official street name on an address label."},"additionalNamePrefix":{"type":"string","description":"The additional street related information, which is usually printed before the official street name on an address label."},"nameSuffix":{"type":"string","description":"The street related information, which is usually printed after the official street name on an address label."},"additionalNameSuffix":{"type":"string","description":"The additional street related information, which is usually printed after the official street name on an address label."}}},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"The physical postal address of the address, such as an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"The alternative postal address of the address, for example if the goods are to be picked up somewhere else."}},"description":"The address part of this business partner data"}},"description":"The site part of this business partner data"},"address":{"type":"object","properties":{"bpnAReference":{"type":"object","properties":{"referenceValue":{"type":"string","description":"The value by which the BPN is referenced"},"referenceType":{"type":"string","description":"The type by which to reference the BPN with","enum":["Bpn","BpnRequestIdentifier"]}},"description":"A reference to the BPN of a business partner. Either by the BPN value itself or a BPN request identifier"},"hasChanged":{"type":"boolean","description":"Whether this address data is different from its golden record counterpart in the Pool"},"name":{"type":"string","description":"The name of the address. This is not according to official registers but according to the name the sharing member chooses."},"states":{"type":"array","description":"The list of (temporary) states of the address.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the address."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}}}},"identifiers":{"type":"array","description":"The list of identifiers of the address.","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"0847976000005\"."},"type":{"type":"string","description":"The type of the identifier."}}}},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"name":{"type":"string","description":"The name of the street."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."},"namePrefix":{"type":"string","description":"The street related information, which is usually printed before the official street name on an address label."},"additionalNamePrefix":{"type":"string","description":"The additional street related information, which is usually printed before the official street name on an address label."},"nameSuffix":{"type":"string","description":"The street related information, which is usually printed after the official street name on an address label."},"additionalNameSuffix":{"type":"string","description":"The additional street related information, which is usually printed after the official street name on an address label."}}},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"The physical postal address of the address, such as an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"The alternative postal address of the address, for example if the goods are to be picked up somewhere else."}},"description":"The address part of this business partner data"}},"description":"Business partner data in full representation, consisting of generic data as well as its L/S/A representation."}},"description":"Task reservation entry"}},"timeout":{"type":"string","description":"The timestamp until the reservation is valid and results are accepted","format":"date-time"}},"description":"Response object for giving a list of reserved tasks"}}}},"400":{"description":"On malformed task create requests or reaching upsert limit"}},"method":"post","path":"/api/golden-record-tasks/step-reservations","servers":[{"url":"http://localhost:8085","description":"Generated server url"}],"jsonRequestBodyExample":{"amount":0,"step":"CleanAndSync"},"info":{"title":"Business Partner Data Management Orchestrator","description":"Orchestrator component acts as a passive component and offers for each processing steps individual endpoints","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Reserve the next golden record tasks waiting in the given step queue","description":{"content":"Reserve up to a given number of golden record tasks in the given step queue. The response entries contain the business partner data to process which consists of the generic and L/S/A data. The reservation has a time limit which is returned. For a single request, the maximum number of reservable tasks is limited to 100.","type":"text/plain"},"url":{"path":["api","golden-record-tasks","step-reservations"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Orchestrator Api/business-partner-data-management-orchestrator +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Reserve the next golden record tasks waiting in the given step queue + + + +Reserve up to a given number of golden record tasks in the given step queue. The response entries contain the business partner data to process which consists of the generic and L/S/A data. The reservation has a time limit which is returned. For a single request, the maximum number of reservable tasks is limited to 100. + +
Request Body required
+ +The reserved tasks with their business partner data to process. + +
Schema
    reservedTasks object[]
    + +The reserved tasks with their business partner data to process + +
    businessPartner object
    + +Business partner data in full representation, consisting of generic data as well as its L/S/A representation. + +
    generic object
    identifiers object[]
    + +The list of identifiers of the business partner. Sorted and duplicates removed by the service. + +
    states object[]
    + +The list of (temporary) states of the business partner. Sorted and duplicates removed by the service. + +
    classifications object[]
    + +The list of classifications of the business partner, such as a specific industry. Sorted and duplicates removed by the service. + +
    postalAddress object
    + +Address of the official seat of this business partner. + +
    physicalPostalAddress object
    + +The physical postal address of the address, such as an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    street object
    alternativePostalAddress object
    + +The alternative postal address of the address, for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    legalEntity object
    + +The legal entity part of this business partner data + +
    bpnLReference object
    + +A reference to the BPN of a business partner. Either by the BPN value itself or a BPN request identifier + +
    identifiers object[]
    + +The list of identifiers of the legal entity. + +
    states object[]
    + +The list of (temporary) states of the legal entity. + +
    classifications object[]
    + +The list of classifications of the legal entity, such as a specific industry. + +
    legalAddress object
    + +The address part of this business partner data + +
    bpnAReference object
    + +A reference to the BPN of a business partner. Either by the BPN value itself or a BPN request identifier + +
    states object[]
    + +The list of (temporary) states of the address. + +
    identifiers object[]
    + +The list of identifiers of the address. + +
    physicalPostalAddress object
    + +The physical postal address of the address, such as an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    street object
    alternativePostalAddress object
    + +The alternative postal address of the address, for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    site object
    + +The site part of this business partner data + +
    bpnSReference object
    + +A reference to the BPN of a business partner. Either by the BPN value itself or a BPN request identifier + +
    states object[]
    + +The list of the (temporary) states of the site. + +
    mainAddress object
    + +The address part of this business partner data + +
    bpnAReference object
    + +A reference to the BPN of a business partner. Either by the BPN value itself or a BPN request identifier + +
    states object[]
    + +The list of (temporary) states of the address. + +
    identifiers object[]
    + +The list of identifiers of the address. + +
    physicalPostalAddress object
    + +The physical postal address of the address, such as an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    street object
    alternativePostalAddress object
    + +The alternative postal address of the address, for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    address object
    + +The address part of this business partner data + +
    bpnAReference object
    + +A reference to the BPN of a business partner. Either by the BPN value itself or a BPN request identifier + +
    states object[]
    + +The list of (temporary) states of the address. + +
    identifiers object[]
    + +The list of identifiers of the address. + +
    physicalPostalAddress object
    + +The physical postal address of the address, such as an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    street object
    alternativePostalAddress object
    + +The alternative postal address of the address, for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
+ +On malformed task create requests or reaching upsert limit + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Orchestrator Api/resolve-step-results.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Orchestrator Api/resolve-step-results.api.mdx new file mode 100644 index 00000000000..3a8611bc652 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Orchestrator Api/resolve-step-results.api.mdx @@ -0,0 +1,206 @@ +--- +id: resolve-step-results +title: "Post step results for reserved golden record tasks in the given step queue" +description: "Post business partner step results for the given tasks in the given step queue. In order to post a result for a task it needs to be reserved first, has to currently be in the given step queue and the time limit is not exceeded. The number of results you can post at a time does not need to match the original number of reserved tasks. Results are accepted via strategy 'all or nothing'. For a single request, the maximum number of postable results is limited to 100." +sidebar_label: "Post step results for reserved golden record tasks in the given step queue" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Task Worker"],"description":"Post business partner step results for the given tasks in the given step queue. In order to post a result for a task it needs to be reserved first, has to currently be in the given step queue and the time limit is not exceeded. The number of results you can post at a time does not need to match the original number of reserved tasks. Results are accepted via strategy 'all or nothing'. For a single request, the maximum number of postable results is limited to 100.","operationId":"resolveStepResults","requestBody":{"content":{"application/json":{"schema":{"required":["step"],"type":"object","properties":{"step":{"type":"string","description":"The step queue containing the tasks for which results are posted","enum":["CleanAndSync","PoolSync","Clean"]},"results":{"type":"array","items":{"required":["taskId"],"type":"object","properties":{"taskId":{"type":"string","description":"The identifier of the task for which this is a result"},"businessPartner":{"required":["generic"],"type":"object","properties":{"generic":{"type":"object","properties":{"nameParts":{"type":"array","description":"The list of name parts to accommodate the different number of name fields in different systems.","items":{"type":"string"}},"shortName":{"type":"string","description":"Abbreviated name or shorthand."},"identifiers":{"type":"array","description":"The list of identifiers of the business partner. Sorted and duplicates removed by the service.","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","description":"Technical key of the type to which this identifier belongs to"},"value":{"type":"string","description":"Value of the identifier"},"issuingBody":{"type":"string","description":"Body which issued the identifier"}},"description":"Identifier record for a business partner"}},"legalName":{"type":"string"},"legalForm":{"type":"string","description":"Technical key of the legal form."},"states":{"type":"array","description":"The list of (temporary) states of the business partner. Sorted and duplicates removed by the service.","items":{"required":["type"],"type":"object","properties":{"validFrom":{"type":"string","description":"Date since when the status is/was valid.","format":"date-time"},"validTo":{"type":"string","description":"Date until the status was valid, if applicable.","format":"date-time"},"type":{"type":"string","description":"The type of this specified status.","enum":["ACTIVE","INACTIVE"]},"description":{"type":"string","description":"Denotation of the status."}},"description":"A legal entity state indicates if the legal entity is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the legal entity is still operating."}},"classifications":{"type":"array","description":"The list of classifications of the business partner, such as a specific industry. Sorted and duplicates removed by the service.","items":{"type":"object","properties":{"type":{"type":"string","description":"Type of classification.","enum":["NACE","NAF","NAICS","SIC"]},"code":{"type":"string","description":"The identifier of the class belonging to the classification."},"value":{"type":"string","description":"The name of the class belonging to the classification."}},"description":"A legal entity classification is an assignment of the legal entity to an industry. It does not necessarily have to be the only industry the company is active in (see large companies operating in different industries). Multiple assignments to several industries are possible per classification type."}},"roles":{"type":"array","description":"Roles this business partner takes in relation to the sharing member. Sorted and duplicates removed by the service.","items":{"type":"string","enum":["SUPPLIER","CUSTOMER"]}},"postalAddress":{"type":"object","properties":{"addressType":{"type":"string","description":"Type of the address","enum":["LegalAndSiteMainAddress","LegalAddress","SiteMainAddress","AdditionalAddress"]},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"name":{"type":"string","description":"The name of the street."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."},"namePrefix":{"type":"string","description":"The street related information, which is usually printed before the official street name on an address label."},"additionalNamePrefix":{"type":"string","description":"The additional street related information, which is usually printed before the official street name on an address label."},"nameSuffix":{"type":"string","description":"The street related information, which is usually printed after the official street name on an address label."},"additionalNameSuffix":{"type":"string","description":"The additional street related information, which is usually printed after the official street name on an address label."}}},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"The physical postal address of the address, such as an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"The alternative postal address of the address, for example if the goods are to be picked up somewhere else."}},"description":"Address of the official seat of this business partner."},"bpnL":{"type":"string","description":"BPNL"},"bpnS":{"type":"string","description":"BPNS"},"bpnA":{"type":"string","description":"BPNA"},"ownerBpnL":{"type":"string","description":"The BPNL of the company sharing and claiming this business partner as its own"}}},"legalEntity":{"type":"object","properties":{"bpnLReference":{"type":"object","properties":{"referenceValue":{"type":"string","description":"The value by which the BPN is referenced"},"referenceType":{"type":"string","description":"The type by which to reference the BPN with","enum":["Bpn","BpnRequestIdentifier"]}},"description":"A reference to the BPN of a business partner. Either by the BPN value itself or a BPN request identifier"},"hasChanged":{"type":"boolean","description":"Whether this legal entity data is different from its golden record counterpart in the Pool"},"legalName":{"type":"string","description":"The name of the legal entity according to official registers."},"legalShortName":{"type":"string","description":"The abbreviated name of the legal entity."},"identifiers":{"type":"array","description":"The list of identifiers of the legal entity.","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"DE123465789\"."},"type":{"type":"string","description":"The type of the identifier."},"issuingBody":{"type":"string","description":"The name of the official register, where the identifier is registered. For example, a Handelsregisternummer in Germany is only valid with its corresponding Handelsregister."}}}},"legalForm":{"type":"string","description":"The legal form of the legal entity."},"states":{"type":"array","description":"The list of (temporary) states of the legal entity.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the legal entity, such as from the German Handelsregister."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}}}},"classifications":{"type":"array","description":"The list of classifications of the legal entity, such as a specific industry.","items":{"type":"object","properties":{"type":{"type":"string","description":"Type of classification.","enum":["NACE","NAF","NAICS","SIC"]},"code":{"type":"string","description":"The identifier of the class belonging to the classification."},"value":{"type":"string","description":"The name of the class belonging to the classification."}},"description":"A legal entity classification is an assignment of the legal entity to an industry. It does not necessarily have to be the only industry the company is active in (see large companies operating in different industries). Multiple assignments to several industries are possible per classification type."}},"legalAddress":{"type":"object","properties":{"bpnAReference":{"type":"object","properties":{"referenceValue":{"type":"string","description":"The value by which the BPN is referenced"},"referenceType":{"type":"string","description":"The type by which to reference the BPN with","enum":["Bpn","BpnRequestIdentifier"]}},"description":"A reference to the BPN of a business partner. Either by the BPN value itself or a BPN request identifier"},"hasChanged":{"type":"boolean","description":"Whether this address data is different from its golden record counterpart in the Pool"},"name":{"type":"string","description":"The name of the address. This is not according to official registers but according to the name the sharing member chooses."},"states":{"type":"array","description":"The list of (temporary) states of the address.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the address."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}}}},"identifiers":{"type":"array","description":"The list of identifiers of the address.","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"0847976000005\"."},"type":{"type":"string","description":"The type of the identifier."}}}},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"name":{"type":"string","description":"The name of the street."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."},"namePrefix":{"type":"string","description":"The street related information, which is usually printed before the official street name on an address label."},"additionalNamePrefix":{"type":"string","description":"The additional street related information, which is usually printed before the official street name on an address label."},"nameSuffix":{"type":"string","description":"The street related information, which is usually printed after the official street name on an address label."},"additionalNameSuffix":{"type":"string","description":"The additional street related information, which is usually printed after the official street name on an address label."}}},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"The physical postal address of the address, such as an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"The alternative postal address of the address, for example if the goods are to be picked up somewhere else."}},"description":"The address part of this business partner data"}},"description":"The legal entity part of this business partner data"},"site":{"type":"object","properties":{"bpnSReference":{"type":"object","properties":{"referenceValue":{"type":"string","description":"The value by which the BPN is referenced"},"referenceType":{"type":"string","description":"The type by which to reference the BPN with","enum":["Bpn","BpnRequestIdentifier"]}},"description":"A reference to the BPN of a business partner. Either by the BPN value itself or a BPN request identifier"},"hasChanged":{"type":"boolean","description":"Whether this site data is different from its golden record counterpart in the Pool"},"name":{"type":"string","description":"The name of the site. This is not according to official registers but according to the name the owner chooses."},"states":{"type":"array","description":"The list of the (temporary) states of the site.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the site."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}}}},"mainAddress":{"type":"object","properties":{"bpnAReference":{"type":"object","properties":{"referenceValue":{"type":"string","description":"The value by which the BPN is referenced"},"referenceType":{"type":"string","description":"The type by which to reference the BPN with","enum":["Bpn","BpnRequestIdentifier"]}},"description":"A reference to the BPN of a business partner. Either by the BPN value itself or a BPN request identifier"},"hasChanged":{"type":"boolean","description":"Whether this address data is different from its golden record counterpart in the Pool"},"name":{"type":"string","description":"The name of the address. This is not according to official registers but according to the name the sharing member chooses."},"states":{"type":"array","description":"The list of (temporary) states of the address.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the address."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}}}},"identifiers":{"type":"array","description":"The list of identifiers of the address.","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"0847976000005\"."},"type":{"type":"string","description":"The type of the identifier."}}}},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"name":{"type":"string","description":"The name of the street."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."},"namePrefix":{"type":"string","description":"The street related information, which is usually printed before the official street name on an address label."},"additionalNamePrefix":{"type":"string","description":"The additional street related information, which is usually printed before the official street name on an address label."},"nameSuffix":{"type":"string","description":"The street related information, which is usually printed after the official street name on an address label."},"additionalNameSuffix":{"type":"string","description":"The additional street related information, which is usually printed after the official street name on an address label."}}},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"The physical postal address of the address, such as an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"The alternative postal address of the address, for example if the goods are to be picked up somewhere else."}},"description":"The address part of this business partner data"}},"description":"The site part of this business partner data"},"address":{"type":"object","properties":{"bpnAReference":{"type":"object","properties":{"referenceValue":{"type":"string","description":"The value by which the BPN is referenced"},"referenceType":{"type":"string","description":"The type by which to reference the BPN with","enum":["Bpn","BpnRequestIdentifier"]}},"description":"A reference to the BPN of a business partner. Either by the BPN value itself or a BPN request identifier"},"hasChanged":{"type":"boolean","description":"Whether this address data is different from its golden record counterpart in the Pool"},"name":{"type":"string","description":"The name of the address. This is not according to official registers but according to the name the sharing member chooses."},"states":{"type":"array","description":"The list of (temporary) states of the address.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the address."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}}}},"identifiers":{"type":"array","description":"The list of identifiers of the address.","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"0847976000005\"."},"type":{"type":"string","description":"The type of the identifier."}}}},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"name":{"type":"string","description":"The name of the street."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."},"namePrefix":{"type":"string","description":"The street related information, which is usually printed before the official street name on an address label."},"additionalNamePrefix":{"type":"string","description":"The additional street related information, which is usually printed before the official street name on an address label."},"nameSuffix":{"type":"string","description":"The street related information, which is usually printed after the official street name on an address label."},"additionalNameSuffix":{"type":"string","description":"The additional street related information, which is usually printed after the official street name on an address label."}}},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"The physical postal address of the address, such as an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"The alternative postal address of the address, for example if the goods are to be picked up somewhere else."}},"description":"The address part of this business partner data"}},"description":"Business partner data in full representation, consisting of generic data as well as its L/S/A representation."},"errors":{"type":"array","description":"Errors that occurred during processing of this task","items":{"required":["description","type"],"type":"object","properties":{"type":{"type":"string","description":"The type of error that occurred","enum":["Timeout","Unspecified"]},"description":{"type":"string","description":"The free text, detailed description of the error"}},"description":"Describes an error that happened during processing of a task"}}},"description":"A step result for a golden record task"}}},"description":"Request object for posting step results of previously reserved tasks"}}},"required":true},"responses":{"204":{"description":"If the results could be processed"},"400":{"description":"On malformed requests, reaching upsert limit or posting results for tasks which are missing or in the wrong step queue"}},"method":"post","path":"/api/golden-record-tasks/step-results","servers":[{"url":"http://localhost:8085","description":"Generated server url"}],"jsonRequestBodyExample":{"step":"CleanAndSync","results":[{"taskId":"string","businessPartner":{"generic":{"nameParts":["string"],"shortName":"string","identifiers":[{"type":"string","value":"string","issuingBody":"string"}],"legalName":"string","legalForm":"string","states":[{"validFrom":"2023-11-02","validTo":"2023-11-02","type":"ACTIVE","description":"string"}],"classifications":[{"type":"NACE","code":"string","value":"string"}],"roles":["SUPPLIER"],"postalAddress":{"addressType":"LegalAndSiteMainAddress","physicalPostalAddress":{"geographicCoordinates":{"longitude":0,"latitude":0,"altitude":0},"country":"UNDEFINED","administrativeAreaLevel1":"string","administrativeAreaLevel2":"string","administrativeAreaLevel3":"string","postalCode":"string","city":"string","district":"string","street":{"name":"string","houseNumber":"string","milestone":"string","direction":"string","namePrefix":"string","additionalNamePrefix":"string","nameSuffix":"string","additionalNameSuffix":"string"},"companyPostalCode":"string","industrialZone":"string","building":"string","floor":"string","door":"string"},"alternativePostalAddress":{"geographicCoordinates":{"longitude":0,"latitude":0,"altitude":0},"country":"UNDEFINED","administrativeAreaLevel1":"string","postalCode":"string","city":"string","deliveryServiceType":"PO_BOX","deliveryServiceQualifier":"string","deliveryServiceNumber":"string"}},"bpnL":"string","bpnS":"string","bpnA":"string","ownerBpnL":"string"},"legalEntity":{"bpnLReference":{"referenceValue":"string","referenceType":"Bpn"},"hasChanged":true,"legalName":"string","legalShortName":"string","identifiers":[{"value":"string","type":"string","issuingBody":"string"}],"legalForm":"string","states":[{"description":"string","validFrom":"2023-11-02","validTo":"2023-11-02","type":"ACTIVE"}],"classifications":[{"type":"NACE","code":"string","value":"string"}],"legalAddress":{"bpnAReference":{"referenceValue":"string","referenceType":"Bpn"},"hasChanged":true,"name":"string","states":[{"description":"string","validFrom":"2023-11-02","validTo":"2023-11-02","type":"ACTIVE"}],"identifiers":[{"value":"string","type":"string"}],"physicalPostalAddress":{"geographicCoordinates":{"longitude":0,"latitude":0,"altitude":0},"country":"UNDEFINED","administrativeAreaLevel1":"string","administrativeAreaLevel2":"string","administrativeAreaLevel3":"string","postalCode":"string","city":"string","district":"string","street":{"name":"string","houseNumber":"string","milestone":"string","direction":"string","namePrefix":"string","additionalNamePrefix":"string","nameSuffix":"string","additionalNameSuffix":"string"},"companyPostalCode":"string","industrialZone":"string","building":"string","floor":"string","door":"string"},"alternativePostalAddress":{"geographicCoordinates":{"longitude":0,"latitude":0,"altitude":0},"country":"UNDEFINED","administrativeAreaLevel1":"string","postalCode":"string","city":"string","deliveryServiceType":"PO_BOX","deliveryServiceQualifier":"string","deliveryServiceNumber":"string"}}},"site":{"bpnSReference":{"referenceValue":"string","referenceType":"Bpn"},"hasChanged":true,"name":"string","states":[{"description":"string","validFrom":"2023-11-02","validTo":"2023-11-02","type":"ACTIVE"}],"mainAddress":{"bpnAReference":{"referenceValue":"string","referenceType":"Bpn"},"hasChanged":true,"name":"string","states":[{"description":"string","validFrom":"2023-11-02","validTo":"2023-11-02","type":"ACTIVE"}],"identifiers":[{"value":"string","type":"string"}],"physicalPostalAddress":{"geographicCoordinates":{"longitude":0,"latitude":0,"altitude":0},"country":"UNDEFINED","administrativeAreaLevel1":"string","administrativeAreaLevel2":"string","administrativeAreaLevel3":"string","postalCode":"string","city":"string","district":"string","street":{"name":"string","houseNumber":"string","milestone":"string","direction":"string","namePrefix":"string","additionalNamePrefix":"string","nameSuffix":"string","additionalNameSuffix":"string"},"companyPostalCode":"string","industrialZone":"string","building":"string","floor":"string","door":"string"},"alternativePostalAddress":{"geographicCoordinates":{"longitude":0,"latitude":0,"altitude":0},"country":"UNDEFINED","administrativeAreaLevel1":"string","postalCode":"string","city":"string","deliveryServiceType":"PO_BOX","deliveryServiceQualifier":"string","deliveryServiceNumber":"string"}}},"address":{"bpnAReference":{"referenceValue":"string","referenceType":"Bpn"},"hasChanged":true,"name":"string","states":[{"description":"string","validFrom":"2023-11-02","validTo":"2023-11-02","type":"ACTIVE"}],"identifiers":[{"value":"string","type":"string"}],"physicalPostalAddress":{"geographicCoordinates":{"longitude":0,"latitude":0,"altitude":0},"country":"UNDEFINED","administrativeAreaLevel1":"string","administrativeAreaLevel2":"string","administrativeAreaLevel3":"string","postalCode":"string","city":"string","district":"string","street":{"name":"string","houseNumber":"string","milestone":"string","direction":"string","namePrefix":"string","additionalNamePrefix":"string","nameSuffix":"string","additionalNameSuffix":"string"},"companyPostalCode":"string","industrialZone":"string","building":"string","floor":"string","door":"string"},"alternativePostalAddress":{"geographicCoordinates":{"longitude":0,"latitude":0,"altitude":0},"country":"UNDEFINED","administrativeAreaLevel1":"string","postalCode":"string","city":"string","deliveryServiceType":"PO_BOX","deliveryServiceQualifier":"string","deliveryServiceNumber":"string"}}},"errors":[{"type":"Timeout","description":"string"}]}]},"info":{"title":"Business Partner Data Management Orchestrator","description":"Orchestrator component acts as a passive component and offers for each processing steps individual endpoints","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Post step results for reserved golden record tasks in the given step queue","description":{"content":"Post business partner step results for the given tasks in the given step queue. In order to post a result for a task it needs to be reserved first, has to currently be in the given step queue and the time limit is not exceeded. The number of results you can post at a time does not need to match the original number of reserved tasks. Results are accepted via strategy 'all or nothing'. For a single request, the maximum number of postable results is limited to 100.","type":"text/plain"},"url":{"path":["api","golden-record-tasks","step-results"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Orchestrator Api/business-partner-data-management-orchestrator +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Post step results for reserved golden record tasks in the given step queue + + + +Post business partner step results for the given tasks in the given step queue. In order to post a result for a task it needs to be reserved first, has to currently be in the given step queue and the time limit is not exceeded. The number of results you can post at a time does not need to match the original number of reserved tasks. Results are accepted via strategy 'all or nothing'. For a single request, the maximum number of postable results is limited to 100. + +
Request Body required
    results object[]
    businessPartner object
    + +Business partner data in full representation, consisting of generic data as well as its L/S/A representation. + +
    generic object required
    identifiers object[]
    + +The list of identifiers of the business partner. Sorted and duplicates removed by the service. + +
    states object[]
    + +The list of (temporary) states of the business partner. Sorted and duplicates removed by the service. + +
    classifications object[]
    + +The list of classifications of the business partner, such as a specific industry. Sorted and duplicates removed by the service. + +
    postalAddress object
    + +Address of the official seat of this business partner. + +
    physicalPostalAddress object
    + +The physical postal address of the address, such as an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    street object
    alternativePostalAddress object
    + +The alternative postal address of the address, for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    legalEntity object
    + +The legal entity part of this business partner data + +
    bpnLReference object
    + +A reference to the BPN of a business partner. Either by the BPN value itself or a BPN request identifier + +
    identifiers object[]
    + +The list of identifiers of the legal entity. + +
    states object[]
    + +The list of (temporary) states of the legal entity. + +
    classifications object[]
    + +The list of classifications of the legal entity, such as a specific industry. + +
    legalAddress object
    + +The address part of this business partner data + +
    bpnAReference object
    + +A reference to the BPN of a business partner. Either by the BPN value itself or a BPN request identifier + +
    states object[]
    + +The list of (temporary) states of the address. + +
    identifiers object[]
    + +The list of identifiers of the address. + +
    physicalPostalAddress object
    + +The physical postal address of the address, such as an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    street object
    alternativePostalAddress object
    + +The alternative postal address of the address, for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    site object
    + +The site part of this business partner data + +
    bpnSReference object
    + +A reference to the BPN of a business partner. Either by the BPN value itself or a BPN request identifier + +
    states object[]
    + +The list of the (temporary) states of the site. + +
    mainAddress object
    + +The address part of this business partner data + +
    bpnAReference object
    + +A reference to the BPN of a business partner. Either by the BPN value itself or a BPN request identifier + +
    states object[]
    + +The list of (temporary) states of the address. + +
    identifiers object[]
    + +The list of identifiers of the address. + +
    physicalPostalAddress object
    + +The physical postal address of the address, such as an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    street object
    alternativePostalAddress object
    + +The alternative postal address of the address, for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    address object
    + +The address part of this business partner data + +
    bpnAReference object
    + +A reference to the BPN of a business partner. Either by the BPN value itself or a BPN request identifier + +
    states object[]
    + +The list of (temporary) states of the address. + +
    identifiers object[]
    + +The list of identifiers of the address. + +
    physicalPostalAddress object
    + +The physical postal address of the address, such as an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    street object
    alternativePostalAddress object
    + +The alternative postal address of the address, for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    errors object[]
    + +Errors that occurred during processing of this task + +
+ +If the results could be processed + +
+ +On malformed requests, reaching upsert limit or posting results for tasks which are missing or in the wrong step queue + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Orchestrator Api/search-task-states.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Orchestrator Api/search-task-states.api.mdx new file mode 100644 index 00000000000..fe35e5a4dec --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Orchestrator Api/search-task-states.api.mdx @@ -0,0 +1,78 @@ +--- +id: search-task-states +title: "Search for the state of golden record tasks by task identifiers" +description: "Returns the state of golden record tasks based on the provided task identifiers. Unknown task identifiers are ignored." +sidebar_label: "Search for the state of golden record tasks by task identifiers" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Task Client"],"description":"Returns the state of golden record tasks based on the provided task identifiers. Unknown task identifiers are ignored.","operationId":"searchTaskStates","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"taskIds":{"type":"array","items":{"type":"string"}}},"description":"Request object for giving a list of task identifiers to search for the state of tasks"}}},"required":true},"responses":{"200":{"description":"The state of the tasks for the provided task identifiers.","content":{"application/json":{"schema":{"type":"object","properties":{"tasks":{"type":"array","items":{"required":["processingState","taskId"],"type":"object","properties":{"taskId":{"type":"string"},"businessPartnerResult":{"type":"object","properties":{"nameParts":{"type":"array","description":"The list of name parts to accommodate the different number of name fields in different systems.","items":{"type":"string"}},"shortName":{"type":"string","description":"Abbreviated name or shorthand."},"identifiers":{"type":"array","description":"The list of identifiers of the business partner. Sorted and duplicates removed by the service.","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","description":"Technical key of the type to which this identifier belongs to"},"value":{"type":"string","description":"Value of the identifier"},"issuingBody":{"type":"string","description":"Body which issued the identifier"}},"description":"Identifier record for a business partner"}},"legalName":{"type":"string"},"legalForm":{"type":"string","description":"Technical key of the legal form."},"states":{"type":"array","description":"The list of (temporary) states of the business partner. Sorted and duplicates removed by the service.","items":{"required":["type"],"type":"object","properties":{"validFrom":{"type":"string","description":"Date since when the status is/was valid.","format":"date-time"},"validTo":{"type":"string","description":"Date until the status was valid, if applicable.","format":"date-time"},"type":{"type":"string","description":"The type of this specified status.","enum":["ACTIVE","INACTIVE"]},"description":{"type":"string","description":"Denotation of the status."}},"description":"A legal entity state indicates if the legal entity is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the legal entity is still operating."}},"classifications":{"type":"array","description":"The list of classifications of the business partner, such as a specific industry. Sorted and duplicates removed by the service.","items":{"type":"object","properties":{"type":{"type":"string","description":"Type of classification.","enum":["NACE","NAF","NAICS","SIC"]},"code":{"type":"string","description":"The identifier of the class belonging to the classification."},"value":{"type":"string","description":"The name of the class belonging to the classification."}},"description":"A legal entity classification is an assignment of the legal entity to an industry. It does not necessarily have to be the only industry the company is active in (see large companies operating in different industries). Multiple assignments to several industries are possible per classification type."}},"roles":{"type":"array","description":"Roles this business partner takes in relation to the sharing member. Sorted and duplicates removed by the service.","items":{"type":"string","enum":["SUPPLIER","CUSTOMER"]}},"postalAddress":{"type":"object","properties":{"addressType":{"type":"string","description":"Type of the address","enum":["LegalAndSiteMainAddress","LegalAddress","SiteMainAddress","AdditionalAddress"]},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"name":{"type":"string","description":"The name of the street."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."},"namePrefix":{"type":"string","description":"The street related information, which is usually printed before the official street name on an address label."},"additionalNamePrefix":{"type":"string","description":"The additional street related information, which is usually printed before the official street name on an address label."},"nameSuffix":{"type":"string","description":"The street related information, which is usually printed after the official street name on an address label."},"additionalNameSuffix":{"type":"string","description":"The additional street related information, which is usually printed after the official street name on an address label."}}},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"The physical postal address of the address, such as an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"The alternative postal address of the address, for example if the goods are to be picked up somewhere else."}},"description":"Address of the official seat of this business partner."},"bpnL":{"type":"string","description":"BPNL"},"bpnS":{"type":"string","description":"BPNS"},"bpnA":{"type":"string","description":"BPNA"},"ownerBpnL":{"type":"string","description":"The BPNL of the company sharing and claiming this business partner as its own"}}},"processingState":{"required":["createdAt","errors","modifiedAt","resultState","step","stepState"],"type":"object","properties":{"resultState":{"type":"string","description":"The processing result of the task, can also still be pending","enum":["Pending","Success","Error"]},"step":{"type":"string","description":"The last step this task has entered","enum":["CleanAndSync","PoolSync","Clean"]},"stepState":{"type":"string","description":"Whether the task is queued or already reserved for the latest step","enum":["Queued","Reserved","Success","Error"]},"errors":{"type":"array","description":"The actual errors that happened during processing if the task has an error result state. The errors refer to the latest step.","items":{"required":["description","type"],"type":"object","properties":{"type":{"type":"string","description":"The type of error that occurred","enum":["Timeout","Unspecified"]},"description":{"type":"string","description":"The free text, detailed description of the error"}},"description":"Describes an error that happened during processing of a task"}},"createdAt":{"type":"string","description":"When the task has been created","format":"date-time"},"modifiedAt":{"type":"string","description":"When the task has last been modified","format":"date-time"},"timeout":{"type":"string","description":"The timestamp until the task is removed from the Orchestrator","format":"date-time"}},"description":"Contains detailed information about the current processing state of a golden record task"}},"description":"The golden record task's processing state together with optional business partner data in case processing is done"}}},"description":"Response object for giving a list of task states"}}}},"400":{"description":"On malformed task search requests"}},"method":"post","path":"/api/golden-record-tasks/state/search","servers":[{"url":"http://localhost:8085","description":"Generated server url"}],"jsonRequestBodyExample":{"taskIds":["string"]},"info":{"title":"Business Partner Data Management Orchestrator","description":"Orchestrator component acts as a passive component and offers for each processing steps individual endpoints","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Search for the state of golden record tasks by task identifiers","description":{"content":"Returns the state of golden record tasks based on the provided task identifiers. Unknown task identifiers are ignored.","type":"text/plain"},"url":{"path":["api","golden-record-tasks","state","search"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Orchestrator Api/business-partner-data-management-orchestrator +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Search for the state of golden record tasks by task identifiers + + + +Returns the state of golden record tasks based on the provided task identifiers. Unknown task identifiers are ignored. + +
Request Body required
+ +The state of the tasks for the provided task identifiers. + +
Schema
    tasks object[]
    businessPartnerResult object
    identifiers object[]
    + +The list of identifiers of the business partner. Sorted and duplicates removed by the service. + +
    states object[]
    + +The list of (temporary) states of the business partner. Sorted and duplicates removed by the service. + +
    classifications object[]
    + +The list of classifications of the business partner, such as a specific industry. Sorted and duplicates removed by the service. + +
    postalAddress object
    + +Address of the official seat of this business partner. + +
    physicalPostalAddress object
    + +The physical postal address of the address, such as an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    street object
    alternativePostalAddress object
    + +The alternative postal address of the address, for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    processingState object
    + +Contains detailed information about the current processing state of a golden record task + +
    errors object[]
    + +The actual errors that happened during processing if the task has an error result state. The errors refer to the latest step. + +
+ +On malformed task search requests + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Orchestrator Api/sidebar.js b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Orchestrator Api/sidebar.js new file mode 100644 index 00000000000..433446ffc5e --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Orchestrator Api/sidebar.js @@ -0,0 +1 @@ +module.exports = [{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Orchestrator Api/business-partner-data-management-orchestrator"},{"type":"category","label":"Task Client","link":{"type":"generated-index","title":"Task Client","slug":"/category/kits/Business Partner Kit/Software Development View/Orchestrator Api/task-client"},"items":[{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Orchestrator Api/create-tasks","label":"Create new golden record tasks for given business partner data","className":"api-method post"},{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Orchestrator Api/search-task-states","label":"Search for the state of golden record tasks by task identifiers","className":"api-method post"}]},{"type":"category","label":"Task Worker","link":{"type":"generated-index","title":"Task Worker","slug":"/category/kits/Business Partner Kit/Software Development View/Orchestrator Api/task-worker"},"items":[{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Orchestrator Api/resolve-step-results","label":"Post step results for reserved golden record tasks in the given step queue","className":"api-method post"},{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Orchestrator Api/reserve-tasks-for-step","label":"Reserve the next golden record tasks waiting in the given step queue","className":"api-method post"}]}]; \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/business-partner-data-management-pool.info.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/business-partner-data-management-pool.info.mdx new file mode 100644 index 00000000000..cf98f86b2c7 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/business-partner-data-management-pool.info.mdx @@ -0,0 +1,25 @@ +--- +id: business-partner-data-management-pool +title: "Business Partner Data Management Pool" +description: "Service that manages and shares business partner data with other CatenaX services" +sidebar_label: Introduction +sidebar_position: 0 +hide_title: true +custom_edit_url: null +--- + +import ApiLogo from "@theme/ApiLogo"; +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; +import Export from "@theme/ApiDemoPanel/Export"; + +Version: 4.1.0-SNAPSHOT + +# Business Partner Data Management Pool + + + +Service that manages and shares business partner data with other CatenaX services + + + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/clear.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/clear.api.mdx new file mode 100644 index 00000000000..b1660ddc391 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/clear.api.mdx @@ -0,0 +1,38 @@ +--- +id: clear +title: "Clear business partner index on OpenSearch" +description: "Deletes all business partner records in the OpenSearch index. Also resets the timestamp from the last export." +sidebar_label: "Clear business partner index on OpenSearch" +hide_title: true +hide_table_of_contents: true +api: {"tags":["open-search-controller"],"description":"Deletes all business partner records in the OpenSearch index. Also resets the timestamp from the last export.","operationId":"clear","responses":{"200":{"description":"Index successfully cleared"},"500":{"description":"Clearing failed (no connection to OpenSearch or database)"}},"method":"delete","path":"/api/opensearch/business-partner","servers":[{"url":"http://localhost:8080","description":"Generated server url"}],"info":{"title":"Business Partner Data Management Pool","description":"Service that manages and shares business partner data with other CatenaX services","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Clear business partner index on OpenSearch","description":{"content":"Deletes all business partner records in the OpenSearch index. Also resets the timestamp from the last export.","type":"text/plain"},"url":{"path":["api","opensearch","business-partner"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"method":"DELETE"}} +sidebar_class_name: "delete api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Pool Api/business-partner-data-management-pool +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Clear business partner index on OpenSearch + + + +Deletes all business partner records in the OpenSearch index. Also resets the timestamp from the last export. + +
+ +Index successfully cleared + +
+ +Clearing failed (no connection to OpenSearch or database) + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/create-addresses.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/create-addresses.api.mdx new file mode 100644 index 00000000000..800678e2241 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/create-addresses.api.mdx @@ -0,0 +1,110 @@ +--- +id: create-addresses +title: "Creates a new address" +description: "Create new business partners of type address by specifying the BPN of the parent each address belongs to. A parent can be either a site or legal entity business partner. If the parent cannot be found, the record is ignored.For matching purposes, on each record you can specify your own index value which will reappear in the corresponding record of the response." +sidebar_label: "Creates a new address" +hide_title: true +hide_table_of_contents: true +api: {"tags":["address-controller"],"description":"Create new business partners of type address by specifying the BPN of the parent each address belongs to. A parent can be either a site or legal entity business partner. If the parent cannot be found, the record is ignored.For matching purposes, on each record you can specify your own index value which will reappear in the corresponding record of the response.","operationId":"createAddresses","requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"The name of the address. This is not according to official registers but according to the name the sharing member chooses."},"states":{"type":"array","description":"The list of (temporary) states of the address.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the address."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}},"description":"An address state indicates if the address is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the business partner is still operating at that address."}},"identifiers":{"type":"array","description":"The list of identifiers of the address.","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"0847976000005\"."},"type":{"type":"string","description":"The type of the identifier."}},"description":"An address identifier (uniquely) identifies the address, such as the Global Location Number (GLN)."}},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"name":{"type":"string","description":"The name of the street."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."}},"description":"The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway"},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"A physical postal address describes the physical location of an office, warehouse, gate, etc."},"alternativePostalAddress":{"required":["city","country","deliveryServiceNumber","deliveryServiceType"],"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else."},"bpnParent":{"type":"string"},"index":{"type":"string"}},"description":"Request for creating new business partner record of type address. In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA."}}}},"required":true},"responses":{"200":{"description":"New business partner record successfully created, possible errors are returned","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"type":"object","properties":{"bpna":{"type":"string","description":"A BPNA represents and uniquely identifies an address, which can be the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates). It is important to note that only the BPNL must be used to uniquely identify a legal entity. Even in the case that the BPNA represents the legal address of the legal entity, it shall not be used to uniquely identify the legal entity."},"name":{"type":"string","description":"The name of the address. This is not according to official registers but according to the name the sharing member chooses."},"states":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the address."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["ACTIVE","INACTIVE"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"}},"description":"An address state indicates if the address is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the business partner is still operating at that address."}},"identifiers":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"0847976000005\"."},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference"},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"}},"description":"An address identifier (uniquely) identifies the address, such as the Global Location Number (GLN)."}},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"},"administrativeAreaLevel1":{"type":"object","properties":{"countryCode":{"type":"string","description":"Country code","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"regionCode":{"type":"string","description":"Abbreviation or shorthand of the area"},"regionName":{"type":"string","description":"Describes the full name of the region within a country according to ISO 3166-214"}},"description":"Region within a country"},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"name":{"type":"string","description":"The name of the street."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."}},"description":"The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway"},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"A physical postal address describes the physical location of an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"},"administrativeAreaLevel1":{"type":"object","properties":{"countryCode":{"type":"string","description":"Country code","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"regionCode":{"type":"string","description":"Abbreviation or shorthand of the area"},"regionName":{"type":"string","description":"Describes the full name of the region within a country according to ISO 3166-214"}},"description":"Region within a country"},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else."},"bpnLegalEntity":{"type":"string","description":"The BPNL of the legal entity owning the address."},"bpnSite":{"type":"string","description":"The BPNS of the site the address belongs to."},"createdAt":{"type":"string","description":"The date when the data record has been created.","format":"date-time"},"updatedAt":{"type":"string","description":"The date when the data record has been last updated.","format":"date-time"},"isLegalAddress":{"type":"boolean","description":"Indicates if the address is the legal address to a legal entity."},"isMainAddress":{"type":"boolean","description":"Indicates if the address is the main address to a site. This is where typically the main entrance or the reception is located, or where the mail is delivered to."},"index":{"type":"string"}},"description":"Created business partner of type address. In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA."}},"errors":{"type":"array","items":{"title":"ErrorInfo","type":"object","properties":{"errorCode":{"type":"string","description":"AddressCreateError","enum":["BpnNotValid","SiteNotFound","LegalEntityNotFound","RegionNotFound","IdentifierNotFound","AddressDuplicateIdentifier"]},"message":{"type":"string"},"entityKey":{"type":"string"}},"description":"Holds information about failures when creating or updating an entity"}},"entityCount":{"type":"integer","format":"int32"},"errorCount":{"type":"integer","format":"int32"}},"description":"Holds information about successfully and failed entities after the creating/updating of several objects"}}}},"400":{"description":"On malformed requests"}},"method":"post","path":"/api/catena/addresses","servers":[{"url":"http://localhost:8080","description":"Generated server url"}],"jsonRequestBodyExample":[{"name":"string","states":[{"description":"string","validFrom":"2023-11-02","validTo":"2023-11-02","type":"ACTIVE"}],"identifiers":[{"value":"string","type":"string"}],"physicalPostalAddress":{"geographicCoordinates":{"longitude":0,"latitude":0,"altitude":0},"country":"UNDEFINED","administrativeAreaLevel1":"string","administrativeAreaLevel2":"string","administrativeAreaLevel3":"string","postalCode":"string","city":"string","district":"string","street":{"name":"string","houseNumber":"string","milestone":"string","direction":"string"},"companyPostalCode":"string","industrialZone":"string","building":"string","floor":"string","door":"string"},"alternativePostalAddress":{"geographicCoordinates":{"longitude":0,"latitude":0,"altitude":0},"country":"UNDEFINED","administrativeAreaLevel1":"string","postalCode":"string","city":"string","deliveryServiceType":"PO_BOX","deliveryServiceQualifier":"string","deliveryServiceNumber":"string"},"bpnParent":"string","index":"string"}],"info":{"title":"Business Partner Data Management Pool","description":"Service that manages and shares business partner data with other CatenaX services","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Creates a new address","description":{"content":"Create new business partners of type address by specifying the BPN of the parent each address belongs to. A parent can be either a site or legal entity business partner. If the parent cannot be found, the record is ignored.For matching purposes, on each record you can specify your own index value which will reappear in the corresponding record of the response.","type":"text/plain"},"url":{"path":["api","catena","addresses"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Pool Api/business-partner-data-management-pool +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Creates a new address + + + +Create new business partners of type address by specifying the BPN of the parent each address belongs to. A parent can be either a site or legal entity business partner. If the parent cannot be found, the record is ignored.For matching purposes, on each record you can specify your own index value which will reappear in the corresponding record of the response. + +
Request Body array required
    states object[]
    + +The list of (temporary) states of the address. + +
    identifiers object[]
    + +The list of identifiers of the address. + +
    physicalPostalAddress object
    + +A physical postal address describes the physical location of an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    street object
    + +The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway + +
    alternativePostalAddress object
    + +An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
+ +New business partner record successfully created, possible errors are returned + +
Schema
    entities object[]
    states object[]
    type object
    + +Named type uniquely identified by its technical key + +
    identifiers object[]
    type object
    + +Named type uniquely identified by its technical key + +
    physicalPostalAddress object
    + +A physical postal address describes the physical location of an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    country object
    + +Named type uniquely identified by its technical key + +
    administrativeAreaLevel1 object
    + +Region within a country + +
    street object
    + +The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway + +
    alternativePostalAddress object
    + +An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    country object
    + +Named type uniquely identified by its technical key + +
    administrativeAreaLevel1 object
    + +Region within a country + +
    errors object[]
+ +On malformed requests + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/create-business-partners.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/create-business-partners.api.mdx new file mode 100644 index 00000000000..51701814414 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/create-business-partners.api.mdx @@ -0,0 +1,166 @@ +--- +id: create-business-partners +title: "Creates a new legal entity" +description: "Create new business partners of type legal entity. The given additional identifiers of a record need to be unique, otherwise they are ignored. For matching purposes, on each record you can specify your own index value which will reappear in the corresponding record of the response." +sidebar_label: "Creates a new legal entity" +hide_title: true +hide_table_of_contents: true +api: {"tags":["legal-entity-controller"],"description":"Create new business partners of type legal entity. The given additional identifiers of a record need to be unique, otherwise they are ignored. For matching purposes, on each record you can specify your own index value which will reappear in the corresponding record of the response.","operationId":"createBusinessPartners","requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"legalName":{"type":"string","description":"The name of the legal entity according to official registers."},"identifiers":{"type":"array","description":"The list of identifiers of the legal entity.","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"DE123465789\"."},"type":{"type":"string","description":"The type of the identifier."},"issuingBody":{"type":"string","description":"The name of the official register, where the identifier is registered. For example, a Handelsregisternummer in Germany is only valid with its corresponding Handelsregister."}}}},"legalShortName":{"type":"string","description":"The abbreviated name of the legal entity."},"legalForm":{"type":"string","description":"The legal form of the legal entity."},"states":{"type":"array","description":"The list of (temporary) states of the legal entity.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the legal entity, such as from the German Handelsregister."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}},"description":"A legal entity state indicates if the legal entity is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the legal entity is still operating."}},"classifications":{"type":"array","description":"The list of classifications of the legal entity, such as a specific industry.","items":{"type":"object","properties":{"type":{"type":"string","description":"Type of classification.","enum":["NACE","NAF","NAICS","SIC"]},"code":{"type":"string","description":"The identifier of the class belonging to the classification."},"value":{"type":"string","description":"The name of the class belonging to the classification."}},"description":"A legal entity classification is an assignment of the legal entity to an industry. It does not necessarily have to be the only industry the company is active in (see large companies operating in different industries). Multiple assignments to several industries are possible per classification type."}},"legalAddress":{"type":"object","properties":{"name":{"type":"string","description":"The name of the address. This is not according to official registers but according to the name the sharing member chooses."},"states":{"type":"array","description":"The list of (temporary) states of the address.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the address."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}},"description":"An address state indicates if the address is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the business partner is still operating at that address."}},"identifiers":{"type":"array","description":"The list of identifiers of the address.","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"0847976000005\"."},"type":{"type":"string","description":"The type of the identifier."}},"description":"An address identifier (uniquely) identifies the address, such as the Global Location Number (GLN)."}},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"name":{"type":"string","description":"The name of the street."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."}},"description":"The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway"},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"A physical postal address describes the physical location of an office, warehouse, gate, etc."},"alternativePostalAddress":{"required":["city","country","deliveryServiceNumber","deliveryServiceType"],"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else."}},"description":"In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA."},"index":{"type":"string","description":"User defined index to conveniently match this entry to the corresponding entry in the response."}},"description":"Request for creating new business partner record of type legal entity. In general, a legal entity is a juridical person that has legal rights and duties related to contracts, agreements, and obligations. The term especially applies to any kind of organization (such as an enterprise or company, university, association, etc.) established under the law applicable to a country.In Catena-X, a legal entity is a type of business partner representing a legally registered organization with its official registration information, such as legal name (including legal form, if registered), legal address and tax number.A legal entity has exactly one legal address, but it is possible to specify additional addresses that a legal entity owns. Thus, at least one address is assigned to a legal entity. A legal entity can own sites. Thus, many or no sites are assigned to a legal entity. A legal entity is uniquely identified by the BPNL."}}}},"required":true},"responses":{"200":{"description":"New legal entities request was processed successfully, possible errors are returned","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"type":"object","properties":{"legalName":{"type":"string","description":"The name of the legal entity according to official registers."},"bpnl":{"type":"string","description":"A BPNL represents and uniquely identifies a legal entity, which is defined by its legal name (including legal form, if registered), legal address and tax number."},"identifiers":{"type":"array","description":"The list of identifiers of the legal entity.","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"DE123465789\"."},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference"},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"},"issuingBody":{"type":"string","description":"The name of the official register, where the identifier is registered. For example, a Handelsregisternummer in Germany is only valid with its corresponding Handelsregister."}},"description":"A legal entity identifier (uniquely) identifies the legal entity, such as the German Handelsregisternummer, a VAT number, etc."}},"legalShortName":{"type":"string","description":"The abbreviated name of the legal entity."},"legalForm":{"type":"object","properties":{"technicalKey":{"type":"string","description":"The technical identifier of the legal form according to ISO 20275."},"name":{"type":"string","description":"The name of legal form according to ISO 20275."},"abbreviation":{"type":"string","description":"The abbreviated name of the legal form, such as AG for German Aktiengesellschaft."}},"description":"A legal form is a mandatory corporate legal framework by which companies can conduct business, charitable or other permissible activities."},"states":{"type":"array","description":"The list of (temporary) states of the legal entity.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the legal entity, such as from the German Handelsregister."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["ACTIVE","INACTIVE"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"}},"description":"A legal entity state indicates if the legal entity is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the legal entity is still operating."}},"classifications":{"type":"array","description":"The list of classifications of the legal entity, such as a specific industry.","items":{"type":"object","properties":{"value":{"type":"string","description":"The name of the class belonging to the classification."},"code":{"type":"string","description":"The identifier of the class belonging to the classification."},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["NACE","NAF","NAICS","SIC"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"}},"description":"A legal entity classification is an assignment of the legal entity to an industry. It does not necessarily have to be the only industry the company is active in (see large companies operating in different industries). Multiple assignments to several industries are possible per classification type."}},"relations":{"type":"array","description":"Relations to other business partners.","items":{"type":"object","properties":{"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["CX_LEGAL_SUCCESSOR_OF","CX_LEGAL_PREDECESSOR_OF"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"},"startBpnl":{"type":"string","description":"BPN of partner which is the source of the relation"},"endBpnl":{"type":"string","description":"BPN of partner which is the target of the relation"},"validFrom":{"type":"string","description":"Time when the relation started","format":"date-time"},"validTo":{"type":"string","description":"Time when the relation ended","format":"date-time"}},"description":"Directed relation between two business partners"}},"currentness":{"type":"string","description":"The date the business partner data was last indicated to be still current.","format":"date-time"},"createdAt":{"type":"string","description":"The date when the data record has been created.","format":"date-time"},"updatedAt":{"type":"string","description":"The date when the data record has been last updated.","format":"date-time"},"legalAddress":{"type":"object","properties":{"bpna":{"type":"string","description":"A BPNA represents and uniquely identifies an address, which can be the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates). It is important to note that only the BPNL must be used to uniquely identify a legal entity. Even in the case that the BPNA represents the legal address of the legal entity, it shall not be used to uniquely identify the legal entity."},"name":{"type":"string","description":"The name of the address. This is not according to official registers but according to the name the sharing member chooses."},"states":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the address."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["ACTIVE","INACTIVE"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"}},"description":"An address state indicates if the address is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the business partner is still operating at that address."}},"identifiers":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"0847976000005\"."},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference"},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"}},"description":"An address identifier (uniquely) identifies the address, such as the Global Location Number (GLN)."}},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"},"administrativeAreaLevel1":{"type":"object","properties":{"countryCode":{"type":"string","description":"Country code","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"regionCode":{"type":"string","description":"Abbreviation or shorthand of the area"},"regionName":{"type":"string","description":"Describes the full name of the region within a country according to ISO 3166-214"}},"description":"Region within a country"},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"name":{"type":"string","description":"The name of the street."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."}},"description":"The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway"},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"A physical postal address describes the physical location of an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"},"administrativeAreaLevel1":{"type":"object","properties":{"countryCode":{"type":"string","description":"Country code","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"regionCode":{"type":"string","description":"Abbreviation or shorthand of the area"},"regionName":{"type":"string","description":"Describes the full name of the region within a country according to ISO 3166-214"}},"description":"Region within a country"},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else."},"bpnLegalEntity":{"type":"string","description":"The BPNL of the legal entity owning the address."},"bpnSite":{"type":"string","description":"The BPNS of the site the address belongs to."},"createdAt":{"type":"string","description":"The date when the data record has been created.","format":"date-time"},"updatedAt":{"type":"string","description":"The date when the data record has been last updated.","format":"date-time"},"isLegalAddress":{"type":"boolean","description":"Indicates if the address is the legal address to a legal entity."},"isMainAddress":{"type":"boolean","description":"Indicates if the address is the main address to a site. This is where typically the main entrance or the reception is located, or where the mail is delivered to."}},"description":"In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA."},"index":{"type":"string","description":"User defined index to conveniently match this entry to the corresponding entry in the response."}},"description":"Created/updated business partner of type legal entity. In general, a legal entity is a juridical person that has legal rights and duties related to contracts, agreements, and obligations. The term especially applies to any kind of organization (such as an enterprise or company, university, association, etc.) established under the law applicable to a country.In Catena-X, a legal entity is a type of business partner representing a legally registered organization with its official registration information, such as legal name (including legal form, if registered), legal address and tax number.A legal entity has exactly one legal address, but it is possible to specify additional addresses that a legal entity owns. Thus, at least one address is assigned to a legal entity. A legal entity can own sites. Thus, many or no sites are assigned to a legal entity. A legal entity is uniquely identified by the BPNL."}},"errors":{"type":"array","items":{"title":"ErrorInfo","type":"object","properties":{"errorCode":{"type":"string","description":"LegalEntityCreateError","enum":["LegalEntityDuplicateIdentifier","LegalFormNotFound","LegalEntityIdentifierNotFound","LegalAddressRegionNotFound","LegalAddressIdentifierNotFound","LegalAddressDuplicateIdentifier"]},"message":{"type":"string"},"entityKey":{"type":"string"}},"description":"Holds information about failures when creating or updating an entity"}},"entityCount":{"type":"integer","format":"int32"},"errorCount":{"type":"integer","format":"int32"}},"description":"Holds information about successfully and failed entities after the creating/updating of several objects"}}}},"400":{"description":"On malformed requests"}},"method":"post","path":"/api/catena/legal-entities","servers":[{"url":"http://localhost:8080","description":"Generated server url"}],"jsonRequestBodyExample":[{"legalName":"string","identifiers":[{"value":"string","type":"string","issuingBody":"string"}],"legalShortName":"string","legalForm":"string","states":[{"description":"string","validFrom":"2023-11-02","validTo":"2023-11-02","type":"ACTIVE"}],"classifications":[{"type":"NACE","code":"string","value":"string"}],"legalAddress":{"name":"string","states":[{"description":"string","validFrom":"2023-11-02","validTo":"2023-11-02","type":"ACTIVE"}],"identifiers":[{"value":"string","type":"string"}],"physicalPostalAddress":{"geographicCoordinates":{"longitude":0,"latitude":0,"altitude":0},"country":"UNDEFINED","administrativeAreaLevel1":"string","administrativeAreaLevel2":"string","administrativeAreaLevel3":"string","postalCode":"string","city":"string","district":"string","street":{"name":"string","houseNumber":"string","milestone":"string","direction":"string"},"companyPostalCode":"string","industrialZone":"string","building":"string","floor":"string","door":"string"},"alternativePostalAddress":{"geographicCoordinates":{"longitude":0,"latitude":0,"altitude":0},"country":"UNDEFINED","administrativeAreaLevel1":"string","postalCode":"string","city":"string","deliveryServiceType":"PO_BOX","deliveryServiceQualifier":"string","deliveryServiceNumber":"string"}},"index":"string"}],"info":{"title":"Business Partner Data Management Pool","description":"Service that manages and shares business partner data with other CatenaX services","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Creates a new legal entity","description":{"content":"Create new business partners of type legal entity. The given additional identifiers of a record need to be unique, otherwise they are ignored. For matching purposes, on each record you can specify your own index value which will reappear in the corresponding record of the response.","type":"text/plain"},"url":{"path":["api","catena","legal-entities"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Pool Api/business-partner-data-management-pool +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Creates a new legal entity + + + +Create new business partners of type legal entity. The given additional identifiers of a record need to be unique, otherwise they are ignored. For matching purposes, on each record you can specify your own index value which will reappear in the corresponding record of the response. + +
Request Body array required
    identifiers object[]
    + +The list of identifiers of the legal entity. + +
    states object[]
    + +The list of (temporary) states of the legal entity. + +
    classifications object[]
    + +The list of classifications of the legal entity, such as a specific industry. + +
    legalAddress object
    + +In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA. + +
    states object[]
    + +The list of (temporary) states of the address. + +
    identifiers object[]
    + +The list of identifiers of the address. + +
    physicalPostalAddress object
    + +A physical postal address describes the physical location of an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    street object
    + +The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway + +
    alternativePostalAddress object
    + +An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
+ +New legal entities request was processed successfully, possible errors are returned + +
Schema
    entities object[]
    identifiers object[]
    + +The list of identifiers of the legal entity. + +
    type object
    + +Named type uniquely identified by its technical key + +
    legalForm object
    + +A legal form is a mandatory corporate legal framework by which companies can conduct business, charitable or other permissible activities. + +
    states object[]
    + +The list of (temporary) states of the legal entity. + +
    type object
    + +Named type uniquely identified by its technical key + +
    classifications object[]
    + +The list of classifications of the legal entity, such as a specific industry. + +
    type object
    + +Named type uniquely identified by its technical key + +
    relations object[]
    + +Relations to other business partners. + +
    type object
    + +Named type uniquely identified by its technical key + +
    legalAddress object
    + +In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA. + +
    states object[]
    type object
    + +Named type uniquely identified by its technical key + +
    identifiers object[]
    type object
    + +Named type uniquely identified by its technical key + +
    physicalPostalAddress object
    + +A physical postal address describes the physical location of an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    country object
    + +Named type uniquely identified by its technical key + +
    administrativeAreaLevel1 object
    + +Region within a country + +
    street object
    + +The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway + +
    alternativePostalAddress object
    + +An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    country object
    + +Named type uniquely identified by its technical key + +
    administrativeAreaLevel1 object
    + +Region within a country + +
    errors object[]
+ +On malformed requests + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/create-identifier-type.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/create-identifier-type.api.mdx new file mode 100644 index 00000000000..05584bdc586 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/create-identifier-type.api.mdx @@ -0,0 +1,50 @@ +--- +id: create-identifier-type +title: "Creates a new identifier type" +description: "Create a new identifier type (including validity details) which can be referenced by business partner records. Identifier types such as BPN or VAT determine with which kind of values a business partner can be identified with. The actual name of the identifier type is free to choose and doesn't need to be unique. The technical key can be freely chosen but needs to be unique for the businessPartnerType as it is used as reference by the business partner records. A recommendation for technical keys: They should be short, descriptive and use a restricted common character set in order to ensure compatibility with older systems." +sidebar_label: "Creates a new identifier type" +hide_title: true +hide_table_of_contents: true +api: {"tags":["metadata-controller"],"description":"Create a new identifier type (including validity details) which can be referenced by business partner records. Identifier types such as BPN or VAT determine with which kind of values a business partner can be identified with. The actual name of the identifier type is free to choose and doesn't need to be unique. The technical key can be freely chosen but needs to be unique for the businessPartnerType as it is used as reference by the business partner records. A recommendation for technical keys: They should be short, descriptive and use a restricted common character set in order to ensure compatibility with older systems.","operationId":"createIdentifierType","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"technicalKey":{"type":"string","description":"The technical identifier (unique in combination with businessPartnerType)."},"businessPartnerType":{"type":"string","description":"Specifies if an identifier type is valid for legal entities (L) or addresses (A). Sites (S) are not supported.","enum":["LEGAL_ENTITY","ADDRESS"]},"name":{"type":"string","description":"The name of the identifier type."},"details":{"type":"array","description":"Validity details.","items":{"type":"object","properties":{"country":{"type":"string","description":"2-digit country code for which this identifier is valid; null for universal identifiers.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"mandatory":{"type":"boolean","description":"True if identifier is mandatory in this country."}},"description":"Information for which countries an identifier type is valid and mandatory."}}},"description":"An identifier type defines the name or category of an identifier, such as the German Handelsregisternummer, VAT number, Global Location Number (GLN), etc. The identifier type is valid for a business partner type."}}},"required":true},"responses":{"200":{"description":"New identifier type successfully created","content":{"application/json":{"schema":{"type":"object","properties":{"technicalKey":{"type":"string","description":"The technical identifier (unique in combination with businessPartnerType)."},"businessPartnerType":{"type":"string","description":"Specifies if an identifier type is valid for legal entities (L) or addresses (A). Sites (S) are not supported.","enum":["LEGAL_ENTITY","ADDRESS"]},"name":{"type":"string","description":"The name of the identifier type."},"details":{"type":"array","description":"Validity details.","items":{"type":"object","properties":{"country":{"type":"string","description":"2-digit country code for which this identifier is valid; null for universal identifiers.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"mandatory":{"type":"boolean","description":"True if identifier is mandatory in this country."}},"description":"Information for which countries an identifier type is valid and mandatory."}}},"description":"An identifier type defines the name or category of an identifier, such as the German Handelsregisternummer, VAT number, Global Location Number (GLN), etc. The identifier type is valid for a business partner type."}}}},"400":{"description":"On malformed request parameters"},"409":{"description":"Identifier type with specified technical key already exists"}},"method":"post","path":"/api/catena/identifier-types","servers":[{"url":"http://localhost:8080","description":"Generated server url"}],"jsonRequestBodyExample":{"technicalKey":"string","businessPartnerType":"LEGAL_ENTITY","name":"string","details":[{"country":"UNDEFINED","mandatory":true}]},"info":{"title":"Business Partner Data Management Pool","description":"Service that manages and shares business partner data with other CatenaX services","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Creates a new identifier type","description":{"content":"Create a new identifier type (including validity details) which can be referenced by business partner records. Identifier types such as BPN or VAT determine with which kind of values a business partner can be identified with. The actual name of the identifier type is free to choose and doesn't need to be unique. The technical key can be freely chosen but needs to be unique for the businessPartnerType as it is used as reference by the business partner records. A recommendation for technical keys: They should be short, descriptive and use a restricted common character set in order to ensure compatibility with older systems.","type":"text/plain"},"url":{"path":["api","catena","identifier-types"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Pool Api/business-partner-data-management-pool +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Creates a new identifier type + + + +Create a new identifier type (including validity details) which can be referenced by business partner records. Identifier types such as BPN or VAT determine with which kind of values a business partner can be identified with. The actual name of the identifier type is free to choose and doesn't need to be unique. The technical key can be freely chosen but needs to be unique for the businessPartnerType as it is used as reference by the business partner records. A recommendation for technical keys: They should be short, descriptive and use a restricted common character set in order to ensure compatibility with older systems. + +
Request Body required
    details object[]
    + +Validity details. + +
+ +New identifier type successfully created + +
Schema
    details object[]
    + +Validity details. + +
+ +On malformed request parameters + +
+ +Identifier type with specified technical key already exists + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/create-legal-form.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/create-legal-form.api.mdx new file mode 100644 index 00000000000..07c23614217 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/create-legal-form.api.mdx @@ -0,0 +1,42 @@ +--- +id: create-legal-form +title: "Creates a new legal form" +description: "Create a new legal form which can be referenced by business partner records. The actual name of the legal form is free to choose and doesn't need to be unique. The technical key can be freely chosen but needs to be unique for the businessPartnerType as it is used as reference by the business partner records. A recommendation for technical keys: They should be short, descriptive and use a restricted common character set in order to ensure compatibility with older systems." +sidebar_label: "Creates a new legal form" +hide_title: true +hide_table_of_contents: true +api: {"tags":["metadata-controller"],"description":"Create a new legal form which can be referenced by business partner records. The actual name of the legal form is free to choose and doesn't need to be unique. The technical key can be freely chosen but needs to be unique for the businessPartnerType as it is used as reference by the business partner records. A recommendation for technical keys: They should be short, descriptive and use a restricted common character set in order to ensure compatibility with older systems.","operationId":"createLegalForm","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"technicalKey":{"type":"string"},"name":{"type":"string"},"abbreviation":{"type":"string"}},"description":"New legal form record to be referenced by business partners"}}},"required":true},"responses":{"200":{"description":"New legal form successfully created","content":{"application/json":{"schema":{"type":"object","properties":{"technicalKey":{"type":"string","description":"The technical identifier of the legal form according to ISO 20275."},"name":{"type":"string","description":"The name of legal form according to ISO 20275."},"abbreviation":{"type":"string","description":"The abbreviated name of the legal form, such as AG for German Aktiengesellschaft."}},"description":"A legal form is a mandatory corporate legal framework by which companies can conduct business, charitable or other permissible activities."}}}},"400":{"description":"On malformed request parameters"},"409":{"description":"Legal form with specified technical key already exists"}},"method":"post","path":"/api/catena/legal-forms","servers":[{"url":"http://localhost:8080","description":"Generated server url"}],"jsonRequestBodyExample":{"technicalKey":"string","name":"string","abbreviation":"string"},"info":{"title":"Business Partner Data Management Pool","description":"Service that manages and shares business partner data with other CatenaX services","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Creates a new legal form","description":{"content":"Create a new legal form which can be referenced by business partner records. The actual name of the legal form is free to choose and doesn't need to be unique. The technical key can be freely chosen but needs to be unique for the businessPartnerType as it is used as reference by the business partner records. A recommendation for technical keys: They should be short, descriptive and use a restricted common character set in order to ensure compatibility with older systems.","type":"text/plain"},"url":{"path":["api","catena","legal-forms"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Pool Api/business-partner-data-management-pool +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Creates a new legal form + + + +Create a new legal form which can be referenced by business partner records. The actual name of the legal form is free to choose and doesn't need to be unique. The technical key can be freely chosen but needs to be unique for the businessPartnerType as it is used as reference by the business partner records. A recommendation for technical keys: They should be short, descriptive and use a restricted common character set in order to ensure compatibility with older systems. + +
Request Body required
+ +New legal form successfully created + +
Schema
+ +On malformed request parameters + +
+ +Legal form with specified technical key already exists + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/create-region.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/create-region.api.mdx new file mode 100644 index 00000000000..c901548b17c --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/create-region.api.mdx @@ -0,0 +1,42 @@ +--- +id: create-region +title: "Create new Region" +description: "Create a new region which can be referenced by business partner records." +sidebar_label: "Create new Region" +hide_title: true +hide_table_of_contents: true +api: {"tags":["metadata-controller"],"description":"Create a new region which can be referenced by business partner records.","operationId":"createRegion","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"countryCode":{"type":"string","description":"Country code","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"regionCode":{"type":"string","description":"Abbreviation or shorthand of the area"},"regionName":{"type":"string","description":"Describes the full name of the region within a country according to ISO 3166-214"}},"description":"Region within a country"}}},"required":true},"responses":{"200":{"description":"New region successfully created","content":{"application/json":{"schema":{"type":"object","properties":{"countryCode":{"type":"string","description":"Country code","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"regionCode":{"type":"string","description":"Abbreviation or shorthand of the area"},"regionName":{"type":"string","description":"Describes the full name of the region within a country according to ISO 3166-214"}},"description":"Region within a country"}}}},"400":{"description":"On malformed request parameters"}},"deprecated":true,"method":"post","path":"/api/catena/regions","servers":[{"url":"http://localhost:8080","description":"Generated server url"}],"jsonRequestBodyExample":{"countryCode":"UNDEFINED","regionCode":"string","regionName":"string"},"info":{"title":"Business Partner Data Management Pool","description":"Service that manages and shares business partner data with other CatenaX services","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Create new Region","description":{"content":"Create a new region which can be referenced by business partner records.","type":"text/plain"},"url":{"path":["api","catena","regions"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Pool Api/business-partner-data-management-pool +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Create new Region + +:::caution deprecated + +This endpoint has been deprecated and may be removed in future versions of the API. + +::: + +Create a new region which can be referenced by business partner records. + +
Request Body required
+ +New region successfully created + +
Schema
+ +On malformed request parameters + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/create-site.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/create-site.api.mdx new file mode 100644 index 00000000000..ce0e1e7c56e --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/create-site.api.mdx @@ -0,0 +1,122 @@ +--- +id: create-site +title: "Creates a new site" +description: "Create new business partners of type site by specifying the BPNL of the legal entity each site belongs to. If the legal entitiy cannot be found, the record is ignored.For matching purposes, on each record you can specify your own index value which will reappear in the corresponding record of the response." +sidebar_label: "Creates a new site" +hide_title: true +hide_table_of_contents: true +api: {"tags":["site-controller"],"description":"Create new business partners of type site by specifying the BPNL of the legal entity each site belongs to. If the legal entitiy cannot be found, the record is ignored.For matching purposes, on each record you can specify your own index value which will reappear in the corresponding record of the response.","operationId":"createSite","requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"The name of the site. This is not according to official registers but according to the name the owner chooses."},"states":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the site."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}},"description":"A site state indicates if the site is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the site is still operating."}},"mainAddress":{"type":"object","properties":{"name":{"type":"string","description":"The name of the address. This is not according to official registers but according to the name the sharing member chooses."},"states":{"type":"array","description":"The list of (temporary) states of the address.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the address."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}},"description":"An address state indicates if the address is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the business partner is still operating at that address."}},"identifiers":{"type":"array","description":"The list of identifiers of the address.","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"0847976000005\"."},"type":{"type":"string","description":"The type of the identifier."}},"description":"An address identifier (uniquely) identifies the address, such as the Global Location Number (GLN)."}},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"name":{"type":"string","description":"The name of the street."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."}},"description":"The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway"},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"A physical postal address describes the physical location of an office, warehouse, gate, etc."},"alternativePostalAddress":{"required":["city","country","deliveryServiceNumber","deliveryServiceType"],"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else."}},"description":"In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA."},"bpnlParent":{"type":"string"},"index":{"type":"string"}},"description":"Request for creating new business partner record of type site. In general, a site is a delimited geographical area in which an organization (such as an enterprise or company, university, association, etc.) conducts business. In Catena-X, a site is a type of business partner representing a physical location or area owned by a legal entity, where a production plant, a warehouse, or an office building is located. A site is owned by a legal entity. Thus, exactly one legal entity is assigned to a site. A site has exactly one main address, but it is possible to specify additional addresses (such as different gates), that belong to a site. Thus, at least one address is assigned to a site. A site can only be uploaded and modified by the owner (the legal entity), because only the owner knows which addresses belong to which site. A site is uniquely identified by the BPNS."}}}},"required":true},"responses":{"200":{"description":"New sites request was processed successfully, possible errors are returned","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"type":"object","properties":{"bpns":{"type":"string","description":"A BPNS represents and uniquely identifies a site, which is where for example a production plant, a warehouse, or an office building is located."},"name":{"type":"string","description":"The name of the site. This is not according to official registers but according to the name the owner chooses."},"states":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the site."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["ACTIVE","INACTIVE"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"}},"description":"A site state indicates if the site is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the site is still operating."}},"bpnLegalEntity":{"type":"string","description":"The BPNL of the legal entity owning the site."},"createdAt":{"type":"string","description":"The date when the data record has been created.","format":"date-time"},"updatedAt":{"type":"string","description":"The date when the data record has been last updated.","format":"date-time"},"mainAddress":{"type":"object","properties":{"bpna":{"type":"string","description":"A BPNA represents and uniquely identifies an address, which can be the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates). It is important to note that only the BPNL must be used to uniquely identify a legal entity. Even in the case that the BPNA represents the legal address of the legal entity, it shall not be used to uniquely identify the legal entity."},"name":{"type":"string","description":"The name of the address. This is not according to official registers but according to the name the sharing member chooses."},"states":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the address."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["ACTIVE","INACTIVE"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"}},"description":"An address state indicates if the address is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the business partner is still operating at that address."}},"identifiers":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"0847976000005\"."},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference"},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"}},"description":"An address identifier (uniquely) identifies the address, such as the Global Location Number (GLN)."}},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"},"administrativeAreaLevel1":{"type":"object","properties":{"countryCode":{"type":"string","description":"Country code","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"regionCode":{"type":"string","description":"Abbreviation or shorthand of the area"},"regionName":{"type":"string","description":"Describes the full name of the region within a country according to ISO 3166-214"}},"description":"Region within a country"},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"name":{"type":"string","description":"The name of the street."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."}},"description":"The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway"},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"A physical postal address describes the physical location of an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"},"administrativeAreaLevel1":{"type":"object","properties":{"countryCode":{"type":"string","description":"Country code","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"regionCode":{"type":"string","description":"Abbreviation or shorthand of the area"},"regionName":{"type":"string","description":"Describes the full name of the region within a country according to ISO 3166-214"}},"description":"Region within a country"},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else."},"bpnLegalEntity":{"type":"string","description":"The BPNL of the legal entity owning the address."},"bpnSite":{"type":"string","description":"The BPNS of the site the address belongs to."},"createdAt":{"type":"string","description":"The date when the data record has been created.","format":"date-time"},"updatedAt":{"type":"string","description":"The date when the data record has been last updated.","format":"date-time"},"isLegalAddress":{"type":"boolean","description":"Indicates if the address is the legal address to a legal entity."},"isMainAddress":{"type":"boolean","description":"Indicates if the address is the main address to a site. This is where typically the main entrance or the reception is located, or where the mail is delivered to."}},"description":"In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA."},"index":{"type":"string","description":"User defined index to conveniently match this entry to the corresponding entry in the response."}},"description":"Created/updated business partner of type site. In general, a site is a delimited geographical area in which an organization (such as an enterprise or company, university, association, etc.) conducts business. In Catena-X, a site is a type of business partner representing a physical location or area owned by a legal entity, where a production plant, a warehouse, or an office building is located. A site is owned by a legal entity. Thus, exactly one legal entity is assigned to a site. A site has exactly one main address, but it is possible to specify additional addresses (such as different gates), that belong to a site. Thus, at least one address is assigned to a site. A site can only be uploaded and modified by the owner (the legal entity), because only the owner knows which addresses belong to which site. A site is uniquely identified by the BPNS."}},"errors":{"type":"array","items":{"title":"ErrorInfo","type":"object","properties":{"errorCode":{"type":"string","description":"SiteCreateError","enum":["LegalEntityNotFound","MainAddressIdentifierNotFound","MainAddressRegionNotFound","MainAddressDuplicateIdentifier"]},"message":{"type":"string"},"entityKey":{"type":"string"}},"description":"Holds information about failures when creating or updating an entity"}},"entityCount":{"type":"integer","format":"int32"},"errorCount":{"type":"integer","format":"int32"}},"description":"Holds information about successfully and failed entities after the creating/updating of several objects"}}}},"400":{"description":"On malformed requests"}},"method":"post","path":"/api/catena/sites","servers":[{"url":"http://localhost:8080","description":"Generated server url"}],"jsonRequestBodyExample":[{"name":"string","states":[{"description":"string","validFrom":"2023-11-02","validTo":"2023-11-02","type":"ACTIVE"}],"mainAddress":{"name":"string","states":[{"description":"string","validFrom":"2023-11-02","validTo":"2023-11-02","type":"ACTIVE"}],"identifiers":[{"value":"string","type":"string"}],"physicalPostalAddress":{"geographicCoordinates":{"longitude":0,"latitude":0,"altitude":0},"country":"UNDEFINED","administrativeAreaLevel1":"string","administrativeAreaLevel2":"string","administrativeAreaLevel3":"string","postalCode":"string","city":"string","district":"string","street":{"name":"string","houseNumber":"string","milestone":"string","direction":"string"},"companyPostalCode":"string","industrialZone":"string","building":"string","floor":"string","door":"string"},"alternativePostalAddress":{"geographicCoordinates":{"longitude":0,"latitude":0,"altitude":0},"country":"UNDEFINED","administrativeAreaLevel1":"string","postalCode":"string","city":"string","deliveryServiceType":"PO_BOX","deliveryServiceQualifier":"string","deliveryServiceNumber":"string"}},"bpnlParent":"string","index":"string"}],"info":{"title":"Business Partner Data Management Pool","description":"Service that manages and shares business partner data with other CatenaX services","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Creates a new site","description":{"content":"Create new business partners of type site by specifying the BPNL of the legal entity each site belongs to. If the legal entitiy cannot be found, the record is ignored.For matching purposes, on each record you can specify your own index value which will reappear in the corresponding record of the response.","type":"text/plain"},"url":{"path":["api","catena","sites"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Pool Api/business-partner-data-management-pool +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Creates a new site + + + +Create new business partners of type site by specifying the BPNL of the legal entity each site belongs to. If the legal entitiy cannot be found, the record is ignored.For matching purposes, on each record you can specify your own index value which will reappear in the corresponding record of the response. + +
Request Body array required
    states object[]
    mainAddress object
    + +In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA. + +
    states object[]
    + +The list of (temporary) states of the address. + +
    identifiers object[]
    + +The list of identifiers of the address. + +
    physicalPostalAddress object
    + +A physical postal address describes the physical location of an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    street object
    + +The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway + +
    alternativePostalAddress object
    + +An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
+ +New sites request was processed successfully, possible errors are returned + +
Schema
    entities object[]
    states object[]
    type object
    + +Named type uniquely identified by its technical key + +
    mainAddress object
    + +In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA. + +
    states object[]
    type object
    + +Named type uniquely identified by its technical key + +
    identifiers object[]
    type object
    + +Named type uniquely identified by its technical key + +
    physicalPostalAddress object
    + +A physical postal address describes the physical location of an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    country object
    + +Named type uniquely identified by its technical key + +
    administrativeAreaLevel1 object
    + +Region within a country + +
    street object
    + +The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway + +
    alternativePostalAddress object
    + +An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    country object
    + +Named type uniquely identified by its technical key + +
    administrativeAreaLevel1 object
    + +Region within a country + +
    errors object[]
+ +On malformed requests + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/export.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/export.api.mdx new file mode 100644 index 00000000000..a838098817b --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/export.api.mdx @@ -0,0 +1,38 @@ +--- +id: export +title: "Index new business partner records on OpenSearch" +description: "Triggers an asynchronous export of business partner records from BPDM to OpenSearch. Only exports records which have been updated since the last export." +sidebar_label: "Index new business partner records on OpenSearch" +hide_title: true +hide_table_of_contents: true +api: {"tags":["open-search-controller"],"description":"Triggers an asynchronous export of business partner records from BPDM to OpenSearch. Only exports records which have been updated since the last export. ","operationId":"export","responses":{"200":{"description":"Export of records successfully","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["OPENSEARCH","SAAS_IMPORT"]},"status":{"type":"string","enum":["NOT_SYNCED","RUNNING","SUCCESS","ERROR"]},"count":{"type":"integer","format":"int32"},"progress":{"type":"number","format":"float"},"errorDetails":{"type":"string"},"startedAt":{"type":"string","format":"date-time"},"finishedAt":{"type":"string","format":"date-time"}}}}}},"500":{"description":"Export failed (no connection to OpenSearch or database)"}},"method":"post","path":"/api/opensearch/business-partner","servers":[{"url":"http://localhost:8080","description":"Generated server url"}],"info":{"title":"Business Partner Data Management Pool","description":"Service that manages and shares business partner data with other CatenaX services","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Index new business partner records on OpenSearch","description":{"content":"Triggers an asynchronous export of business partner records from BPDM to OpenSearch. Only exports records which have been updated since the last export. ","type":"text/plain"},"url":{"path":["api","opensearch","business-partner"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"POST"}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Pool Api/business-partner-data-management-pool +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Index new business partner records on OpenSearch + + + +Triggers an asynchronous export of business partner records from BPDM to OpenSearch. Only exports records which have been updated since the last export. + +
+ +Export of records successfully + +
Schema
+ +Export failed (no connection to OpenSearch or database) + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/find-bpns-by-identifiers.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/find-bpns-by-identifiers.api.mdx new file mode 100644 index 00000000000..41301cb8b5e --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/find-bpns-by-identifiers.api.mdx @@ -0,0 +1,42 @@ +--- +id: find-bpns-by-identifiers +title: "Returns a list of identifier mappings of an identifier to a BPNL/A/S, specified by a business partner type, identifier type and identifier values" +description: "Find business partner numbers by identifiers. The response can contain less results than the number of identifier values that were requested, if some of the identifiers did not exist. For a single request, the maximum number of identifier values to search for is limited to ${bpdm.bpn.search-request-limit} entries." +sidebar_label: "Returns a list of identifier mappings of an identifier to a BPNL/A/S, specified by a business partner type, identifier type and identifier values" +hide_title: true +hide_table_of_contents: true +api: {"tags":["bpn-controller"],"description":"Find business partner numbers by identifiers. The response can contain less results than the number of identifier values that were requested, if some of the identifiers did not exist. For a single request, the maximum number of identifier values to search for is limited to ${bpdm.bpn.search-request-limit} entries.","operationId":"findBpnsByIdentifiers","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"businessPartnerType":{"type":"string","description":"Specifies if an identifier type is valid for legal entities (L) or addresses (A). Sites (S) are not supported.","enum":["LEGAL_ENTITY","ADDRESS"]},"idType":{"type":"string"},"idValues":{"type":"array","items":{"type":"string"}}},"description":"Contains identifiers to search legal entities by"}}},"required":true},"responses":{"200":{"description":"Found bpn to identifier value mappings","content":{"application/json":{"schema":{"uniqueItems":true,"type":"array","items":{"type":"object","properties":{"idValue":{"type":"string"},"bpn":{"type":"string"}},"description":"Mapping of Business Partner Number to identifier value"}}}}},"400":{"description":"On malformed request parameters or if number of requested bpns exceeds limit"},"404":{"description":"Specified identifier type not found"}},"method":"post","path":"/api/catena/bpn/search","servers":[{"url":"http://localhost:8080","description":"Generated server url"}],"jsonRequestBodyExample":{"businessPartnerType":"LEGAL_ENTITY","idType":"string","idValues":["string"]},"info":{"title":"Business Partner Data Management Pool","description":"Service that manages and shares business partner data with other CatenaX services","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Returns a list of identifier mappings of an identifier to a BPNL/A/S, specified by a business partner type, identifier type and identifier values","description":{"content":"Find business partner numbers by identifiers. The response can contain less results than the number of identifier values that were requested, if some of the identifiers did not exist. For a single request, the maximum number of identifier values to search for is limited to ${bpdm.bpn.search-request-limit} entries.","type":"text/plain"},"url":{"path":["api","catena","bpn","search"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Pool Api/business-partner-data-management-pool +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Returns a list of identifier mappings of an identifier to a BPNL/A/S, specified by a business partner type, identifier type and identifier values + + + +Find business partner numbers by identifiers. The response can contain less results than the number of identifier values that were requested, if some of the identifiers did not exist. For a single request, the maximum number of identifier values to search for is limited to ${bpdm.bpn.search-request-limit} entries. + +
Request Body required
+ +Found bpn to identifier value mappings + +
Schema array
+ +On malformed request parameters or if number of requested bpns exceeds limit + +
+ +Specified identifier type not found + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/get-address.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/get-address.api.mdx new file mode 100644 index 00000000000..1996ef4e162 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/get-address.api.mdx @@ -0,0 +1,86 @@ +--- +id: get-address +title: "Returns an address by its BPNA" +description: "Get business partners of type address by BPNA ignoring case." +sidebar_label: "Returns an address by its BPNA" +hide_title: true +hide_table_of_contents: true +api: {"tags":["address-controller"],"description":"Get business partners of type address by BPNA ignoring case.","operationId":"getAddress","parameters":[{"name":"bpna","in":"path","description":"BPNA value","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Found address with specified BPNA","content":{"application/json":{"schema":{"type":"object","properties":{"bpna":{"type":"string","description":"A BPNA represents and uniquely identifies an address, which can be the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates). It is important to note that only the BPNL must be used to uniquely identify a legal entity. Even in the case that the BPNA represents the legal address of the legal entity, it shall not be used to uniquely identify the legal entity."},"name":{"type":"string","description":"The name of the address. This is not according to official registers but according to the name the sharing member chooses."},"states":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the address."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["ACTIVE","INACTIVE"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"}},"description":"An address state indicates if the address is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the business partner is still operating at that address."}},"identifiers":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"0847976000005\"."},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference"},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"}},"description":"An address identifier (uniquely) identifies the address, such as the Global Location Number (GLN)."}},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"},"administrativeAreaLevel1":{"type":"object","properties":{"countryCode":{"type":"string","description":"Country code","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"regionCode":{"type":"string","description":"Abbreviation or shorthand of the area"},"regionName":{"type":"string","description":"Describes the full name of the region within a country according to ISO 3166-214"}},"description":"Region within a country"},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"name":{"type":"string","description":"The name of the street."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."}},"description":"The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway"},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"A physical postal address describes the physical location of an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"},"administrativeAreaLevel1":{"type":"object","properties":{"countryCode":{"type":"string","description":"Country code","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"regionCode":{"type":"string","description":"Abbreviation or shorthand of the area"},"regionName":{"type":"string","description":"Describes the full name of the region within a country according to ISO 3166-214"}},"description":"Region within a country"},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else."},"bpnLegalEntity":{"type":"string","description":"The BPNL of the legal entity owning the address."},"bpnSite":{"type":"string","description":"The BPNS of the site the address belongs to."},"createdAt":{"type":"string","description":"The date when the data record has been created.","format":"date-time"},"updatedAt":{"type":"string","description":"The date when the data record has been last updated.","format":"date-time"},"isLegalAddress":{"type":"boolean","description":"Indicates if the address is the legal address to a legal entity."},"isMainAddress":{"type":"boolean","description":"Indicates if the address is the main address to a site. This is where typically the main entrance or the reception is located, or where the mail is delivered to."}},"description":"In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA."}}}},"400":{"description":"On malformed request parameters"},"404":{"description":"No address found under specified BPNA"}},"method":"get","path":"/api/catena/addresses/{bpna}","servers":[{"url":"http://localhost:8080","description":"Generated server url"}],"info":{"title":"Business Partner Data Management Pool","description":"Service that manages and shares business partner data with other CatenaX services","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Returns an address by its BPNA","description":{"content":"Get business partners of type address by BPNA ignoring case.","type":"text/plain"},"url":{"path":["api","catena","addresses",":bpna"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) BPNA value","type":"text/plain"},"type":"any","value":"","key":"bpna"}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Pool Api/business-partner-data-management-pool +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Returns an address by its BPNA + + + +Get business partners of type address by BPNA ignoring case. + +
Path Parameters
+ +Found address with specified BPNA + +
Schema
    states object[]
    type object
    + +Named type uniquely identified by its technical key + +
    identifiers object[]
    type object
    + +Named type uniquely identified by its technical key + +
    physicalPostalAddress object
    + +A physical postal address describes the physical location of an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    country object
    + +Named type uniquely identified by its technical key + +
    administrativeAreaLevel1 object
    + +Region within a country + +
    street object
    + +The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway + +
    alternativePostalAddress object
    + +An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    country object
    + +Named type uniquely identified by its technical key + +
    administrativeAreaLevel1 object
    + +Region within a country + +
+ +On malformed request parameters + +
+ +No address found under specified BPNA + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/get-addresses-1.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/get-addresses-1.api.mdx new file mode 100644 index 00000000000..e668d6e20db --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/get-addresses-1.api.mdx @@ -0,0 +1,90 @@ +--- +id: get-addresses-1 +title: "Returns addresses by different search parameters" +description: "This endpoint tries to find matches among all existing business partners of type address, filtering out partners which entirely do not match and ranking the remaining partners according to the accuracy of the match. The match of a partner is better the higher its relevancy score. Note that when using search parameters the max page is 20." +sidebar_label: "Returns addresses by different search parameters" +hide_title: true +hide_table_of_contents: true +api: {"tags":["address-controller"],"description":"This endpoint tries to find matches among all existing business partners of type address, filtering out partners which entirely do not match and ranking the remaining partners according to the accuracy of the match. The match of a partner is better the higher its relevancy score. Note that when using search parameters the max page is 20.","operationId":"getAddresses_1","parameters":[{"name":"name","in":"query","description":"Filter business partners by name","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","description":"Number of page to get results from","required":false,"schema":{"minimum":0,"type":"string","default":"0"}},{"name":"size","in":"query","description":"Size of each page","required":false,"schema":{"maximum":100,"minimum":0,"type":"string","default":"10"}}],"responses":{"200":{"description":"Page of addresses matching the search criteria, may be empty","content":{"application/json":{"schema":{"type":"object","properties":{"totalElements":{"type":"integer","description":"Total number of all results in all pages","format":"int64"},"totalPages":{"type":"integer","description":"Total number pages","format":"int32"},"page":{"type":"integer","description":"Current page number","format":"int32"},"contentSize":{"type":"integer","description":"Number of results in the page","format":"int32"},"content":{"type":"array","description":"Collection of results in the page","items":{"type":"object","properties":{"score":{"type":"number","description":"Relative quality score of the match. The higher the better.","format":"float"},"address":{"type":"object","properties":{"bpna":{"type":"string","description":"A BPNA represents and uniquely identifies an address, which can be the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates). It is important to note that only the BPNL must be used to uniquely identify a legal entity. Even in the case that the BPNA represents the legal address of the legal entity, it shall not be used to uniquely identify the legal entity."},"name":{"type":"string","description":"The name of the address. This is not according to official registers but according to the name the sharing member chooses."},"states":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the address."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["ACTIVE","INACTIVE"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"}},"description":"An address state indicates if the address is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the business partner is still operating at that address."}},"identifiers":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"0847976000005\"."},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference"},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"}},"description":"An address identifier (uniquely) identifies the address, such as the Global Location Number (GLN)."}},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"},"administrativeAreaLevel1":{"type":"object","properties":{"countryCode":{"type":"string","description":"Country code","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"regionCode":{"type":"string","description":"Abbreviation or shorthand of the area"},"regionName":{"type":"string","description":"Describes the full name of the region within a country according to ISO 3166-214"}},"description":"Region within a country"},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"name":{"type":"string","description":"The name of the street."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."}},"description":"The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway"},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"A physical postal address describes the physical location of an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"},"administrativeAreaLevel1":{"type":"object","properties":{"countryCode":{"type":"string","description":"Country code","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"regionCode":{"type":"string","description":"Abbreviation or shorthand of the area"},"regionName":{"type":"string","description":"Describes the full name of the region within a country according to ISO 3166-214"}},"description":"Region within a country"},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else."},"bpnLegalEntity":{"type":"string","description":"The BPNL of the legal entity owning the address."},"bpnSite":{"type":"string","description":"The BPNS of the site the address belongs to."},"createdAt":{"type":"string","description":"The date when the data record has been created.","format":"date-time"},"updatedAt":{"type":"string","description":"The date when the data record has been last updated.","format":"date-time"},"isLegalAddress":{"type":"boolean","description":"Indicates if the address is the legal address to a legal entity."},"isMainAddress":{"type":"boolean","description":"Indicates if the address is the main address to a site. This is where typically the main entrance or the reception is located, or where the mail is delivered to."}},"description":"In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA."}},"description":"Match for a business partner record of type address. In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA."}}},"description":"Paginated collection of results"}}}},"400":{"description":"On malformed search or pagination request"}},"method":"get","path":"/api/catena/addresses","servers":[{"url":"http://localhost:8080","description":"Generated server url"}],"info":{"title":"Business Partner Data Management Pool","description":"Service that manages and shares business partner data with other CatenaX services","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Returns addresses by different search parameters","description":{"content":"This endpoint tries to find matches among all existing business partners of type address, filtering out partners which entirely do not match and ranking the remaining partners according to the accuracy of the match. The match of a partner is better the higher its relevancy score. Note that when using search parameters the max page is 20.","type":"text/plain"},"url":{"path":["api","catena","addresses"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"description":{"content":"Filter business partners by name","type":"text/plain"},"key":"name","value":""},{"disabled":false,"description":{"content":"Number of page to get results from","type":"text/plain"},"key":"page","value":""},{"disabled":false,"description":{"content":"Size of each page","type":"text/plain"},"key":"size","value":""}],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Pool Api/business-partner-data-management-pool +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Returns addresses by different search parameters + + + +This endpoint tries to find matches among all existing business partners of type address, filtering out partners which entirely do not match and ranking the remaining partners according to the accuracy of the match. The match of a partner is better the higher its relevancy score. Note that when using search parameters the max page is 20. + +
Query Parameters
+ +Page of addresses matching the search criteria, may be empty + +
Schema
    content object[]
    + +Collection of results in the page + +
    address object
    + +In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA. + +
    states object[]
    type object
    + +Named type uniquely identified by its technical key + +
    identifiers object[]
    type object
    + +Named type uniquely identified by its technical key + +
    physicalPostalAddress object
    + +A physical postal address describes the physical location of an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    country object
    + +Named type uniquely identified by its technical key + +
    administrativeAreaLevel1 object
    + +Region within a country + +
    street object
    + +The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway + +
    alternativePostalAddress object
    + +An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    country object
    + +Named type uniquely identified by its technical key + +
    administrativeAreaLevel1 object
    + +Region within a country + +
+ +On malformed search or pagination request + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/get-addresses.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/get-addresses.api.mdx new file mode 100644 index 00000000000..9c2ac49342a --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/get-addresses.api.mdx @@ -0,0 +1,90 @@ +--- +id: get-addresses +title: "Returns all addresses of a legal entity with a specific BPNL" +description: "Get business partners of type address belonging to a business partner of type legal entity, identified by the business partner's BPNL ignoring case." +sidebar_label: "Returns all addresses of a legal entity with a specific BPNL" +hide_title: true +hide_table_of_contents: true +api: {"tags":["legal-entity-controller"],"description":"Get business partners of type address belonging to a business partner of type legal entity, identified by the business partner's BPNL ignoring case.","operationId":"getAddresses","parameters":[{"name":"bpnl","in":"path","description":"BPNL value","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","description":"Number of page to get results from","required":false,"schema":{"minimum":0,"type":"string","default":"0"}},{"name":"size","in":"query","description":"Size of each page","required":false,"schema":{"maximum":100,"minimum":0,"type":"string","default":"10"}}],"responses":{"200":{"description":"The addresses for the specified BPNL","content":{"application/json":{"schema":{"type":"object","properties":{"totalElements":{"type":"integer","description":"Total number of all results in all pages","format":"int64"},"totalPages":{"type":"integer","description":"Total number pages","format":"int32"},"page":{"type":"integer","description":"Current page number","format":"int32"},"contentSize":{"type":"integer","description":"Number of results in the page","format":"int32"},"content":{"type":"array","description":"Collection of results in the page","items":{"type":"object","properties":{"bpna":{"type":"string","description":"A BPNA represents and uniquely identifies an address, which can be the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates). It is important to note that only the BPNL must be used to uniquely identify a legal entity. Even in the case that the BPNA represents the legal address of the legal entity, it shall not be used to uniquely identify the legal entity."},"name":{"type":"string","description":"The name of the address. This is not according to official registers but according to the name the sharing member chooses."},"states":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the address."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["ACTIVE","INACTIVE"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"}},"description":"An address state indicates if the address is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the business partner is still operating at that address."}},"identifiers":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"0847976000005\"."},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference"},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"}},"description":"An address identifier (uniquely) identifies the address, such as the Global Location Number (GLN)."}},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"},"administrativeAreaLevel1":{"type":"object","properties":{"countryCode":{"type":"string","description":"Country code","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"regionCode":{"type":"string","description":"Abbreviation or shorthand of the area"},"regionName":{"type":"string","description":"Describes the full name of the region within a country according to ISO 3166-214"}},"description":"Region within a country"},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"name":{"type":"string","description":"The name of the street."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."}},"description":"The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway"},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"A physical postal address describes the physical location of an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"},"administrativeAreaLevel1":{"type":"object","properties":{"countryCode":{"type":"string","description":"Country code","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"regionCode":{"type":"string","description":"Abbreviation or shorthand of the area"},"regionName":{"type":"string","description":"Describes the full name of the region within a country according to ISO 3166-214"}},"description":"Region within a country"},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else."},"bpnLegalEntity":{"type":"string","description":"The BPNL of the legal entity owning the address."},"bpnSite":{"type":"string","description":"The BPNS of the site the address belongs to."},"createdAt":{"type":"string","description":"The date when the data record has been created.","format":"date-time"},"updatedAt":{"type":"string","description":"The date when the data record has been last updated.","format":"date-time"},"isLegalAddress":{"type":"boolean","description":"Indicates if the address is the legal address to a legal entity."},"isMainAddress":{"type":"boolean","description":"Indicates if the address is the main address to a site. This is where typically the main entrance or the reception is located, or where the mail is delivered to."}},"description":"In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA."}}},"description":"Paginated collection of results"}}}},"400":{"description":"On malformed pagination request"},"404":{"description":"No business partner found for specified BPNL"}},"method":"get","path":"/api/catena/legal-entities/{bpnl}/addresses","servers":[{"url":"http://localhost:8080","description":"Generated server url"}],"info":{"title":"Business Partner Data Management Pool","description":"Service that manages and shares business partner data with other CatenaX services","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Returns all addresses of a legal entity with a specific BPNL","description":{"content":"Get business partners of type address belonging to a business partner of type legal entity, identified by the business partner's BPNL ignoring case.","type":"text/plain"},"url":{"path":["api","catena","legal-entities",":bpnl","addresses"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"description":{"content":"Number of page to get results from","type":"text/plain"},"key":"page","value":""},{"disabled":false,"description":{"content":"Size of each page","type":"text/plain"},"key":"size","value":""}],"variable":[{"disabled":false,"description":{"content":"(Required) BPNL value","type":"text/plain"},"type":"any","value":"","key":"bpnl"}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Pool Api/business-partner-data-management-pool +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Returns all addresses of a legal entity with a specific BPNL + + + +Get business partners of type address belonging to a business partner of type legal entity, identified by the business partner's BPNL ignoring case. + +
Path Parameters
Query Parameters
+ +The addresses for the specified BPNL + +
Schema
    content object[]
    + +Collection of results in the page + +
    states object[]
    type object
    + +Named type uniquely identified by its technical key + +
    identifiers object[]
    type object
    + +Named type uniquely identified by its technical key + +
    physicalPostalAddress object
    + +A physical postal address describes the physical location of an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    country object
    + +Named type uniquely identified by its technical key + +
    administrativeAreaLevel1 object
    + +Region within a country + +
    street object
    + +The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway + +
    alternativePostalAddress object
    + +An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    country object
    + +Named type uniquely identified by its technical key + +
    administrativeAreaLevel1 object
    + +Region within a country + +
+ +On malformed pagination request + +
+ +No business partner found for specified BPNL + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/get-admin-areas-level-1.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/get-admin-areas-level-1.api.mdx new file mode 100644 index 00000000000..a7c1c997de3 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/get-admin-areas-level-1.api.mdx @@ -0,0 +1,42 @@ +--- +id: get-admin-areas-level-1 +title: "Get page of country subdivisions suitable for the administrativeAreaLevel1 address property" +description: "Lists all currently known country subdivisions according to ISO 3166-2 in a paginated result" +sidebar_label: "Get page of country subdivisions suitable for the administrativeAreaLevel1 address property" +hide_title: true +hide_table_of_contents: true +api: {"tags":["metadata-controller"],"description":"Lists all currently known country subdivisions according to ISO 3166-2 in a paginated result","operationId":"getAdminAreasLevel1","parameters":[{"name":"page","in":"query","description":"Number of page to get results from","required":false,"schema":{"minimum":0,"type":"string","default":"0"}},{"name":"size","in":"query","description":"Size of each page","required":false,"schema":{"maximum":100,"minimum":0,"type":"string","default":"10"}}],"responses":{"200":{"description":"Page of existing country subdivisions, may be empty","content":{"application/json":{"schema":{"type":"object","properties":{"totalElements":{"type":"integer","description":"Total number of all results in all pages","format":"int64"},"totalPages":{"type":"integer","description":"Total number pages","format":"int32"},"page":{"type":"integer","description":"Current page number","format":"int32"},"contentSize":{"type":"integer","description":"Number of results in the page","format":"int32"},"content":{"type":"array","description":"Collection of results in the page","items":{"type":"object","properties":{"countryCode":{"type":"string","description":"Country code","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"code":{"type":"string","description":"The country subdivision code according to ISO 3166-2"},"name":{"type":"string","description":"The name of the country subdivision according to ISO 3166-2"}},"description":"Country subdivision"}}},"description":"Paginated collection of results"}}}},"400":{"description":"On malformed request parameters"}},"method":"get","path":"/api/catena/administrative-areas-level1","servers":[{"url":"http://localhost:8080","description":"Generated server url"}],"info":{"title":"Business Partner Data Management Pool","description":"Service that manages and shares business partner data with other CatenaX services","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Get page of country subdivisions suitable for the administrativeAreaLevel1 address property","description":{"content":"Lists all currently known country subdivisions according to ISO 3166-2 in a paginated result","type":"text/plain"},"url":{"path":["api","catena","administrative-areas-level1"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"description":{"content":"Number of page to get results from","type":"text/plain"},"key":"page","value":""},{"disabled":false,"description":{"content":"Size of each page","type":"text/plain"},"key":"size","value":""}],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Pool Api/business-partner-data-management-pool +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Get page of country subdivisions suitable for the administrativeAreaLevel1 address property + + + +Lists all currently known country subdivisions according to ISO 3166-2 in a paginated result + +
Query Parameters
+ +Page of existing country subdivisions, may be empty + +
Schema
    content object[]
    + +Collection of results in the page + +
+ +On malformed request parameters + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/get-business-partners.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/get-business-partners.api.mdx new file mode 100644 index 00000000000..859b3c59157 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/get-business-partners.api.mdx @@ -0,0 +1,38 @@ +--- +id: get-business-partners +title: "Fetch information about the latest OpenSearch export" +description: "Fetch information about the latest export (either ongoing or already finished)" +sidebar_label: "Fetch information about the latest OpenSearch export" +hide_title: true +hide_table_of_contents: true +api: {"tags":["open-search-controller"],"description":"Fetch information about the latest export (either ongoing or already finished)","operationId":"getBusinessPartners","responses":{"200":{"description":"Export information found","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["OPENSEARCH","SAAS_IMPORT"]},"status":{"type":"string","enum":["NOT_SYNCED","RUNNING","SUCCESS","ERROR"]},"count":{"type":"integer","format":"int32"},"progress":{"type":"number","format":"float"},"errorDetails":{"type":"string"},"startedAt":{"type":"string","format":"date-time"},"finishedAt":{"type":"string","format":"date-time"}}}}}},"500":{"description":"Fetching failed (no connection to database)"}},"method":"get","path":"/api/opensearch/business-partner","servers":[{"url":"http://localhost:8080","description":"Generated server url"}],"info":{"title":"Business Partner Data Management Pool","description":"Service that manages and shares business partner data with other CatenaX services","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Fetch information about the latest OpenSearch export","description":{"content":"Fetch information about the latest export (either ongoing or already finished)","type":"text/plain"},"url":{"path":["api","opensearch","business-partner"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Pool Api/business-partner-data-management-pool +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Fetch information about the latest OpenSearch export + + + +Fetch information about the latest export (either ongoing or already finished) + +
+ +Export information found + +
Schema
+ +Fetching failed (no connection to database) + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/get-changelog-entries.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/get-changelog-entries.api.mdx new file mode 100644 index 00000000000..d67ba9840ca --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/get-changelog-entries.api.mdx @@ -0,0 +1,46 @@ +--- +id: get-changelog-entries +title: "Returns changelog entries as of a specified timestamp, optionally filtered by a list of BPNL/S/A, or business partner types" +description: "Returns changelog entries as of a specified timestamp, optionally filtered by a list of BPNL/S/A, or business partner types" +sidebar_label: "Returns changelog entries as of a specified timestamp, optionally filtered by a list of BPNL/S/A, or business partner types" +hide_title: true +hide_table_of_contents: true +api: {"tags":["changelog-controller"],"operationId":"getChangelogEntries","parameters":[{"name":"page","in":"query","description":"Number of page to get results from","required":false,"schema":{"minimum":0,"type":"string","default":"0"}},{"name":"size","in":"query","description":"Size of each page","required":false,"schema":{"maximum":100,"minimum":0,"type":"string","default":"10"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"timestampAfter":{"type":"string","description":"Only changelog entries created after this time. Ignored if empty.","format":"date-time","example":"2023-03-20T10:23:28.194Z"},"bpns":{"uniqueItems":true,"type":"array","description":"Only for business partners with the given array of BPNL/S/A. Ignored if empty.","items":{"type":"string"}},"businessPartnerTypes":{"uniqueItems":true,"type":"array","description":"Only for business partners with the given array of business partner types. Ignored if empty.","items":{"type":"string","enum":["LEGAL_ENTITY","SITE","ADDRESS","GENERIC"]}}},"description":"Request for searching and filtering the business partner changelog"}}},"required":true},"responses":{"200":{"description":"The specified changelog entries","content":{"application/json":{"schema":{"type":"object","properties":{"totalElements":{"type":"integer","description":"Total number of all results in all pages","format":"int64"},"totalPages":{"type":"integer","description":"Total number pages","format":"int32"},"page":{"type":"integer","description":"Current page number","format":"int32"},"contentSize":{"type":"integer","description":"Number of results in the page","format":"int32"},"content":{"type":"array","description":"Collection of results in the page","items":{"type":"object","properties":{"bpn":{"type":"string","description":"The business partner number for which the changelog entry was created. Can be either a BPNL, BPNS or BPNA."},"businessPartnerType":{"type":"string","description":"One of the types of business partners for which the changelog entry was created: legal entity, site, address.","enum":["LEGAL_ENTITY","SITE","ADDRESS","GENERIC"]},"timestamp":{"type":"string","description":"The date and time when the changelog entry was created.","format":"date-time"},"changelogType":{"type":"string","description":"One of the actions for which the changelog entry was created: create, update.","enum":["CREATE","UPDATE"]}},"description":"An entry of the changelog, which is created each time a business partner is modified and contains data about the change. The actual new state of the business partner is not included."}}},"description":"Paginated collection of results"}}}},"400":{"description":"On malformed pagination request"},"404":{"description":"No business partner found for specified bpn"}},"description":"Returns changelog entries as of a specified timestamp, optionally filtered by a list of BPNL/S/A, or business partner types","method":"post","path":"/api/catena/business-partners/changelog/search","servers":[{"url":"http://localhost:8080","description":"Generated server url"}],"jsonRequestBodyExample":{"timestampAfter":"2023-03-20T10:23:28.194Z","bpns":["string"],"businessPartnerTypes":["LEGAL_ENTITY"]},"info":{"title":"Business Partner Data Management Pool","description":"Service that manages and shares business partner data with other CatenaX services","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Returns changelog entries as of a specified timestamp, optionally filtered by a list of BPNL/S/A, or business partner types","description":{"type":"text/plain"},"url":{"path":["api","catena","business-partners","changelog","search"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"description":{"content":"Number of page to get results from","type":"text/plain"},"key":"page","value":""},{"disabled":false,"description":{"content":"Size of each page","type":"text/plain"},"key":"size","value":""}],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Pool Api/business-partner-data-management-pool +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Returns changelog entries as of a specified timestamp, optionally filtered by a list of BPNL/S/A, or business partner types + + + +Returns changelog entries as of a specified timestamp, optionally filtered by a list of BPNL/S/A, or business partner types + +
Query Parameters
Request Body required
+ +The specified changelog entries + +
Schema
    content object[]
    + +Collection of results in the page + +
+ +On malformed pagination request + +
+ +No business partner found for specified bpn + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/get-field-quality-rules.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/get-field-quality-rules.api.mdx new file mode 100644 index 00000000000..d5bba38350f --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/get-field-quality-rules.api.mdx @@ -0,0 +1,38 @@ +--- +id: get-field-quality-rules +title: "Get all field quality rules filtered by country (specified by its ISO 3166-1 alpha-2 country code)" +description: "List the country specific data rules for entity fields.All fields that are not in this list are considered to be forbidden." +sidebar_label: "Get all field quality rules filtered by country (specified by its ISO 3166-1 alpha-2 country code)" +hide_title: true +hide_table_of_contents: true +api: {"tags":["metadata-controller"],"description":"List the country specific data rules for entity fields.All fields that are not in this list are considered to be forbidden.","operationId":"getFieldQualityRules","parameters":[{"name":"country","in":"query","description":"ISO 3166-1 alpha-2 country code","required":true,"schema":{"type":"string","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]}}],"responses":{"200":{"description":"List of the existing rules for the given country","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"fieldPath":{"type":"string","description":"Path to the field"},"schemaName":{"type":"string","description":"Schema name of the entity the field belongs to"},"country":{"type":"string","description":"Country for wich the rule is valid","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"qualityLevel":{"type":"string","description":"Defines the quality of an entity field.","enum":["MANDATORY","OPTIONAL","FORBIDDEN"]}},"description":"Rule for the quality level of an entity field "}}}}},"400":{"description":"On malformed request parameters"}},"method":"get","path":"/api/catena/field-quality-rules/","servers":[{"url":"http://localhost:8080","description":"Generated server url"}],"info":{"title":"Business Partner Data Management Pool","description":"Service that manages and shares business partner data with other CatenaX services","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Get all field quality rules filtered by country (specified by its ISO 3166-1 alpha-2 country code)","description":{"content":"List the country specific data rules for entity fields.All fields that are not in this list are considered to be forbidden.","type":"text/plain"},"url":{"path":["api","catena","field-quality-rules",""],"host":["{{baseUrl}}"],"query":[{"disabled":false,"description":{"content":"(Required) ISO 3166-1 alpha-2 country code","type":"text/plain"},"key":"country","value":""}],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Pool Api/business-partner-data-management-pool +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Get all field quality rules filtered by country (specified by its ISO 3166-1 alpha-2 country code) + + + +List the country specific data rules for entity fields.All fields that are not in this list are considered to be forbidden. + +
Query Parameters
+ +List of the existing rules for the given country + +
Schema array
+ +On malformed request parameters + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/get-identifier-types.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/get-identifier-types.api.mdx new file mode 100644 index 00000000000..e2cc9976652 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/get-identifier-types.api.mdx @@ -0,0 +1,46 @@ +--- +id: get-identifier-types +title: "Returns all identifier types filtered by business partner type and country." +description: "Lists all matching identifier types including validity details in a paginated result" +sidebar_label: "Returns all identifier types filtered by business partner type and country." +hide_title: true +hide_table_of_contents: true +api: {"tags":["metadata-controller"],"description":"Lists all matching identifier types including validity details in a paginated result","operationId":"getIdentifierTypes","parameters":[{"name":"page","in":"query","description":"Number of page to get results from","required":false,"schema":{"minimum":0,"type":"string","default":"0"}},{"name":"size","in":"query","description":"Size of each page","required":false,"schema":{"maximum":100,"minimum":0,"type":"string","default":"10"}},{"name":"businessPartnerType","in":"query","required":true,"schema":{"type":"string","description":"Specifies if an identifier type is valid for legal entities (L) or addresses (A). Sites (S) are not supported.","enum":["LEGAL_ENTITY","ADDRESS"]}},{"name":"country","in":"query","required":false,"schema":{"type":"string","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]}}],"responses":{"200":{"description":"Page of existing identifier types, may be empty","content":{"application/json":{"schema":{"type":"object","properties":{"totalElements":{"type":"integer","description":"Total number of all results in all pages","format":"int64"},"totalPages":{"type":"integer","description":"Total number pages","format":"int32"},"page":{"type":"integer","description":"Current page number","format":"int32"},"contentSize":{"type":"integer","description":"Number of results in the page","format":"int32"},"content":{"type":"array","description":"Collection of results in the page","items":{"type":"object","properties":{"technicalKey":{"type":"string","description":"The technical identifier (unique in combination with businessPartnerType)."},"businessPartnerType":{"type":"string","description":"Specifies if an identifier type is valid for legal entities (L) or addresses (A). Sites (S) are not supported.","enum":["LEGAL_ENTITY","ADDRESS"]},"name":{"type":"string","description":"The name of the identifier type."},"details":{"type":"array","description":"Validity details.","items":{"type":"object","properties":{"country":{"type":"string","description":"2-digit country code for which this identifier is valid; null for universal identifiers.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"mandatory":{"type":"boolean","description":"True if identifier is mandatory in this country."}},"description":"Information for which countries an identifier type is valid and mandatory."}}},"description":"An identifier type defines the name or category of an identifier, such as the German Handelsregisternummer, VAT number, Global Location Number (GLN), etc. The identifier type is valid for a business partner type."}}},"description":"Paginated collection of results"}}}},"400":{"description":"On malformed request parameters"}},"method":"get","path":"/api/catena/identifier-types","servers":[{"url":"http://localhost:8080","description":"Generated server url"}],"info":{"title":"Business Partner Data Management Pool","description":"Service that manages and shares business partner data with other CatenaX services","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Returns all identifier types filtered by business partner type and country.","description":{"content":"Lists all matching identifier types including validity details in a paginated result","type":"text/plain"},"url":{"path":["api","catena","identifier-types"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"description":{"content":"Number of page to get results from","type":"text/plain"},"key":"page","value":""},{"disabled":false,"description":{"content":"Size of each page","type":"text/plain"},"key":"size","value":""},{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"key":"businessPartnerType","value":""},{"disabled":false,"key":"country","value":""}],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Pool Api/business-partner-data-management-pool +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Returns all identifier types filtered by business partner type and country. + + + +Lists all matching identifier types including validity details in a paginated result + +
Query Parameters
+ +Page of existing identifier types, may be empty + +
Schema
    content object[]
    + +Collection of results in the page + +
    details object[]
    + +Validity details. + +
+ +On malformed request parameters + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/get-legal-entities.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/get-legal-entities.api.mdx new file mode 100644 index 00000000000..9932f3f6e53 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/get-legal-entities.api.mdx @@ -0,0 +1,126 @@ +--- +id: get-legal-entities +title: "Returns legal entities by different search parameters" +description: "This endpoint tries to find matches among all existing business partners of type legal entity, filtering out partners which entirely do not match and ranking the remaining partners according to the accuracy of the match. The match of a partner is better the higher its relevancy score. Note that when using search parameters the max page is 20." +sidebar_label: "Returns legal entities by different search parameters" +hide_title: true +hide_table_of_contents: true +api: {"tags":["legal-entity-controller"],"description":"This endpoint tries to find matches among all existing business partners of type legal entity, filtering out partners which entirely do not match and ranking the remaining partners according to the accuracy of the match. The match of a partner is better the higher its relevancy score. Note that when using search parameters the max page is 20.","operationId":"getLegalEntities","parameters":[{"name":"legalName","in":"query","description":"Filter legal entities by name","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","description":"Number of page to get results from","required":false,"schema":{"minimum":0,"type":"string","default":"0"}},{"name":"size","in":"query","description":"Size of each page","required":false,"schema":{"maximum":100,"minimum":0,"type":"string","default":"10"}}],"responses":{"200":{"description":"Page of business partners matching the search criteria, may be empty","content":{"application/json":{"schema":{"type":"object","properties":{"totalElements":{"type":"integer","description":"Total number of all results in all pages","format":"int64"},"totalPages":{"type":"integer","description":"Total number pages","format":"int32"},"page":{"type":"integer","description":"Current page number","format":"int32"},"contentSize":{"type":"integer","description":"Number of results in the page","format":"int32"},"content":{"type":"array","description":"Collection of results in the page","items":{"type":"object","properties":{"score":{"type":"number","description":"Relative quality score of the match. The higher the better.","format":"float"},"legalName":{"type":"string","description":"The name of the legal entity according to official registers."},"bpnl":{"type":"string","description":"A BPNL represents and uniquely identifies a legal entity, which is defined by its legal name (including legal form, if registered), legal address and tax number."},"identifiers":{"type":"array","description":"The list of identifiers of the legal entity.","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"DE123465789\"."},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference"},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"},"issuingBody":{"type":"string","description":"The name of the official register, where the identifier is registered. For example, a Handelsregisternummer in Germany is only valid with its corresponding Handelsregister."}},"description":"A legal entity identifier (uniquely) identifies the legal entity, such as the German Handelsregisternummer, a VAT number, etc."}},"legalShortName":{"type":"string","description":"The abbreviated name of the legal entity."},"legalForm":{"type":"object","properties":{"technicalKey":{"type":"string","description":"The technical identifier of the legal form according to ISO 20275."},"name":{"type":"string","description":"The name of legal form according to ISO 20275."},"abbreviation":{"type":"string","description":"The abbreviated name of the legal form, such as AG for German Aktiengesellschaft."}},"description":"A legal form is a mandatory corporate legal framework by which companies can conduct business, charitable or other permissible activities."},"states":{"type":"array","description":"The list of (temporary) states of the legal entity.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the legal entity, such as from the German Handelsregister."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["ACTIVE","INACTIVE"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"}},"description":"A legal entity state indicates if the legal entity is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the legal entity is still operating."}},"classifications":{"type":"array","description":"The list of classifications of the legal entity, such as a specific industry.","items":{"type":"object","properties":{"value":{"type":"string","description":"The name of the class belonging to the classification."},"code":{"type":"string","description":"The identifier of the class belonging to the classification."},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["NACE","NAF","NAICS","SIC"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"}},"description":"A legal entity classification is an assignment of the legal entity to an industry. It does not necessarily have to be the only industry the company is active in (see large companies operating in different industries). Multiple assignments to several industries are possible per classification type."}},"relations":{"type":"array","description":"Relations to other business partners.","items":{"type":"object","properties":{"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["CX_LEGAL_SUCCESSOR_OF","CX_LEGAL_PREDECESSOR_OF"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"},"startBpnl":{"type":"string","description":"BPN of partner which is the source of the relation"},"endBpnl":{"type":"string","description":"BPN of partner which is the target of the relation"},"validFrom":{"type":"string","description":"Time when the relation started","format":"date-time"},"validTo":{"type":"string","description":"Time when the relation ended","format":"date-time"}},"description":"Directed relation between two business partners"}},"currentness":{"type":"string","description":"The date the business partner data was last indicated to be still current.","format":"date-time"},"createdAt":{"type":"string","description":"The date when the data record has been created.","format":"date-time"},"updatedAt":{"type":"string","description":"The date when the data record has been last updated.","format":"date-time"},"legalAddress":{"type":"object","properties":{"bpna":{"type":"string","description":"A BPNA represents and uniquely identifies an address, which can be the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates). It is important to note that only the BPNL must be used to uniquely identify a legal entity. Even in the case that the BPNA represents the legal address of the legal entity, it shall not be used to uniquely identify the legal entity."},"name":{"type":"string","description":"The name of the address. This is not according to official registers but according to the name the sharing member chooses."},"states":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the address."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["ACTIVE","INACTIVE"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"}},"description":"An address state indicates if the address is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the business partner is still operating at that address."}},"identifiers":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"0847976000005\"."},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference"},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"}},"description":"An address identifier (uniquely) identifies the address, such as the Global Location Number (GLN)."}},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"},"administrativeAreaLevel1":{"type":"object","properties":{"countryCode":{"type":"string","description":"Country code","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"regionCode":{"type":"string","description":"Abbreviation or shorthand of the area"},"regionName":{"type":"string","description":"Describes the full name of the region within a country according to ISO 3166-214"}},"description":"Region within a country"},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"name":{"type":"string","description":"The name of the street."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."}},"description":"The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway"},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"A physical postal address describes the physical location of an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"},"administrativeAreaLevel1":{"type":"object","properties":{"countryCode":{"type":"string","description":"Country code","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"regionCode":{"type":"string","description":"Abbreviation or shorthand of the area"},"regionName":{"type":"string","description":"Describes the full name of the region within a country according to ISO 3166-214"}},"description":"Region within a country"},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else."},"bpnLegalEntity":{"type":"string","description":"The BPNL of the legal entity owning the address."},"bpnSite":{"type":"string","description":"The BPNS of the site the address belongs to."},"createdAt":{"type":"string","description":"The date when the data record has been created.","format":"date-time"},"updatedAt":{"type":"string","description":"The date when the data record has been last updated.","format":"date-time"},"isLegalAddress":{"type":"boolean","description":"Indicates if the address is the legal address to a legal entity."},"isMainAddress":{"type":"boolean","description":"Indicates if the address is the main address to a site. This is where typically the main entrance or the reception is located, or where the mail is delivered to."}},"description":"In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA."}},"description":"Match with score for a business partner record of type legal entity. In general, a legal entity is a juridical person that has legal rights and duties related to contracts, agreements, and obligations. The term especially applies to any kind of organization (such as an enterprise or company, university, association, etc.) established under the law applicable to a country.In Catena-X, a legal entity is a type of business partner representing a legally registered organization with its official registration information, such as legal name (including legal form, if registered), legal address and tax number.A legal entity has exactly one legal address, but it is possible to specify additional addresses that a legal entity owns. Thus, at least one address is assigned to a legal entity. A legal entity can own sites. Thus, many or no sites are assigned to a legal entity. A legal entity is uniquely identified by the BPNL."}}},"description":"Paginated collection of results"}}}},"400":{"description":"On malformed search or pagination request"}},"method":"get","path":"/api/catena/legal-entities","servers":[{"url":"http://localhost:8080","description":"Generated server url"}],"info":{"title":"Business Partner Data Management Pool","description":"Service that manages and shares business partner data with other CatenaX services","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Returns legal entities by different search parameters","description":{"content":"This endpoint tries to find matches among all existing business partners of type legal entity, filtering out partners which entirely do not match and ranking the remaining partners according to the accuracy of the match. The match of a partner is better the higher its relevancy score. Note that when using search parameters the max page is 20.","type":"text/plain"},"url":{"path":["api","catena","legal-entities"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"description":{"content":"Filter legal entities by name","type":"text/plain"},"key":"legalName","value":""},{"disabled":false,"description":{"content":"Number of page to get results from","type":"text/plain"},"key":"page","value":""},{"disabled":false,"description":{"content":"Size of each page","type":"text/plain"},"key":"size","value":""}],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Pool Api/business-partner-data-management-pool +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Returns legal entities by different search parameters + + + +This endpoint tries to find matches among all existing business partners of type legal entity, filtering out partners which entirely do not match and ranking the remaining partners according to the accuracy of the match. The match of a partner is better the higher its relevancy score. Note that when using search parameters the max page is 20. + +
Query Parameters
+ +Page of business partners matching the search criteria, may be empty + +
Schema
    content object[]
    + +Collection of results in the page + +
    identifiers object[]
    + +The list of identifiers of the legal entity. + +
    type object
    + +Named type uniquely identified by its technical key + +
    legalForm object
    + +A legal form is a mandatory corporate legal framework by which companies can conduct business, charitable or other permissible activities. + +
    states object[]
    + +The list of (temporary) states of the legal entity. + +
    type object
    + +Named type uniquely identified by its technical key + +
    classifications object[]
    + +The list of classifications of the legal entity, such as a specific industry. + +
    type object
    + +Named type uniquely identified by its technical key + +
    relations object[]
    + +Relations to other business partners. + +
    type object
    + +Named type uniquely identified by its technical key + +
    legalAddress object
    + +In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA. + +
    states object[]
    type object
    + +Named type uniquely identified by its technical key + +
    identifiers object[]
    type object
    + +Named type uniquely identified by its technical key + +
    physicalPostalAddress object
    + +A physical postal address describes the physical location of an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    country object
    + +Named type uniquely identified by its technical key + +
    administrativeAreaLevel1 object
    + +Region within a country + +
    street object
    + +The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway + +
    alternativePostalAddress object
    + +An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    country object
    + +Named type uniquely identified by its technical key + +
    administrativeAreaLevel1 object
    + +Region within a country + +
+ +On malformed search or pagination request + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/get-legal-entity.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/get-legal-entity.api.mdx new file mode 100644 index 00000000000..67efb27f275 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/get-legal-entity.api.mdx @@ -0,0 +1,126 @@ +--- +id: get-legal-entity +title: "Returns a legal entity by identifier, like BPN, DUNS or EU VAT ID, specified by the identifier type" +description: "This endpoint tries to find a business partner by the specified identifier. The identifier value is case insensitively compared but needs to be given exactly. By default the value given is interpreted as a BPN. By specifying the technical key of another identifier typethe value is matched against the identifiers of that given type." +sidebar_label: "Returns a legal entity by identifier, like BPN, DUNS or EU VAT ID, specified by the identifier type" +hide_title: true +hide_table_of_contents: true +api: {"tags":["legal-entity-controller"],"description":"This endpoint tries to find a business partner by the specified identifier. The identifier value is case insensitively compared but needs to be given exactly. By default the value given is interpreted as a BPN. By specifying the technical key of another identifier typethe value is matched against the identifiers of that given type.","operationId":"getLegalEntity","parameters":[{"name":"idValue","in":"path","description":"Identifier value","required":true,"schema":{"type":"string"}},{"name":"idType","in":"query","description":"Type of identifier to use, defaults to BPN when omitted","required":false,"schema":{"type":"string","default":"BPN"}}],"responses":{"200":{"description":"Found business partner with specified identifier","content":{"application/json":{"schema":{"type":"object","properties":{"legalName":{"type":"string","description":"The name of the legal entity according to official registers."},"bpnl":{"type":"string","description":"A BPNL represents and uniquely identifies a legal entity, which is defined by its legal name (including legal form, if registered), legal address and tax number."},"identifiers":{"type":"array","description":"The list of identifiers of the legal entity.","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"DE123465789\"."},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference"},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"},"issuingBody":{"type":"string","description":"The name of the official register, where the identifier is registered. For example, a Handelsregisternummer in Germany is only valid with its corresponding Handelsregister."}},"description":"A legal entity identifier (uniquely) identifies the legal entity, such as the German Handelsregisternummer, a VAT number, etc."}},"legalShortName":{"type":"string","description":"The abbreviated name of the legal entity."},"legalForm":{"type":"object","properties":{"technicalKey":{"type":"string","description":"The technical identifier of the legal form according to ISO 20275."},"name":{"type":"string","description":"The name of legal form according to ISO 20275."},"abbreviation":{"type":"string","description":"The abbreviated name of the legal form, such as AG for German Aktiengesellschaft."}},"description":"A legal form is a mandatory corporate legal framework by which companies can conduct business, charitable or other permissible activities."},"states":{"type":"array","description":"The list of (temporary) states of the legal entity.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the legal entity, such as from the German Handelsregister."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["ACTIVE","INACTIVE"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"}},"description":"A legal entity state indicates if the legal entity is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the legal entity is still operating."}},"classifications":{"type":"array","description":"The list of classifications of the legal entity, such as a specific industry.","items":{"type":"object","properties":{"value":{"type":"string","description":"The name of the class belonging to the classification."},"code":{"type":"string","description":"The identifier of the class belonging to the classification."},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["NACE","NAF","NAICS","SIC"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"}},"description":"A legal entity classification is an assignment of the legal entity to an industry. It does not necessarily have to be the only industry the company is active in (see large companies operating in different industries). Multiple assignments to several industries are possible per classification type."}},"relations":{"type":"array","description":"Relations to other business partners.","items":{"type":"object","properties":{"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["CX_LEGAL_SUCCESSOR_OF","CX_LEGAL_PREDECESSOR_OF"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"},"startBpnl":{"type":"string","description":"BPN of partner which is the source of the relation"},"endBpnl":{"type":"string","description":"BPN of partner which is the target of the relation"},"validFrom":{"type":"string","description":"Time when the relation started","format":"date-time"},"validTo":{"type":"string","description":"Time when the relation ended","format":"date-time"}},"description":"Directed relation between two business partners"}},"currentness":{"type":"string","description":"The date the business partner data was last indicated to be still current.","format":"date-time"},"createdAt":{"type":"string","description":"The date when the data record has been created.","format":"date-time"},"updatedAt":{"type":"string","description":"The date when the data record has been last updated.","format":"date-time"},"legalAddress":{"type":"object","properties":{"bpna":{"type":"string","description":"A BPNA represents and uniquely identifies an address, which can be the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates). It is important to note that only the BPNL must be used to uniquely identify a legal entity. Even in the case that the BPNA represents the legal address of the legal entity, it shall not be used to uniquely identify the legal entity."},"name":{"type":"string","description":"The name of the address. This is not according to official registers but according to the name the sharing member chooses."},"states":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the address."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["ACTIVE","INACTIVE"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"}},"description":"An address state indicates if the address is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the business partner is still operating at that address."}},"identifiers":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"0847976000005\"."},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference"},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"}},"description":"An address identifier (uniquely) identifies the address, such as the Global Location Number (GLN)."}},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"},"administrativeAreaLevel1":{"type":"object","properties":{"countryCode":{"type":"string","description":"Country code","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"regionCode":{"type":"string","description":"Abbreviation or shorthand of the area"},"regionName":{"type":"string","description":"Describes the full name of the region within a country according to ISO 3166-214"}},"description":"Region within a country"},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"name":{"type":"string","description":"The name of the street."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."}},"description":"The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway"},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"A physical postal address describes the physical location of an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"},"administrativeAreaLevel1":{"type":"object","properties":{"countryCode":{"type":"string","description":"Country code","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"regionCode":{"type":"string","description":"Abbreviation or shorthand of the area"},"regionName":{"type":"string","description":"Describes the full name of the region within a country according to ISO 3166-214"}},"description":"Region within a country"},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else."},"bpnLegalEntity":{"type":"string","description":"The BPNL of the legal entity owning the address."},"bpnSite":{"type":"string","description":"The BPNS of the site the address belongs to."},"createdAt":{"type":"string","description":"The date when the data record has been created.","format":"date-time"},"updatedAt":{"type":"string","description":"The date when the data record has been last updated.","format":"date-time"},"isLegalAddress":{"type":"boolean","description":"Indicates if the address is the legal address to a legal entity."},"isMainAddress":{"type":"boolean","description":"Indicates if the address is the main address to a site. This is where typically the main entrance or the reception is located, or where the mail is delivered to."}},"description":"In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA."}},"description":"In general, a legal entity is a juridical person that has legal rights and duties related to contracts, agreements, and obligations. The term especially applies to any kind of organization (such as an enterprise or company, university, association, etc.) established under the law applicable to a country.In Catena-X, a legal entity is a type of business partner representing a legally registered organization with its official registration information, such as legal name (including legal form, if registered), legal address and tax number.A legal entity has exactly one legal address, but it is possible to specify additional addresses that a legal entity owns. Thus, at least one address is assigned to a legal entity. A legal entity can own sites. Thus, many or no sites are assigned to a legal entity. A legal entity is uniquely identified by the BPNL."}}}},"400":{"description":"On malformed request parameters"},"404":{"description":"No business partner found under specified identifier or specified identifier type not found"}},"method":"get","path":"/api/catena/legal-entities/{idValue}","servers":[{"url":"http://localhost:8080","description":"Generated server url"}],"info":{"title":"Business Partner Data Management Pool","description":"Service that manages and shares business partner data with other CatenaX services","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Returns a legal entity by identifier, like BPN, DUNS or EU VAT ID, specified by the identifier type","description":{"content":"This endpoint tries to find a business partner by the specified identifier. The identifier value is case insensitively compared but needs to be given exactly. By default the value given is interpreted as a BPN. By specifying the technical key of another identifier typethe value is matched against the identifiers of that given type.","type":"text/plain"},"url":{"path":["api","catena","legal-entities",":idValue"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"description":{"content":"Type of identifier to use, defaults to BPN when omitted","type":"text/plain"},"key":"idType","value":""}],"variable":[{"disabled":false,"description":{"content":"(Required) Identifier value","type":"text/plain"},"type":"any","value":"","key":"idValue"}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Pool Api/business-partner-data-management-pool +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Returns a legal entity by identifier, like BPN, DUNS or EU VAT ID, specified by the identifier type + + + +This endpoint tries to find a business partner by the specified identifier. The identifier value is case insensitively compared but needs to be given exactly. By default the value given is interpreted as a BPN. By specifying the technical key of another identifier typethe value is matched against the identifiers of that given type. + +
Path Parameters
Query Parameters
+ +Found business partner with specified identifier + +
Schema
    identifiers object[]
    + +The list of identifiers of the legal entity. + +
    type object
    + +Named type uniquely identified by its technical key + +
    legalForm object
    + +A legal form is a mandatory corporate legal framework by which companies can conduct business, charitable or other permissible activities. + +
    states object[]
    + +The list of (temporary) states of the legal entity. + +
    type object
    + +Named type uniquely identified by its technical key + +
    classifications object[]
    + +The list of classifications of the legal entity, such as a specific industry. + +
    type object
    + +Named type uniquely identified by its technical key + +
    relations object[]
    + +Relations to other business partners. + +
    type object
    + +Named type uniquely identified by its technical key + +
    legalAddress object
    + +In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA. + +
    states object[]
    type object
    + +Named type uniquely identified by its technical key + +
    identifiers object[]
    type object
    + +Named type uniquely identified by its technical key + +
    physicalPostalAddress object
    + +A physical postal address describes the physical location of an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    country object
    + +Named type uniquely identified by its technical key + +
    administrativeAreaLevel1 object
    + +Region within a country + +
    street object
    + +The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway + +
    alternativePostalAddress object
    + +An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    country object
    + +Named type uniquely identified by its technical key + +
    administrativeAreaLevel1 object
    + +Region within a country + +
+ +On malformed request parameters + +
+ +No business partner found under specified identifier or specified identifier type not found + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/get-legal-forms.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/get-legal-forms.api.mdx new file mode 100644 index 00000000000..01530c0e95a --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/get-legal-forms.api.mdx @@ -0,0 +1,42 @@ +--- +id: get-legal-forms +title: "Returns all legal forms" +description: "Lists all currently known legal forms in a paginated result" +sidebar_label: "Returns all legal forms" +hide_title: true +hide_table_of_contents: true +api: {"tags":["metadata-controller"],"description":"Lists all currently known legal forms in a paginated result","operationId":"getLegalForms","parameters":[{"name":"page","in":"query","description":"Number of page to get results from","required":false,"schema":{"minimum":0,"type":"string","default":"0"}},{"name":"size","in":"query","description":"Size of each page","required":false,"schema":{"maximum":100,"minimum":0,"type":"string","default":"10"}}],"responses":{"200":{"description":"Page of existing legal forms, may be empty","content":{"application/json":{"schema":{"type":"object","properties":{"totalElements":{"type":"integer","description":"Total number of all results in all pages","format":"int64"},"totalPages":{"type":"integer","description":"Total number pages","format":"int32"},"page":{"type":"integer","description":"Current page number","format":"int32"},"contentSize":{"type":"integer","description":"Number of results in the page","format":"int32"},"content":{"type":"array","description":"Collection of results in the page","items":{"type":"object","properties":{"technicalKey":{"type":"string","description":"The technical identifier of the legal form according to ISO 20275."},"name":{"type":"string","description":"The name of legal form according to ISO 20275."},"abbreviation":{"type":"string","description":"The abbreviated name of the legal form, such as AG for German Aktiengesellschaft."}},"description":"A legal form is a mandatory corporate legal framework by which companies can conduct business, charitable or other permissible activities."}}},"description":"Paginated collection of results"}}}},"400":{"description":"On malformed request parameters"}},"method":"get","path":"/api/catena/legal-forms","servers":[{"url":"http://localhost:8080","description":"Generated server url"}],"info":{"title":"Business Partner Data Management Pool","description":"Service that manages and shares business partner data with other CatenaX services","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Returns all legal forms","description":{"content":"Lists all currently known legal forms in a paginated result","type":"text/plain"},"url":{"path":["api","catena","legal-forms"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"description":{"content":"Number of page to get results from","type":"text/plain"},"key":"page","value":""},{"disabled":false,"description":{"content":"Size of each page","type":"text/plain"},"key":"size","value":""}],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Pool Api/business-partner-data-management-pool +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Returns all legal forms + + + +Lists all currently known legal forms in a paginated result + +
Query Parameters
+ +Page of existing legal forms, may be empty + +
Schema
    content object[]
    + +Collection of results in the page + +
+ +On malformed request parameters + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/get-mermaid-pool-persistence.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/get-mermaid-pool-persistence.api.mdx new file mode 100644 index 00000000000..7b7b2a6e689 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/get-mermaid-pool-persistence.api.mdx @@ -0,0 +1,34 @@ +--- +id: get-mermaid-pool-persistence +title: "Get mermaid class diagramm for the pool JPA model" +description: "Get mermaid class diagramm for the pool JPA model" +sidebar_label: "Get mermaid class diagramm for the pool JPA model" +hide_title: true +hide_table_of_contents: true +api: {"tags":["pool-documentation-controller"],"operationId":"getMermaidPoolPersistence","responses":{"200":{"description":"Entity model as mermaid diagramm","content":{"text/plain":{"schema":{"type":"string"}}}}},"description":"Get mermaid class diagramm for the pool JPA model","method":"get","path":"/api/catena/mermaid/","servers":[{"url":"http://localhost:8080","description":"Generated server url"}],"info":{"title":"Business Partner Data Management Pool","description":"Service that manages and shares business partner data with other CatenaX services","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Get mermaid class diagramm for the pool JPA model","description":{"type":"text/plain"},"url":{"path":["api","catena","mermaid",""],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"text/plain"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Pool Api/business-partner-data-management-pool +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Get mermaid class diagramm for the pool JPA model + + + +Get mermaid class diagramm for the pool JPA model + +
+ +Entity model as mermaid diagramm + +
Schema
  • string
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/get-regions.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/get-regions.api.mdx new file mode 100644 index 00000000000..66ffdbd2c7d --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/get-regions.api.mdx @@ -0,0 +1,46 @@ +--- +id: get-regions +title: "Get page of regions" +description: "Lists all currently known regions in a paginated result" +sidebar_label: "Get page of regions" +hide_title: true +hide_table_of_contents: true +api: {"tags":["metadata-controller"],"description":"Lists all currently known regions in a paginated result","operationId":"getRegions","parameters":[{"name":"page","in":"query","description":"Number of page to get results from","required":false,"schema":{"minimum":0,"type":"string","default":"0"}},{"name":"size","in":"query","description":"Size of each page","required":false,"schema":{"maximum":100,"minimum":0,"type":"string","default":"10"}}],"responses":{"200":{"description":"Page of existing regions, may be empty","content":{"application/json":{"schema":{"type":"object","properties":{"totalElements":{"type":"integer","description":"Total number of all results in all pages","format":"int64"},"totalPages":{"type":"integer","description":"Total number pages","format":"int32"},"page":{"type":"integer","description":"Current page number","format":"int32"},"contentSize":{"type":"integer","description":"Number of results in the page","format":"int32"},"content":{"type":"array","description":"Collection of results in the page","items":{"type":"object","properties":{"countryCode":{"type":"string","description":"Country code","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"regionCode":{"type":"string","description":"Abbreviation or shorthand of the area"},"regionName":{"type":"string","description":"Describes the full name of the region within a country according to ISO 3166-214"}},"description":"Region within a country"}}},"description":"Paginated collection of results"}}}},"400":{"description":"On malformed request parameters"}},"deprecated":true,"method":"get","path":"/api/catena/regions","servers":[{"url":"http://localhost:8080","description":"Generated server url"}],"info":{"title":"Business Partner Data Management Pool","description":"Service that manages and shares business partner data with other CatenaX services","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Get page of regions","description":{"content":"Lists all currently known regions in a paginated result","type":"text/plain"},"url":{"path":["api","catena","regions"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"description":{"content":"Number of page to get results from","type":"text/plain"},"key":"page","value":""},{"disabled":false,"description":{"content":"Size of each page","type":"text/plain"},"key":"size","value":""}],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Pool Api/business-partner-data-management-pool +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Get page of regions + +:::caution deprecated + +This endpoint has been deprecated and may be removed in future versions of the API. + +::: + +Lists all currently known regions in a paginated result + +
Query Parameters
+ +Page of existing regions, may be empty + +
Schema
    content object[]
    + +Collection of results in the page + +
+ +On malformed request parameters + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/get-site.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/get-site.api.mdx new file mode 100644 index 00000000000..4a2b5dc3574 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/get-site.api.mdx @@ -0,0 +1,94 @@ +--- +id: get-site +title: "Returns a site by its BPNS" +description: "Get business partners of type site by BPNS ignoring case." +sidebar_label: "Returns a site by its BPNS" +hide_title: true +hide_table_of_contents: true +api: {"tags":["site-controller"],"description":"Get business partners of type site by BPNS ignoring case.","operationId":"getSite","parameters":[{"name":"bpns","in":"path","description":"BPNS value","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Found site with specified BPNS","content":{"application/json":{"schema":{"type":"object","properties":{"bpns":{"type":"string","description":"A BPNS represents and uniquely identifies a site, which is where for example a production plant, a warehouse, or an office building is located."},"name":{"type":"string","description":"The name of the site. This is not according to official registers but according to the name the owner chooses."},"states":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the site."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["ACTIVE","INACTIVE"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"}},"description":"A site state indicates if the site is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the site is still operating."}},"bpnLegalEntity":{"type":"string","description":"The BPNL of the legal entity owning the site."},"createdAt":{"type":"string","description":"The date when the data record has been created.","format":"date-time"},"updatedAt":{"type":"string","description":"The date when the data record has been last updated.","format":"date-time"},"mainAddress":{"type":"object","properties":{"bpna":{"type":"string","description":"A BPNA represents and uniquely identifies an address, which can be the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates). It is important to note that only the BPNL must be used to uniquely identify a legal entity. Even in the case that the BPNA represents the legal address of the legal entity, it shall not be used to uniquely identify the legal entity."},"name":{"type":"string","description":"The name of the address. This is not according to official registers but according to the name the sharing member chooses."},"states":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the address."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["ACTIVE","INACTIVE"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"}},"description":"An address state indicates if the address is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the business partner is still operating at that address."}},"identifiers":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"0847976000005\"."},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference"},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"}},"description":"An address identifier (uniquely) identifies the address, such as the Global Location Number (GLN)."}},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"},"administrativeAreaLevel1":{"type":"object","properties":{"countryCode":{"type":"string","description":"Country code","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"regionCode":{"type":"string","description":"Abbreviation or shorthand of the area"},"regionName":{"type":"string","description":"Describes the full name of the region within a country according to ISO 3166-214"}},"description":"Region within a country"},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"name":{"type":"string","description":"The name of the street."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."}},"description":"The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway"},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"A physical postal address describes the physical location of an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"},"administrativeAreaLevel1":{"type":"object","properties":{"countryCode":{"type":"string","description":"Country code","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"regionCode":{"type":"string","description":"Abbreviation or shorthand of the area"},"regionName":{"type":"string","description":"Describes the full name of the region within a country according to ISO 3166-214"}},"description":"Region within a country"},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else."},"bpnLegalEntity":{"type":"string","description":"The BPNL of the legal entity owning the address."},"bpnSite":{"type":"string","description":"The BPNS of the site the address belongs to."},"createdAt":{"type":"string","description":"The date when the data record has been created.","format":"date-time"},"updatedAt":{"type":"string","description":"The date when the data record has been last updated.","format":"date-time"},"isLegalAddress":{"type":"boolean","description":"Indicates if the address is the legal address to a legal entity."},"isMainAddress":{"type":"boolean","description":"Indicates if the address is the main address to a site. This is where typically the main entrance or the reception is located, or where the mail is delivered to."}},"description":"In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA."}},"description":"In general, a site is a delimited geographical area in which an organization (such as an enterprise or company, university, association, etc.) conducts business. In Catena-X, a site is a type of business partner representing a physical location or area owned by a legal entity, where a production plant, a warehouse, or an office building is located. A site is owned by a legal entity. Thus, exactly one legal entity is assigned to a site. A site has exactly one main address, but it is possible to specify additional addresses (such as different gates), that belong to a site. Thus, at least one address is assigned to a site. A site can only be uploaded and modified by the owner (the legal entity), because only the owner knows which addresses belong to which site. A site is uniquely identified by the BPNS."}}}},"400":{"description":"On malformed request parameters"},"404":{"description":"No site found under specified BPNS"}},"method":"get","path":"/api/catena/sites/{bpns}","servers":[{"url":"http://localhost:8080","description":"Generated server url"}],"info":{"title":"Business Partner Data Management Pool","description":"Service that manages and shares business partner data with other CatenaX services","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Returns a site by its BPNS","description":{"content":"Get business partners of type site by BPNS ignoring case.","type":"text/plain"},"url":{"path":["api","catena","sites",":bpns"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) BPNS value","type":"text/plain"},"type":"any","value":"","key":"bpns"}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Pool Api/business-partner-data-management-pool +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Returns a site by its BPNS + + + +Get business partners of type site by BPNS ignoring case. + +
Path Parameters
+ +Found site with specified BPNS + +
Schema
    states object[]
    type object
    + +Named type uniquely identified by its technical key + +
    mainAddress object
    + +In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA. + +
    states object[]
    type object
    + +Named type uniquely identified by its technical key + +
    identifiers object[]
    type object
    + +Named type uniquely identified by its technical key + +
    physicalPostalAddress object
    + +A physical postal address describes the physical location of an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    country object
    + +Named type uniquely identified by its technical key + +
    administrativeAreaLevel1 object
    + +Region within a country + +
    street object
    + +The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway + +
    alternativePostalAddress object
    + +An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    country object
    + +Named type uniquely identified by its technical key + +
    administrativeAreaLevel1 object
    + +Region within a country + +
+ +On malformed request parameters + +
+ +No site found under specified BPNS + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/get-sites-paginated.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/get-sites-paginated.api.mdx new file mode 100644 index 00000000000..c62cabf7ea4 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/get-sites-paginated.api.mdx @@ -0,0 +1,98 @@ +--- +id: get-sites-paginated +title: "Get page of sites matching the pagination search criteria" +description: "This endpoint retrieves all existing business partners of type sites.Note that when using search parameters the max page is 20." +sidebar_label: "Get page of sites matching the pagination search criteria" +hide_title: true +hide_table_of_contents: true +api: {"tags":["site-controller"],"description":"This endpoint retrieves all existing business partners of type sites.Note that when using search parameters the max page is 20.","operationId":"getSitesPaginated","parameters":[{"name":"page","in":"query","description":"Number of page to get results from","required":false,"schema":{"minimum":0,"type":"string","default":"0"}},{"name":"size","in":"query","description":"Size of each page","required":false,"schema":{"maximum":100,"minimum":0,"type":"string","default":"10"}}],"responses":{"200":{"description":"Page of business partners matching the search criteria, may be empty","content":{"application/json":{"schema":{"type":"object","properties":{"totalElements":{"type":"integer","description":"Total number of all results in all pages","format":"int64"},"totalPages":{"type":"integer","description":"Total number pages","format":"int32"},"page":{"type":"integer","description":"Current page number","format":"int32"},"contentSize":{"type":"integer","description":"Number of results in the page","format":"int32"},"content":{"type":"array","description":"Collection of results in the page","items":{"type":"object","properties":{"mainAddress":{"type":"object","properties":{"bpna":{"type":"string","description":"A BPNA represents and uniquely identifies an address, which can be the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates). It is important to note that only the BPNL must be used to uniquely identify a legal entity. Even in the case that the BPNA represents the legal address of the legal entity, it shall not be used to uniquely identify the legal entity."},"name":{"type":"string","description":"The name of the address. This is not according to official registers but according to the name the sharing member chooses."},"states":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the address."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["ACTIVE","INACTIVE"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"}},"description":"An address state indicates if the address is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the business partner is still operating at that address."}},"identifiers":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"0847976000005\"."},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference"},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"}},"description":"An address identifier (uniquely) identifies the address, such as the Global Location Number (GLN)."}},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"},"administrativeAreaLevel1":{"type":"object","properties":{"countryCode":{"type":"string","description":"Country code","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"regionCode":{"type":"string","description":"Abbreviation or shorthand of the area"},"regionName":{"type":"string","description":"Describes the full name of the region within a country according to ISO 3166-214"}},"description":"Region within a country"},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"name":{"type":"string","description":"The name of the street."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."}},"description":"The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway"},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"A physical postal address describes the physical location of an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"},"administrativeAreaLevel1":{"type":"object","properties":{"countryCode":{"type":"string","description":"Country code","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"regionCode":{"type":"string","description":"Abbreviation or shorthand of the area"},"regionName":{"type":"string","description":"Describes the full name of the region within a country according to ISO 3166-214"}},"description":"Region within a country"},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else."},"bpnLegalEntity":{"type":"string","description":"The BPNL of the legal entity owning the address."},"bpnSite":{"type":"string","description":"The BPNS of the site the address belongs to."},"createdAt":{"type":"string","description":"The date when the data record has been created.","format":"date-time"},"updatedAt":{"type":"string","description":"The date when the data record has been last updated.","format":"date-time"},"isLegalAddress":{"type":"boolean","description":"Indicates if the address is the legal address to a legal entity."},"isMainAddress":{"type":"boolean","description":"Indicates if the address is the main address to a site. This is where typically the main entrance or the reception is located, or where the mail is delivered to."}},"description":"In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA."},"site":{"type":"object","properties":{"bpns":{"type":"string","description":"A BPNS represents and uniquely identifies a site, which is where for example a production plant, a warehouse, or an office building is located."},"name":{"type":"string","description":"The name of the site. This is not according to official registers but according to the name the owner chooses."},"states":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the site."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["ACTIVE","INACTIVE"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"}},"description":"A site state indicates if the site is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the site is still operating."}},"bpnLegalEntity":{"type":"string","description":"The BPNL of the legal entity owning the site."},"createdAt":{"type":"string","description":"The date when the data record has been created.","format":"date-time"},"updatedAt":{"type":"string","description":"The date when the data record has been last updated.","format":"date-time"}},"description":"In general, a site is a delimited geographical area in which an organization (such as an enterprise or company, university, association, etc.) conducts business. In Catena-X, a site is a type of business partner representing a physical location or area owned by a legal entity, where a production plant, a warehouse, or an office building is located. A site is owned by a legal entity. Thus, exactly one legal entity is assigned to a site. A site has exactly one main address, but it is possible to specify additional addresses (such as different gates), that belong to a site. Thus, at least one address is assigned to a site. A site can only be uploaded and modified by the owner (the legal entity), because only the owner knows which addresses belong to which site. A site is uniquely identified by the BPNS."}},"description":"Match for a business partner record of type site. In general, a site is a delimited geographical area in which an organization (such as an enterprise or company, university, association, etc.) conducts business. In Catena-X, a site is a type of business partner representing a physical location or area owned by a legal entity, where a production plant, a warehouse, or an office building is located. A site is owned by a legal entity. Thus, exactly one legal entity is assigned to a site. A site has exactly one main address, but it is possible to specify additional addresses (such as different gates), that belong to a site. Thus, at least one address is assigned to a site. A site can only be uploaded and modified by the owner (the legal entity), because only the owner knows which addresses belong to which site. A site is uniquely identified by the BPNS."}}},"description":"Paginated collection of results"}}}},"400":{"description":"On malformed pagination request"}},"method":"get","path":"/api/catena/sites","servers":[{"url":"http://localhost:8080","description":"Generated server url"}],"info":{"title":"Business Partner Data Management Pool","description":"Service that manages and shares business partner data with other CatenaX services","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Get page of sites matching the pagination search criteria","description":{"content":"This endpoint retrieves all existing business partners of type sites.Note that when using search parameters the max page is 20.","type":"text/plain"},"url":{"path":["api","catena","sites"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"description":{"content":"Number of page to get results from","type":"text/plain"},"key":"page","value":""},{"disabled":false,"description":{"content":"Size of each page","type":"text/plain"},"key":"size","value":""}],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Pool Api/business-partner-data-management-pool +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Get page of sites matching the pagination search criteria + + + +This endpoint retrieves all existing business partners of type sites.Note that when using search parameters the max page is 20. + +
Query Parameters
+ +Page of business partners matching the search criteria, may be empty + +
Schema
    content object[]
    + +Collection of results in the page + +
    mainAddress object
    + +In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA. + +
    states object[]
    type object
    + +Named type uniquely identified by its technical key + +
    identifiers object[]
    type object
    + +Named type uniquely identified by its technical key + +
    physicalPostalAddress object
    + +A physical postal address describes the physical location of an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    country object
    + +Named type uniquely identified by its technical key + +
    administrativeAreaLevel1 object
    + +Region within a country + +
    street object
    + +The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway + +
    alternativePostalAddress object
    + +An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    country object
    + +Named type uniquely identified by its technical key + +
    administrativeAreaLevel1 object
    + +Region within a country + +
    site object
    + +In general, a site is a delimited geographical area in which an organization (such as an enterprise or company, university, association, etc.) conducts business. In Catena-X, a site is a type of business partner representing a physical location or area owned by a legal entity, where a production plant, a warehouse, or an office building is located. A site is owned by a legal entity. Thus, exactly one legal entity is assigned to a site. A site has exactly one main address, but it is possible to specify additional addresses (such as different gates), that belong to a site. Thus, at least one address is assigned to a site. A site can only be uploaded and modified by the owner (the legal entity), because only the owner knows which addresses belong to which site. A site is uniquely identified by the BPNS. + +
    states object[]
    type object
    + +Named type uniquely identified by its technical key + +
+ +On malformed pagination request + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/get-sites.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/get-sites.api.mdx new file mode 100644 index 00000000000..9293a600815 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/get-sites.api.mdx @@ -0,0 +1,50 @@ +--- +id: get-sites +title: "Returns all sites of a legal entity with a specific BPNL" +description: "Get business partners of type site belonging to a business partner of type legal entity, identified by the business partner's bpnl ignoring case." +sidebar_label: "Returns all sites of a legal entity with a specific BPNL" +hide_title: true +hide_table_of_contents: true +api: {"tags":["legal-entity-controller"],"description":"Get business partners of type site belonging to a business partner of type legal entity, identified by the business partner's bpnl ignoring case.","operationId":"getSites","parameters":[{"name":"bpnl","in":"path","description":"BPNL value","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","description":"Number of page to get results from","required":false,"schema":{"minimum":0,"type":"string","default":"0"}},{"name":"size","in":"query","description":"Size of each page","required":false,"schema":{"maximum":100,"minimum":0,"type":"string","default":"10"}}],"responses":{"200":{"description":"The sites for the specified bpnl","content":{"application/json":{"schema":{"type":"object","properties":{"totalElements":{"type":"integer","description":"Total number of all results in all pages","format":"int64"},"totalPages":{"type":"integer","description":"Total number pages","format":"int32"},"page":{"type":"integer","description":"Current page number","format":"int32"},"contentSize":{"type":"integer","description":"Number of results in the page","format":"int32"},"content":{"type":"array","description":"Collection of results in the page","items":{"type":"object","properties":{"bpns":{"type":"string","description":"A BPNS represents and uniquely identifies a site, which is where for example a production plant, a warehouse, or an office building is located."},"name":{"type":"string","description":"The name of the site. This is not according to official registers but according to the name the owner chooses."},"states":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the site."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["ACTIVE","INACTIVE"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"}},"description":"A site state indicates if the site is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the site is still operating."}},"bpnLegalEntity":{"type":"string","description":"The BPNL of the legal entity owning the site."},"createdAt":{"type":"string","description":"The date when the data record has been created.","format":"date-time"},"updatedAt":{"type":"string","description":"The date when the data record has been last updated.","format":"date-time"}},"description":"In general, a site is a delimited geographical area in which an organization (such as an enterprise or company, university, association, etc.) conducts business. In Catena-X, a site is a type of business partner representing a physical location or area owned by a legal entity, where a production plant, a warehouse, or an office building is located. A site is owned by a legal entity. Thus, exactly one legal entity is assigned to a site. A site has exactly one main address, but it is possible to specify additional addresses (such as different gates), that belong to a site. Thus, at least one address is assigned to a site. A site can only be uploaded and modified by the owner (the legal entity), because only the owner knows which addresses belong to which site. A site is uniquely identified by the BPNS."}}},"description":"Paginated collection of results"}}}},"400":{"description":"On malformed pagination request"},"404":{"description":"No business partner found for specified bpnl"}},"method":"get","path":"/api/catena/legal-entities/{bpnl}/sites","servers":[{"url":"http://localhost:8080","description":"Generated server url"}],"info":{"title":"Business Partner Data Management Pool","description":"Service that manages and shares business partner data with other CatenaX services","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Returns all sites of a legal entity with a specific BPNL","description":{"content":"Get business partners of type site belonging to a business partner of type legal entity, identified by the business partner's bpnl ignoring case.","type":"text/plain"},"url":{"path":["api","catena","legal-entities",":bpnl","sites"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"description":{"content":"Number of page to get results from","type":"text/plain"},"key":"page","value":""},{"disabled":false,"description":{"content":"Size of each page","type":"text/plain"},"key":"size","value":""}],"variable":[{"disabled":false,"description":{"content":"(Required) BPNL value","type":"text/plain"},"type":"any","value":"","key":"bpnl"}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Pool Api/business-partner-data-management-pool +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Returns all sites of a legal entity with a specific BPNL + + + +Get business partners of type site belonging to a business partner of type legal entity, identified by the business partner's bpnl ignoring case. + +
Path Parameters
Query Parameters
+ +The sites for the specified bpnl + +
Schema
    content object[]
    + +Collection of results in the page + +
    states object[]
    type object
    + +Named type uniquely identified by its technical key + +
+ +On malformed pagination request + +
+ +No business partner found for specified bpnl + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/search-addresses.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/search-addresses.api.mdx new file mode 100644 index 00000000000..fd2b3e6847b --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/search-addresses.api.mdx @@ -0,0 +1,86 @@ +--- +id: search-addresses +title: "Returns addresses by an array of BPNA and/or an array of corresponding BPNS and/or an array of corresponding BPNL." +description: "Search business partners of type address by their BPNA or their parents' BPNL or BPNS." +sidebar_label: "Returns addresses by an array of BPNA and/or an array of corresponding BPNS and/or an array of corresponding BPNL." +hide_title: true +hide_table_of_contents: true +api: {"tags":["address-controller"],"description":"Search business partners of type address by their BPNA or their parents' BPNL or BPNS.","operationId":"searchAddresses","parameters":[{"name":"page","in":"query","description":"Number of page to get results from","required":false,"schema":{"minimum":0,"type":"string","default":"0"}},{"name":"size","in":"query","description":"Size of each page","required":false,"schema":{"maximum":100,"minimum":0,"type":"string","default":"10"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"legalEntities":{"type":"array","items":{"type":"string"}},"sites":{"type":"array","items":{"type":"string"}},"addresses":{"type":"array","items":{"type":"string"}}},"description":"Request for searching business partners of type address by parent BPNs"}}},"required":true},"responses":{"200":{"description":"Found sites for the specified sites and legal entities","content":{"application/json":{"schema":{"type":"object","properties":{"totalElements":{"type":"integer","description":"Total number of all results in all pages","format":"int64"},"totalPages":{"type":"integer","description":"Total number pages","format":"int32"},"page":{"type":"integer","description":"Current page number","format":"int32"},"contentSize":{"type":"integer","description":"Number of results in the page","format":"int32"},"content":{"type":"array","description":"Collection of results in the page","items":{"type":"object","properties":{"bpna":{"type":"string","description":"A BPNA represents and uniquely identifies an address, which can be the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates). It is important to note that only the BPNL must be used to uniquely identify a legal entity. Even in the case that the BPNA represents the legal address of the legal entity, it shall not be used to uniquely identify the legal entity."},"name":{"type":"string","description":"The name of the address. This is not according to official registers but according to the name the sharing member chooses."},"states":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the address."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["ACTIVE","INACTIVE"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"}},"description":"An address state indicates if the address is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the business partner is still operating at that address."}},"identifiers":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"0847976000005\"."},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference"},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"}},"description":"An address identifier (uniquely) identifies the address, such as the Global Location Number (GLN)."}},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"},"administrativeAreaLevel1":{"type":"object","properties":{"countryCode":{"type":"string","description":"Country code","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"regionCode":{"type":"string","description":"Abbreviation or shorthand of the area"},"regionName":{"type":"string","description":"Describes the full name of the region within a country according to ISO 3166-214"}},"description":"Region within a country"},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"name":{"type":"string","description":"The name of the street."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."}},"description":"The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway"},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"A physical postal address describes the physical location of an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"},"administrativeAreaLevel1":{"type":"object","properties":{"countryCode":{"type":"string","description":"Country code","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"regionCode":{"type":"string","description":"Abbreviation or shorthand of the area"},"regionName":{"type":"string","description":"Describes the full name of the region within a country according to ISO 3166-214"}},"description":"Region within a country"},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else."},"bpnLegalEntity":{"type":"string","description":"The BPNL of the legal entity owning the address."},"bpnSite":{"type":"string","description":"The BPNS of the site the address belongs to."},"createdAt":{"type":"string","description":"The date when the data record has been created.","format":"date-time"},"updatedAt":{"type":"string","description":"The date when the data record has been last updated.","format":"date-time"},"isLegalAddress":{"type":"boolean","description":"Indicates if the address is the legal address to a legal entity."},"isMainAddress":{"type":"boolean","description":"Indicates if the address is the main address to a site. This is where typically the main entrance or the reception is located, or where the mail is delivered to."}},"description":"In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA."}}},"description":"Paginated collection of results"}}}},"400":{"description":"On malformed pagination request"}},"method":"post","path":"/api/catena/addresses/search","servers":[{"url":"http://localhost:8080","description":"Generated server url"}],"jsonRequestBodyExample":{"legalEntities":["string"],"sites":["string"],"addresses":["string"]},"info":{"title":"Business Partner Data Management Pool","description":"Service that manages and shares business partner data with other CatenaX services","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Returns addresses by an array of BPNA and/or an array of corresponding BPNS and/or an array of corresponding BPNL.","description":{"content":"Search business partners of type address by their BPNA or their parents' BPNL or BPNS.","type":"text/plain"},"url":{"path":["api","catena","addresses","search"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"description":{"content":"Number of page to get results from","type":"text/plain"},"key":"page","value":""},{"disabled":false,"description":{"content":"Size of each page","type":"text/plain"},"key":"size","value":""}],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Pool Api/business-partner-data-management-pool +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Returns addresses by an array of BPNA and/or an array of corresponding BPNS and/or an array of corresponding BPNL. + + + +Search business partners of type address by their BPNA or their parents' BPNL or BPNS. + +
Query Parameters
Request Body required
+ +Found sites for the specified sites and legal entities + +
Schema
    content object[]
    + +Collection of results in the page + +
    states object[]
    type object
    + +Named type uniquely identified by its technical key + +
    identifiers object[]
    type object
    + +Named type uniquely identified by its technical key + +
    physicalPostalAddress object
    + +A physical postal address describes the physical location of an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    country object
    + +Named type uniquely identified by its technical key + +
    administrativeAreaLevel1 object
    + +Region within a country + +
    street object
    + +The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway + +
    alternativePostalAddress object
    + +An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    country object
    + +Named type uniquely identified by its technical key + +
    administrativeAreaLevel1 object
    + +Region within a country + +
+ +On malformed pagination request + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/search-legal-addresses.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/search-legal-addresses.api.mdx new file mode 100644 index 00000000000..80d802615ff --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/search-legal-addresses.api.mdx @@ -0,0 +1,74 @@ +--- +id: search-legal-addresses +title: "Search Legal Addresses" +description: "Search legal addresses of legal entities by BPNL" +sidebar_label: "Search Legal Addresses" +hide_title: true +hide_table_of_contents: true +api: {"tags":["legal-entity-controller"],"description":"Search legal addresses of legal entities by BPNL","operationId":"searchLegalAddresses","requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}},"required":true},"responses":{"200":{"description":"The found legal addresses","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"},"administrativeAreaLevel1":{"type":"object","properties":{"countryCode":{"type":"string","description":"Country code","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"regionCode":{"type":"string","description":"Abbreviation or shorthand of the area"},"regionName":{"type":"string","description":"Describes the full name of the region within a country according to ISO 3166-214"}},"description":"Region within a country"},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"name":{"type":"string","description":"The name of the street."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."}},"description":"The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway"},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"A physical postal address describes the physical location of an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"},"administrativeAreaLevel1":{"type":"object","properties":{"countryCode":{"type":"string","description":"Country code","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"regionCode":{"type":"string","description":"Abbreviation or shorthand of the area"},"regionName":{"type":"string","description":"Describes the full name of the region within a country according to ISO 3166-214"}},"description":"Region within a country"},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else."},"bpnLegalEntity":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"description":"Legal address for legal entity"}}}}},"400":{"description":"On malformed request parameters"}},"method":"post","path":"/api/catena/legal-entities/legal-addresses/search","servers":[{"url":"http://localhost:8080","description":"Generated server url"}],"jsonRequestBodyExample":["string"],"info":{"title":"Business Partner Data Management Pool","description":"Service that manages and shares business partner data with other CatenaX services","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Search Legal Addresses","description":{"content":"Search legal addresses of legal entities by BPNL","type":"text/plain"},"url":{"path":["api","catena","legal-entities","legal-addresses","search"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Pool Api/business-partner-data-management-pool +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Search Legal Addresses + + + +Search legal addresses of legal entities by BPNL + +
Request Body array required
  • string
+ +The found legal addresses + +
Schema array
    physicalPostalAddress object
    + +A physical postal address describes the physical location of an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    country object
    + +Named type uniquely identified by its technical key + +
    administrativeAreaLevel1 object
    + +Region within a country + +
    street object
    + +The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway + +
    alternativePostalAddress object
    + +An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    country object
    + +Named type uniquely identified by its technical key + +
    administrativeAreaLevel1 object
    + +Region within a country + +
+ +On malformed request parameters + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/search-main-addresses.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/search-main-addresses.api.mdx new file mode 100644 index 00000000000..beec3155d88 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/search-main-addresses.api.mdx @@ -0,0 +1,74 @@ +--- +id: search-main-addresses +title: "Search for sites' main addresses" +description: "Search main addresses of site business partners by BPNS" +sidebar_label: "Search for sites' main addresses" +hide_title: true +hide_table_of_contents: true +api: {"tags":["site-controller"],"description":"Search main addresses of site business partners by BPNS","operationId":"searchMainAddresses","requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}},"required":true},"responses":{"200":{"description":"The found main addresses","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"},"administrativeAreaLevel1":{"type":"object","properties":{"countryCode":{"type":"string","description":"Country code","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"regionCode":{"type":"string","description":"Abbreviation or shorthand of the area"},"regionName":{"type":"string","description":"Describes the full name of the region within a country according to ISO 3166-214"}},"description":"Region within a country"},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"name":{"type":"string","description":"The name of the street."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."}},"description":"The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway"},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"A physical postal address describes the physical location of an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"},"administrativeAreaLevel1":{"type":"object","properties":{"countryCode":{"type":"string","description":"Country code","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"regionCode":{"type":"string","description":"Abbreviation or shorthand of the area"},"regionName":{"type":"string","description":"Describes the full name of the region within a country according to ISO 3166-214"}},"description":"Region within a country"},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else."},"bpnSite":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"description":"Main address for site"}}}}},"400":{"description":"On malformed request parameters"}},"method":"post","path":"/api/catena/sites/main-addresses/search","servers":[{"url":"http://localhost:8080","description":"Generated server url"}],"jsonRequestBodyExample":["string"],"info":{"title":"Business Partner Data Management Pool","description":"Service that manages and shares business partner data with other CatenaX services","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Search for sites' main addresses","description":{"content":"Search main addresses of site business partners by BPNS","type":"text/plain"},"url":{"path":["api","catena","sites","main-addresses","search"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Pool Api/business-partner-data-management-pool +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Search for sites' main addresses + + + +Search main addresses of site business partners by BPNS + +
Request Body array required
  • string
+ +The found main addresses + +
Schema array
    physicalPostalAddress object
    + +A physical postal address describes the physical location of an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    country object
    + +Named type uniquely identified by its technical key + +
    administrativeAreaLevel1 object
    + +Region within a country + +
    street object
    + +The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway + +
    alternativePostalAddress object
    + +An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    country object
    + +Named type uniquely identified by its technical key + +
    administrativeAreaLevel1 object
    + +Region within a country + +
+ +On malformed request parameters + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/search-sites-1.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/search-sites-1.api.mdx new file mode 100644 index 00000000000..37cf7694186 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/search-sites-1.api.mdx @@ -0,0 +1,122 @@ +--- +id: search-sites-1 +title: "Returns legal entities by an array of BPNL" +description: "Search legal entity partners by their BPNLs. The response can contain less results than the number of BPNLs that were requested, if some of the BPNLs did not exist. For a single request, the maximum number of BPNLs to search for is limited to ${bpdm.bpn.search-request-limit} entries." +sidebar_label: "Returns legal entities by an array of BPNL" +hide_title: true +hide_table_of_contents: true +api: {"tags":["legal-entity-controller"],"description":"Search legal entity partners by their BPNLs. The response can contain less results than the number of BPNLs that were requested, if some of the BPNLs did not exist. For a single request, the maximum number of BPNLs to search for is limited to ${bpdm.bpn.search-request-limit} entries.","operationId":"searchSites_1","requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}},"required":true},"responses":{"200":{"description":"Found legal entites","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"legalName":{"type":"string","description":"The name of the legal entity according to official registers."},"bpnl":{"type":"string","description":"A BPNL represents and uniquely identifies a legal entity, which is defined by its legal name (including legal form, if registered), legal address and tax number."},"identifiers":{"type":"array","description":"The list of identifiers of the legal entity.","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"DE123465789\"."},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference"},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"},"issuingBody":{"type":"string","description":"The name of the official register, where the identifier is registered. For example, a Handelsregisternummer in Germany is only valid with its corresponding Handelsregister."}},"description":"A legal entity identifier (uniquely) identifies the legal entity, such as the German Handelsregisternummer, a VAT number, etc."}},"legalShortName":{"type":"string","description":"The abbreviated name of the legal entity."},"legalForm":{"type":"object","properties":{"technicalKey":{"type":"string","description":"The technical identifier of the legal form according to ISO 20275."},"name":{"type":"string","description":"The name of legal form according to ISO 20275."},"abbreviation":{"type":"string","description":"The abbreviated name of the legal form, such as AG for German Aktiengesellschaft."}},"description":"A legal form is a mandatory corporate legal framework by which companies can conduct business, charitable or other permissible activities."},"states":{"type":"array","description":"The list of (temporary) states of the legal entity.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the legal entity, such as from the German Handelsregister."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["ACTIVE","INACTIVE"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"}},"description":"A legal entity state indicates if the legal entity is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the legal entity is still operating."}},"classifications":{"type":"array","description":"The list of classifications of the legal entity, such as a specific industry.","items":{"type":"object","properties":{"value":{"type":"string","description":"The name of the class belonging to the classification."},"code":{"type":"string","description":"The identifier of the class belonging to the classification."},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["NACE","NAF","NAICS","SIC"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"}},"description":"A legal entity classification is an assignment of the legal entity to an industry. It does not necessarily have to be the only industry the company is active in (see large companies operating in different industries). Multiple assignments to several industries are possible per classification type."}},"relations":{"type":"array","description":"Relations to other business partners.","items":{"type":"object","properties":{"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["CX_LEGAL_SUCCESSOR_OF","CX_LEGAL_PREDECESSOR_OF"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"},"startBpnl":{"type":"string","description":"BPN of partner which is the source of the relation"},"endBpnl":{"type":"string","description":"BPN of partner which is the target of the relation"},"validFrom":{"type":"string","description":"Time when the relation started","format":"date-time"},"validTo":{"type":"string","description":"Time when the relation ended","format":"date-time"}},"description":"Directed relation between two business partners"}},"currentness":{"type":"string","description":"The date the business partner data was last indicated to be still current.","format":"date-time"},"createdAt":{"type":"string","description":"The date when the data record has been created.","format":"date-time"},"updatedAt":{"type":"string","description":"The date when the data record has been last updated.","format":"date-time"},"legalAddress":{"type":"object","properties":{"bpna":{"type":"string","description":"A BPNA represents and uniquely identifies an address, which can be the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates). It is important to note that only the BPNL must be used to uniquely identify a legal entity. Even in the case that the BPNA represents the legal address of the legal entity, it shall not be used to uniquely identify the legal entity."},"name":{"type":"string","description":"The name of the address. This is not according to official registers but according to the name the sharing member chooses."},"states":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the address."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["ACTIVE","INACTIVE"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"}},"description":"An address state indicates if the address is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the business partner is still operating at that address."}},"identifiers":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"0847976000005\"."},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference"},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"}},"description":"An address identifier (uniquely) identifies the address, such as the Global Location Number (GLN)."}},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"},"administrativeAreaLevel1":{"type":"object","properties":{"countryCode":{"type":"string","description":"Country code","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"regionCode":{"type":"string","description":"Abbreviation or shorthand of the area"},"regionName":{"type":"string","description":"Describes the full name of the region within a country according to ISO 3166-214"}},"description":"Region within a country"},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"name":{"type":"string","description":"The name of the street."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."}},"description":"The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway"},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"A physical postal address describes the physical location of an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"},"administrativeAreaLevel1":{"type":"object","properties":{"countryCode":{"type":"string","description":"Country code","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"regionCode":{"type":"string","description":"Abbreviation or shorthand of the area"},"regionName":{"type":"string","description":"Describes the full name of the region within a country according to ISO 3166-214"}},"description":"Region within a country"},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else."},"bpnLegalEntity":{"type":"string","description":"The BPNL of the legal entity owning the address."},"bpnSite":{"type":"string","description":"The BPNS of the site the address belongs to."},"createdAt":{"type":"string","description":"The date when the data record has been created.","format":"date-time"},"updatedAt":{"type":"string","description":"The date when the data record has been last updated.","format":"date-time"},"isLegalAddress":{"type":"boolean","description":"Indicates if the address is the legal address to a legal entity."},"isMainAddress":{"type":"boolean","description":"Indicates if the address is the main address to a site. This is where typically the main entrance or the reception is located, or where the mail is delivered to."}},"description":"In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA."}},"description":"In general, a legal entity is a juridical person that has legal rights and duties related to contracts, agreements, and obligations. The term especially applies to any kind of organization (such as an enterprise or company, university, association, etc.) established under the law applicable to a country.In Catena-X, a legal entity is a type of business partner representing a legally registered organization with its official registration information, such as legal name (including legal form, if registered), legal address and tax number.A legal entity has exactly one legal address, but it is possible to specify additional addresses that a legal entity owns. Thus, at least one address is assigned to a legal entity. A legal entity can own sites. Thus, many or no sites are assigned to a legal entity. A legal entity is uniquely identified by the BPNL."}}}}},"400":{"description":"On malformed request parameters or if number of requested bpns exceeds limit"}},"method":"post","path":"/api/catena/legal-entities/search","servers":[{"url":"http://localhost:8080","description":"Generated server url"}],"jsonRequestBodyExample":["string"],"info":{"title":"Business Partner Data Management Pool","description":"Service that manages and shares business partner data with other CatenaX services","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Returns legal entities by an array of BPNL","description":{"content":"Search legal entity partners by their BPNLs. The response can contain less results than the number of BPNLs that were requested, if some of the BPNLs did not exist. For a single request, the maximum number of BPNLs to search for is limited to ${bpdm.bpn.search-request-limit} entries.","type":"text/plain"},"url":{"path":["api","catena","legal-entities","search"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Pool Api/business-partner-data-management-pool +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Returns legal entities by an array of BPNL + + + +Search legal entity partners by their BPNLs. The response can contain less results than the number of BPNLs that were requested, if some of the BPNLs did not exist. For a single request, the maximum number of BPNLs to search for is limited to ${bpdm.bpn.search-request-limit} entries. + +
Request Body array required
  • string
+ +Found legal entites + +
Schema array
    identifiers object[]
    + +The list of identifiers of the legal entity. + +
    type object
    + +Named type uniquely identified by its technical key + +
    legalForm object
    + +A legal form is a mandatory corporate legal framework by which companies can conduct business, charitable or other permissible activities. + +
    states object[]
    + +The list of (temporary) states of the legal entity. + +
    type object
    + +Named type uniquely identified by its technical key + +
    classifications object[]
    + +The list of classifications of the legal entity, such as a specific industry. + +
    type object
    + +Named type uniquely identified by its technical key + +
    relations object[]
    + +Relations to other business partners. + +
    type object
    + +Named type uniquely identified by its technical key + +
    legalAddress object
    + +In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA. + +
    states object[]
    type object
    + +Named type uniquely identified by its technical key + +
    identifiers object[]
    type object
    + +Named type uniquely identified by its technical key + +
    physicalPostalAddress object
    + +A physical postal address describes the physical location of an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    country object
    + +Named type uniquely identified by its technical key + +
    administrativeAreaLevel1 object
    + +Region within a country + +
    street object
    + +The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway + +
    alternativePostalAddress object
    + +An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    country object
    + +Named type uniquely identified by its technical key + +
    administrativeAreaLevel1 object
    + +Region within a country + +
+ +On malformed request parameters or if number of requested bpns exceeds limit + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/search-sites.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/search-sites.api.mdx new file mode 100644 index 00000000000..258b29669e3 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/search-sites.api.mdx @@ -0,0 +1,94 @@ +--- +id: search-sites +title: "Returns sites by an array of BPNS and/or an array of corresponding BPNL" +description: "Search business partners of type site by their BPNSs or by the BPNLs of their parent legal entities" +sidebar_label: "Returns sites by an array of BPNS and/or an array of corresponding BPNL" +hide_title: true +hide_table_of_contents: true +api: {"tags":["site-controller"],"description":"Search business partners of type site by their BPNSs or by the BPNLs of their parent legal entities","operationId":"searchSites","parameters":[{"name":"page","in":"query","description":"Number of page to get results from","required":false,"schema":{"minimum":0,"type":"string","default":"0"}},{"name":"size","in":"query","description":"Size of each page","required":false,"schema":{"maximum":100,"minimum":0,"type":"string","default":"10"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"legalEntities":{"type":"array","items":{"type":"string"}},"sites":{"type":"array","items":{"type":"string"}}}}}},"required":true},"responses":{"200":{"description":"Found sites that belong to specified legal entites","content":{"application/json":{"schema":{"type":"object","properties":{"totalElements":{"type":"integer","description":"Total number of all results in all pages","format":"int64"},"totalPages":{"type":"integer","description":"Total number pages","format":"int32"},"page":{"type":"integer","description":"Current page number","format":"int32"},"contentSize":{"type":"integer","description":"Number of results in the page","format":"int32"},"content":{"type":"array","description":"Collection of results in the page","items":{"type":"object","properties":{"bpns":{"type":"string","description":"A BPNS represents and uniquely identifies a site, which is where for example a production plant, a warehouse, or an office building is located."},"name":{"type":"string","description":"The name of the site. This is not according to official registers but according to the name the owner chooses."},"states":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the site."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["ACTIVE","INACTIVE"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"}},"description":"A site state indicates if the site is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the site is still operating."}},"bpnLegalEntity":{"type":"string","description":"The BPNL of the legal entity owning the site."},"createdAt":{"type":"string","description":"The date when the data record has been created.","format":"date-time"},"updatedAt":{"type":"string","description":"The date when the data record has been last updated.","format":"date-time"},"mainAddress":{"type":"object","properties":{"bpna":{"type":"string","description":"A BPNA represents and uniquely identifies an address, which can be the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates). It is important to note that only the BPNL must be used to uniquely identify a legal entity. Even in the case that the BPNA represents the legal address of the legal entity, it shall not be used to uniquely identify the legal entity."},"name":{"type":"string","description":"The name of the address. This is not according to official registers but according to the name the sharing member chooses."},"states":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the address."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["ACTIVE","INACTIVE"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"}},"description":"An address state indicates if the address is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the business partner is still operating at that address."}},"identifiers":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"0847976000005\"."},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference"},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"}},"description":"An address identifier (uniquely) identifies the address, such as the Global Location Number (GLN)."}},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"},"administrativeAreaLevel1":{"type":"object","properties":{"countryCode":{"type":"string","description":"Country code","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"regionCode":{"type":"string","description":"Abbreviation or shorthand of the area"},"regionName":{"type":"string","description":"Describes the full name of the region within a country according to ISO 3166-214"}},"description":"Region within a country"},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"name":{"type":"string","description":"The name of the street."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."}},"description":"The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway"},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"A physical postal address describes the physical location of an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"},"administrativeAreaLevel1":{"type":"object","properties":{"countryCode":{"type":"string","description":"Country code","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"regionCode":{"type":"string","description":"Abbreviation or shorthand of the area"},"regionName":{"type":"string","description":"Describes the full name of the region within a country according to ISO 3166-214"}},"description":"Region within a country"},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else."},"bpnLegalEntity":{"type":"string","description":"The BPNL of the legal entity owning the address."},"bpnSite":{"type":"string","description":"The BPNS of the site the address belongs to."},"createdAt":{"type":"string","description":"The date when the data record has been created.","format":"date-time"},"updatedAt":{"type":"string","description":"The date when the data record has been last updated.","format":"date-time"},"isLegalAddress":{"type":"boolean","description":"Indicates if the address is the legal address to a legal entity."},"isMainAddress":{"type":"boolean","description":"Indicates if the address is the main address to a site. This is where typically the main entrance or the reception is located, or where the mail is delivered to."}},"description":"In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA."}},"description":"In general, a site is a delimited geographical area in which an organization (such as an enterprise or company, university, association, etc.) conducts business. In Catena-X, a site is a type of business partner representing a physical location or area owned by a legal entity, where a production plant, a warehouse, or an office building is located. A site is owned by a legal entity. Thus, exactly one legal entity is assigned to a site. A site has exactly one main address, but it is possible to specify additional addresses (such as different gates), that belong to a site. Thus, at least one address is assigned to a site. A site can only be uploaded and modified by the owner (the legal entity), because only the owner knows which addresses belong to which site. A site is uniquely identified by the BPNS."}}},"description":"Paginated collection of results"}}}},"400":{"description":"On malformed request parameters"}},"method":"post","path":"/api/catena/sites/search","servers":[{"url":"http://localhost:8080","description":"Generated server url"}],"jsonRequestBodyExample":{"legalEntities":["string"],"sites":["string"]},"info":{"title":"Business Partner Data Management Pool","description":"Service that manages and shares business partner data with other CatenaX services","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Returns sites by an array of BPNS and/or an array of corresponding BPNL","description":{"content":"Search business partners of type site by their BPNSs or by the BPNLs of their parent legal entities","type":"text/plain"},"url":{"path":["api","catena","sites","search"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"description":{"content":"Number of page to get results from","type":"text/plain"},"key":"page","value":""},{"disabled":false,"description":{"content":"Size of each page","type":"text/plain"},"key":"size","value":""}],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Pool Api/business-partner-data-management-pool +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Returns sites by an array of BPNS and/or an array of corresponding BPNL + + + +Search business partners of type site by their BPNSs or by the BPNLs of their parent legal entities + +
Query Parameters
Request Body required
+ +Found sites that belong to specified legal entites + +
Schema
    content object[]
    + +Collection of results in the page + +
    states object[]
    type object
    + +Named type uniquely identified by its technical key + +
    mainAddress object
    + +In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA. + +
    states object[]
    type object
    + +Named type uniquely identified by its technical key + +
    identifiers object[]
    type object
    + +Named type uniquely identified by its technical key + +
    physicalPostalAddress object
    + +A physical postal address describes the physical location of an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    country object
    + +Named type uniquely identified by its technical key + +
    administrativeAreaLevel1 object
    + +Region within a country + +
    street object
    + +The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway + +
    alternativePostalAddress object
    + +An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    country object
    + +Named type uniquely identified by its technical key + +
    administrativeAreaLevel1 object
    + +Region within a country + +
+ +On malformed request parameters + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/set-legal-entity-currentness.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/set-legal-entity-currentness.api.mdx new file mode 100644 index 00000000000..8507fff8e19 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/set-legal-entity-currentness.api.mdx @@ -0,0 +1,42 @@ +--- +id: set-legal-entity-currentness +title: "Confirms that the data of a legal entity business partner is still up to date." +description: "Confirms that the data of a business partner is still up to date by saving the current timestamp at the time this POST-request is made as this business partner's 'currentness'. Ignores case of bpnl." +sidebar_label: "Confirms that the data of a legal entity business partner is still up to date." +hide_title: true +hide_table_of_contents: true +api: {"tags":["legal-entity-controller"],"description":"Confirms that the data of a business partner is still up to date by saving the current timestamp at the time this POST-request is made as this business partner's \"currentness\". Ignores case of bpnl.","operationId":"setLegalEntityCurrentness","parameters":[{"name":"bpnl","in":"path","description":"BPNL value","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Business partner's \"currentness\" successfully updated"},"400":{"description":"On malformed request parameters"},"404":{"description":"No business partner found for specified bpnl"}},"method":"post","path":"/api/catena/legal-entities/{bpnl}/confirm-up-to-date","servers":[{"url":"http://localhost:8080","description":"Generated server url"}],"info":{"title":"Business Partner Data Management Pool","description":"Service that manages and shares business partner data with other CatenaX services","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Confirms that the data of a legal entity business partner is still up to date.","description":{"content":"Confirms that the data of a business partner is still up to date by saving the current timestamp at the time this POST-request is made as this business partner's \"currentness\". Ignores case of bpnl.","type":"text/plain"},"url":{"path":["api","catena","legal-entities",":bpnl","confirm-up-to-date"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) BPNL value","type":"text/plain"},"type":"any","value":"","key":"bpnl"}]},"method":"POST"}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Pool Api/business-partner-data-management-pool +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Confirms that the data of a legal entity business partner is still up to date. + + + +Confirms that the data of a business partner is still up to date by saving the current timestamp at the time this POST-request is made as this business partner's "currentness". Ignores case of bpnl. + +
Path Parameters
+ +Business partner's "currentness" successfully updated + +
+ +On malformed request parameters + +
+ +No business partner found for specified bpnl + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/sidebar.js b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/sidebar.js new file mode 100644 index 00000000000..a4ba70921dd --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/sidebar.js @@ -0,0 +1 @@ +module.exports = [{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Pool Api/business-partner-data-management-pool"},{"type":"category","label":"site-controller","link":{"type":"generated-index","title":"site-controller","slug":"/category/kits/Business Partner Kit/Software Development View/Pool Api/site-controller"},"items":[{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Pool Api/get-sites-paginated","label":"Get page of sites matching the pagination search criteria","className":"api-method get"},{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Pool Api/update-site","label":"Updates an existing site","className":"api-method put"},{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Pool Api/create-site","label":"Creates a new site","className":"api-method post"},{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Pool Api/search-sites","label":"Returns sites by an array of BPNS and/or an array of corresponding BPNL","className":"api-method post"},{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Pool Api/search-main-addresses","label":"Search for sites' main addresses","className":"api-method post"},{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Pool Api/get-site","label":"Returns a site by its BPNS","className":"api-method get"}]},{"type":"category","label":"legal-entity-controller","link":{"type":"generated-index","title":"legal-entity-controller","slug":"/category/kits/Business Partner Kit/Software Development View/Pool Api/legal-entity-controller"},"items":[{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Pool Api/get-legal-entities","label":"Returns legal entities by different search parameters","className":"api-method get"},{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Pool Api/update-business-partners","label":"Updates an existing legal entity","className":"api-method put"},{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Pool Api/create-business-partners","label":"Creates a new legal entity","className":"api-method post"},{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Pool Api/set-legal-entity-currentness","label":"Confirms that the data of a legal entity business partner is still up to date.","className":"api-method post"},{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Pool Api/search-sites-1","label":"Returns legal entities by an array of BPNL","className":"api-method post"},{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Pool Api/search-legal-addresses","label":"Search Legal Addresses","className":"api-method post"},{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Pool Api/get-legal-entity","label":"Returns a legal entity by identifier, like BPN, DUNS or EU VAT ID, specified by the identifier type","className":"api-method get"},{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Pool Api/get-sites","label":"Returns all sites of a legal entity with a specific BPNL","className":"api-method get"},{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Pool Api/get-addresses","label":"Returns all addresses of a legal entity with a specific BPNL","className":"api-method get"}]},{"type":"category","label":"address-controller","link":{"type":"generated-index","title":"address-controller","slug":"/category/kits/Business Partner Kit/Software Development View/Pool Api/address-controller"},"items":[{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Pool Api/get-addresses-1","label":"Returns addresses by different search parameters","className":"api-method get"},{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Pool Api/update-addresses","label":"Updates an existing address","className":"api-method put"},{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Pool Api/create-addresses","label":"Creates a new address","className":"api-method post"},{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Pool Api/search-addresses","label":"Returns addresses by an array of BPNA and/or an array of corresponding BPNS and/or an array of corresponding BPNL.","className":"api-method post"},{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Pool Api/get-address","label":"Returns an address by its BPNA","className":"api-method get"}]},{"type":"category","label":"open-search-controller","link":{"type":"generated-index","title":"open-search-controller","slug":"/category/kits/Business Partner Kit/Software Development View/Pool Api/open-search-controller"},"items":[{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Pool Api/get-business-partners","label":"Fetch information about the latest OpenSearch export","className":"api-method get"},{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Pool Api/export","label":"Index new business partner records on OpenSearch","className":"api-method post"},{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Pool Api/clear","label":"Clear business partner index on OpenSearch","className":"api-method delete"}]},{"type":"category","label":"metadata-controller","link":{"type":"generated-index","title":"metadata-controller","slug":"/category/kits/Business Partner Kit/Software Development View/Pool Api/metadata-controller"},"items":[{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Pool Api/get-regions","label":"Get page of regions","className":"menu__list-item--deprecated api-method get"},{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Pool Api/create-region","label":"Create new Region","className":"menu__list-item--deprecated api-method post"},{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Pool Api/get-legal-forms","label":"Returns all legal forms","className":"api-method get"},{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Pool Api/create-legal-form","label":"Creates a new legal form","className":"api-method post"},{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Pool Api/get-identifier-types","label":"Returns all identifier types filtered by business partner type and country.","className":"api-method get"},{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Pool Api/create-identifier-type","label":"Creates a new identifier type","className":"api-method post"},{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Pool Api/get-field-quality-rules","label":"Get all field quality rules filtered by country (specified by its ISO 3166-1 alpha-2 country code)","className":"api-method get"},{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Pool Api/get-admin-areas-level-1","label":"Get page of country subdivisions suitable for the administrativeAreaLevel1 address property","className":"api-method get"}]},{"type":"category","label":"changelog-controller","link":{"type":"generated-index","title":"changelog-controller","slug":"/category/kits/Business Partner Kit/Software Development View/Pool Api/changelog-controller"},"items":[{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Pool Api/get-changelog-entries","label":"Returns changelog entries as of a specified timestamp, optionally filtered by a list of BPNL/S/A, or business partner types","className":"api-method post"}]},{"type":"category","label":"bpn-controller","link":{"type":"generated-index","title":"bpn-controller","slug":"/category/kits/Business Partner Kit/Software Development View/Pool Api/bpn-controller"},"items":[{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Pool Api/find-bpns-by-identifiers","label":"Returns a list of identifier mappings of an identifier to a BPNL/A/S, specified by a business partner type, identifier type and identifier values","className":"api-method post"}]},{"type":"category","label":"pool-documentation-controller","link":{"type":"generated-index","title":"pool-documentation-controller","slug":"/category/kits/Business Partner Kit/Software Development View/Pool Api/pool-documentation-controller"},"items":[{"type":"doc","id":"kits/Business Partner Kit/Software Development View/Pool Api/get-mermaid-pool-persistence","label":"Get mermaid class diagramm for the pool JPA model","className":"api-method get"}]}]; \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/update-addresses.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/update-addresses.api.mdx new file mode 100644 index 00000000000..3c11330f6e7 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/update-addresses.api.mdx @@ -0,0 +1,110 @@ +--- +id: update-addresses +title: "Updates an existing address" +description: "Update existing business partner records of type address referenced via BPNA. The endpoint expects to receive the full updated record, including values that didn't change." +sidebar_label: "Updates an existing address" +hide_title: true +hide_table_of_contents: true +api: {"tags":["address-controller"],"description":"Update existing business partner records of type address referenced via BPNA. The endpoint expects to receive the full updated record, including values that didn't change.","operationId":"updateAddresses","requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"bpna":{"type":"string"},"name":{"type":"string","description":"The name of the address. This is not according to official registers but according to the name the sharing member chooses."},"states":{"type":"array","description":"The list of (temporary) states of the address.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the address."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}},"description":"An address state indicates if the address is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the business partner is still operating at that address."}},"identifiers":{"type":"array","description":"The list of identifiers of the address.","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"0847976000005\"."},"type":{"type":"string","description":"The type of the identifier."}},"description":"An address identifier (uniquely) identifies the address, such as the Global Location Number (GLN)."}},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"name":{"type":"string","description":"The name of the street."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."}},"description":"The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway"},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"A physical postal address describes the physical location of an office, warehouse, gate, etc."},"alternativePostalAddress":{"required":["city","country","deliveryServiceNumber","deliveryServiceType"],"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else."}},"description":"Request for updating a business partner record of type address. In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA."}}}},"required":true},"responses":{"200":{"description":"The successfully updated records, possible errors are returned","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"type":"object","properties":{"bpna":{"type":"string","description":"A BPNA represents and uniquely identifies an address, which can be the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates). It is important to note that only the BPNL must be used to uniquely identify a legal entity. Even in the case that the BPNA represents the legal address of the legal entity, it shall not be used to uniquely identify the legal entity."},"name":{"type":"string","description":"The name of the address. This is not according to official registers but according to the name the sharing member chooses."},"states":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the address."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["ACTIVE","INACTIVE"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"}},"description":"An address state indicates if the address is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the business partner is still operating at that address."}},"identifiers":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"0847976000005\"."},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference"},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"}},"description":"An address identifier (uniquely) identifies the address, such as the Global Location Number (GLN)."}},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"},"administrativeAreaLevel1":{"type":"object","properties":{"countryCode":{"type":"string","description":"Country code","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"regionCode":{"type":"string","description":"Abbreviation or shorthand of the area"},"regionName":{"type":"string","description":"Describes the full name of the region within a country according to ISO 3166-214"}},"description":"Region within a country"},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"name":{"type":"string","description":"The name of the street."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."}},"description":"The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway"},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"A physical postal address describes the physical location of an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"},"administrativeAreaLevel1":{"type":"object","properties":{"countryCode":{"type":"string","description":"Country code","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"regionCode":{"type":"string","description":"Abbreviation or shorthand of the area"},"regionName":{"type":"string","description":"Describes the full name of the region within a country according to ISO 3166-214"}},"description":"Region within a country"},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else."},"bpnLegalEntity":{"type":"string","description":"The BPNL of the legal entity owning the address."},"bpnSite":{"type":"string","description":"The BPNS of the site the address belongs to."},"createdAt":{"type":"string","description":"The date when the data record has been created.","format":"date-time"},"updatedAt":{"type":"string","description":"The date when the data record has been last updated.","format":"date-time"},"isLegalAddress":{"type":"boolean","description":"Indicates if the address is the legal address to a legal entity."},"isMainAddress":{"type":"boolean","description":"Indicates if the address is the main address to a site. This is where typically the main entrance or the reception is located, or where the mail is delivered to."}},"description":"In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA."}},"errors":{"type":"array","items":{"title":"ErrorInfo","type":"object","properties":{"errorCode":{"type":"string","description":"AddressUpdateError","enum":["AddressNotFound","RegionNotFound","IdentifierNotFound","AddressDuplicateIdentifier"]},"message":{"type":"string"},"entityKey":{"type":"string"}},"description":"Holds information about failures when creating or updating an entity"}},"entityCount":{"type":"integer","format":"int32"},"errorCount":{"type":"integer","format":"int32"}},"description":"Holds information about successfully and failed entities after the creating/updating of several objects"}}}},"400":{"description":"On malformed requests"}},"method":"put","path":"/api/catena/addresses","servers":[{"url":"http://localhost:8080","description":"Generated server url"}],"jsonRequestBodyExample":[{"bpna":"string","name":"string","states":[{"description":"string","validFrom":"2023-11-02","validTo":"2023-11-02","type":"ACTIVE"}],"identifiers":[{"value":"string","type":"string"}],"physicalPostalAddress":{"geographicCoordinates":{"longitude":0,"latitude":0,"altitude":0},"country":"UNDEFINED","administrativeAreaLevel1":"string","administrativeAreaLevel2":"string","administrativeAreaLevel3":"string","postalCode":"string","city":"string","district":"string","street":{"name":"string","houseNumber":"string","milestone":"string","direction":"string"},"companyPostalCode":"string","industrialZone":"string","building":"string","floor":"string","door":"string"},"alternativePostalAddress":{"geographicCoordinates":{"longitude":0,"latitude":0,"altitude":0},"country":"UNDEFINED","administrativeAreaLevel1":"string","postalCode":"string","city":"string","deliveryServiceType":"PO_BOX","deliveryServiceQualifier":"string","deliveryServiceNumber":"string"}}],"info":{"title":"Business Partner Data Management Pool","description":"Service that manages and shares business partner data with other CatenaX services","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Updates an existing address","description":{"content":"Update existing business partner records of type address referenced via BPNA. The endpoint expects to receive the full updated record, including values that didn't change.","type":"text/plain"},"url":{"path":["api","catena","addresses"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"PUT","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "put api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Pool Api/business-partner-data-management-pool +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Updates an existing address + + + +Update existing business partner records of type address referenced via BPNA. The endpoint expects to receive the full updated record, including values that didn't change. + +
Request Body array required
    states object[]
    + +The list of (temporary) states of the address. + +
    identifiers object[]
    + +The list of identifiers of the address. + +
    physicalPostalAddress object
    + +A physical postal address describes the physical location of an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    street object
    + +The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway + +
    alternativePostalAddress object
    + +An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
+ +The successfully updated records, possible errors are returned + +
Schema
    entities object[]
    states object[]
    type object
    + +Named type uniquely identified by its technical key + +
    identifiers object[]
    type object
    + +Named type uniquely identified by its technical key + +
    physicalPostalAddress object
    + +A physical postal address describes the physical location of an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    country object
    + +Named type uniquely identified by its technical key + +
    administrativeAreaLevel1 object
    + +Region within a country + +
    street object
    + +The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway + +
    alternativePostalAddress object
    + +An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    country object
    + +Named type uniquely identified by its technical key + +
    administrativeAreaLevel1 object
    + +Region within a country + +
    errors object[]
+ +On malformed requests + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/update-business-partners.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/update-business-partners.api.mdx new file mode 100644 index 00000000000..8a7906b95f3 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/update-business-partners.api.mdx @@ -0,0 +1,166 @@ +--- +id: update-business-partners +title: "Updates an existing legal entity" +description: "Update existing business partner records of type legal entity referenced via BPNL. The endpoint expects to receive the full updated record, including values that didn't change." +sidebar_label: "Updates an existing legal entity" +hide_title: true +hide_table_of_contents: true +api: {"tags":["legal-entity-controller"],"description":"Update existing business partner records of type legal entity referenced via BPNL. The endpoint expects to receive the full updated record, including values that didn't change.","operationId":"updateBusinessPartners","requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"bpnl":{"type":"string","description":"A BPNL represents and uniquely identifies a legal entity, which is defined by its legal name (including legal form, if registered), legal address and tax number."},"legalName":{"type":"string","description":"The name of the legal entity according to official registers."},"identifiers":{"type":"array","description":"The list of identifiers of the legal entity.","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"DE123465789\"."},"type":{"type":"string","description":"The type of the identifier."},"issuingBody":{"type":"string","description":"The name of the official register, where the identifier is registered. For example, a Handelsregisternummer in Germany is only valid with its corresponding Handelsregister."}}}},"legalShortName":{"type":"string","description":"The abbreviated name of the legal entity."},"legalForm":{"type":"string","description":"The legal form of the legal entity."},"states":{"type":"array","description":"The list of (temporary) states of the legal entity.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the legal entity, such as from the German Handelsregister."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}},"description":"A legal entity state indicates if the legal entity is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the legal entity is still operating."}},"classifications":{"type":"array","description":"The list of classifications of the legal entity, such as a specific industry.","items":{"type":"object","properties":{"type":{"type":"string","description":"Type of classification.","enum":["NACE","NAF","NAICS","SIC"]},"code":{"type":"string","description":"The identifier of the class belonging to the classification."},"value":{"type":"string","description":"The name of the class belonging to the classification."}},"description":"A legal entity classification is an assignment of the legal entity to an industry. It does not necessarily have to be the only industry the company is active in (see large companies operating in different industries). Multiple assignments to several industries are possible per classification type."}},"legalAddress":{"type":"object","properties":{"name":{"type":"string","description":"The name of the address. This is not according to official registers but according to the name the sharing member chooses."},"states":{"type":"array","description":"The list of (temporary) states of the address.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the address."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}},"description":"An address state indicates if the address is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the business partner is still operating at that address."}},"identifiers":{"type":"array","description":"The list of identifiers of the address.","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"0847976000005\"."},"type":{"type":"string","description":"The type of the identifier."}},"description":"An address identifier (uniquely) identifies the address, such as the Global Location Number (GLN)."}},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"name":{"type":"string","description":"The name of the street."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."}},"description":"The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway"},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"A physical postal address describes the physical location of an office, warehouse, gate, etc."},"alternativePostalAddress":{"required":["city","country","deliveryServiceNumber","deliveryServiceType"],"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else."}},"description":"In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA."}},"description":"Request for updating a business partner record of type legal entity. In general, a legal entity is a juridical person that has legal rights and duties related to contracts, agreements, and obligations. The term especially applies to any kind of organization (such as an enterprise or company, university, association, etc.) established under the law applicable to a country.In Catena-X, a legal entity is a type of business partner representing a legally registered organization with its official registration information, such as legal name (including legal form, if registered), legal address and tax number.A legal entity has exactly one legal address, but it is possible to specify additional addresses that a legal entity owns. Thus, at least one address is assigned to a legal entity. A legal entity can own sites. Thus, many or no sites are assigned to a legal entity. A legal entity is uniquely identified by the BPNL."}}}},"required":true},"responses":{"200":{"description":"Update legal entities request was processed successfully, possible errors are returned","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"type":"object","properties":{"legalName":{"type":"string","description":"The name of the legal entity according to official registers."},"bpnl":{"type":"string","description":"A BPNL represents and uniquely identifies a legal entity, which is defined by its legal name (including legal form, if registered), legal address and tax number."},"identifiers":{"type":"array","description":"The list of identifiers of the legal entity.","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"DE123465789\"."},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference"},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"},"issuingBody":{"type":"string","description":"The name of the official register, where the identifier is registered. For example, a Handelsregisternummer in Germany is only valid with its corresponding Handelsregister."}},"description":"A legal entity identifier (uniquely) identifies the legal entity, such as the German Handelsregisternummer, a VAT number, etc."}},"legalShortName":{"type":"string","description":"The abbreviated name of the legal entity."},"legalForm":{"type":"object","properties":{"technicalKey":{"type":"string","description":"The technical identifier of the legal form according to ISO 20275."},"name":{"type":"string","description":"The name of legal form according to ISO 20275."},"abbreviation":{"type":"string","description":"The abbreviated name of the legal form, such as AG for German Aktiengesellschaft."}},"description":"A legal form is a mandatory corporate legal framework by which companies can conduct business, charitable or other permissible activities."},"states":{"type":"array","description":"The list of (temporary) states of the legal entity.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the legal entity, such as from the German Handelsregister."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["ACTIVE","INACTIVE"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"}},"description":"A legal entity state indicates if the legal entity is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the legal entity is still operating."}},"classifications":{"type":"array","description":"The list of classifications of the legal entity, such as a specific industry.","items":{"type":"object","properties":{"value":{"type":"string","description":"The name of the class belonging to the classification."},"code":{"type":"string","description":"The identifier of the class belonging to the classification."},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["NACE","NAF","NAICS","SIC"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"}},"description":"A legal entity classification is an assignment of the legal entity to an industry. It does not necessarily have to be the only industry the company is active in (see large companies operating in different industries). Multiple assignments to several industries are possible per classification type."}},"relations":{"type":"array","description":"Relations to other business partners.","items":{"type":"object","properties":{"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["CX_LEGAL_SUCCESSOR_OF","CX_LEGAL_PREDECESSOR_OF"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"},"startBpnl":{"type":"string","description":"BPN of partner which is the source of the relation"},"endBpnl":{"type":"string","description":"BPN of partner which is the target of the relation"},"validFrom":{"type":"string","description":"Time when the relation started","format":"date-time"},"validTo":{"type":"string","description":"Time when the relation ended","format":"date-time"}},"description":"Directed relation between two business partners"}},"currentness":{"type":"string","description":"The date the business partner data was last indicated to be still current.","format":"date-time"},"createdAt":{"type":"string","description":"The date when the data record has been created.","format":"date-time"},"updatedAt":{"type":"string","description":"The date when the data record has been last updated.","format":"date-time"},"legalAddress":{"type":"object","properties":{"bpna":{"type":"string","description":"A BPNA represents and uniquely identifies an address, which can be the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates). It is important to note that only the BPNL must be used to uniquely identify a legal entity. Even in the case that the BPNA represents the legal address of the legal entity, it shall not be used to uniquely identify the legal entity."},"name":{"type":"string","description":"The name of the address. This is not according to official registers but according to the name the sharing member chooses."},"states":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the address."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["ACTIVE","INACTIVE"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"}},"description":"An address state indicates if the address is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the business partner is still operating at that address."}},"identifiers":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"0847976000005\"."},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference"},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"}},"description":"An address identifier (uniquely) identifies the address, such as the Global Location Number (GLN)."}},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"},"administrativeAreaLevel1":{"type":"object","properties":{"countryCode":{"type":"string","description":"Country code","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"regionCode":{"type":"string","description":"Abbreviation or shorthand of the area"},"regionName":{"type":"string","description":"Describes the full name of the region within a country according to ISO 3166-214"}},"description":"Region within a country"},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"name":{"type":"string","description":"The name of the street."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."}},"description":"The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway"},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"A physical postal address describes the physical location of an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"},"administrativeAreaLevel1":{"type":"object","properties":{"countryCode":{"type":"string","description":"Country code","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"regionCode":{"type":"string","description":"Abbreviation or shorthand of the area"},"regionName":{"type":"string","description":"Describes the full name of the region within a country according to ISO 3166-214"}},"description":"Region within a country"},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else."},"bpnLegalEntity":{"type":"string","description":"The BPNL of the legal entity owning the address."},"bpnSite":{"type":"string","description":"The BPNS of the site the address belongs to."},"createdAt":{"type":"string","description":"The date when the data record has been created.","format":"date-time"},"updatedAt":{"type":"string","description":"The date when the data record has been last updated.","format":"date-time"},"isLegalAddress":{"type":"boolean","description":"Indicates if the address is the legal address to a legal entity."},"isMainAddress":{"type":"boolean","description":"Indicates if the address is the main address to a site. This is where typically the main entrance or the reception is located, or where the mail is delivered to."}},"description":"In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA."},"index":{"type":"string","description":"User defined index to conveniently match this entry to the corresponding entry in the response."}},"description":"Created/updated business partner of type legal entity. In general, a legal entity is a juridical person that has legal rights and duties related to contracts, agreements, and obligations. The term especially applies to any kind of organization (such as an enterprise or company, university, association, etc.) established under the law applicable to a country.In Catena-X, a legal entity is a type of business partner representing a legally registered organization with its official registration information, such as legal name (including legal form, if registered), legal address and tax number.A legal entity has exactly one legal address, but it is possible to specify additional addresses that a legal entity owns. Thus, at least one address is assigned to a legal entity. A legal entity can own sites. Thus, many or no sites are assigned to a legal entity. A legal entity is uniquely identified by the BPNL."}},"errors":{"type":"array","items":{"title":"ErrorInfo","type":"object","properties":{"errorCode":{"type":"string","description":"LegalEntityUpdateError","enum":["LegalEntityNotFound","LegalEntityDuplicateIdentifier","LegalFormNotFound","LegalEntityIdentifierNotFound","LegalAddressRegionNotFound","LegalAddressIdentifierNotFound","LegalAddressDuplicateIdentifier"]},"message":{"type":"string"},"entityKey":{"type":"string"}},"description":"Holds information about failures when creating or updating an entity"}},"entityCount":{"type":"integer","format":"int32"},"errorCount":{"type":"integer","format":"int32"}},"description":"Holds information about successfully and failed entities after the creating/updating of several objects"}}}},"400":{"description":"On malformed requests"}},"method":"put","path":"/api/catena/legal-entities","servers":[{"url":"http://localhost:8080","description":"Generated server url"}],"jsonRequestBodyExample":[{"bpnl":"string","legalName":"string","identifiers":[{"value":"string","type":"string","issuingBody":"string"}],"legalShortName":"string","legalForm":"string","states":[{"description":"string","validFrom":"2023-11-02","validTo":"2023-11-02","type":"ACTIVE"}],"classifications":[{"type":"NACE","code":"string","value":"string"}],"legalAddress":{"name":"string","states":[{"description":"string","validFrom":"2023-11-02","validTo":"2023-11-02","type":"ACTIVE"}],"identifiers":[{"value":"string","type":"string"}],"physicalPostalAddress":{"geographicCoordinates":{"longitude":0,"latitude":0,"altitude":0},"country":"UNDEFINED","administrativeAreaLevel1":"string","administrativeAreaLevel2":"string","administrativeAreaLevel3":"string","postalCode":"string","city":"string","district":"string","street":{"name":"string","houseNumber":"string","milestone":"string","direction":"string"},"companyPostalCode":"string","industrialZone":"string","building":"string","floor":"string","door":"string"},"alternativePostalAddress":{"geographicCoordinates":{"longitude":0,"latitude":0,"altitude":0},"country":"UNDEFINED","administrativeAreaLevel1":"string","postalCode":"string","city":"string","deliveryServiceType":"PO_BOX","deliveryServiceQualifier":"string","deliveryServiceNumber":"string"}}}],"info":{"title":"Business Partner Data Management Pool","description":"Service that manages and shares business partner data with other CatenaX services","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Updates an existing legal entity","description":{"content":"Update existing business partner records of type legal entity referenced via BPNL. The endpoint expects to receive the full updated record, including values that didn't change.","type":"text/plain"},"url":{"path":["api","catena","legal-entities"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"PUT","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "put api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Pool Api/business-partner-data-management-pool +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Updates an existing legal entity + + + +Update existing business partner records of type legal entity referenced via BPNL. The endpoint expects to receive the full updated record, including values that didn't change. + +
Request Body array required
    identifiers object[]
    + +The list of identifiers of the legal entity. + +
    states object[]
    + +The list of (temporary) states of the legal entity. + +
    classifications object[]
    + +The list of classifications of the legal entity, such as a specific industry. + +
    legalAddress object
    + +In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA. + +
    states object[]
    + +The list of (temporary) states of the address. + +
    identifiers object[]
    + +The list of identifiers of the address. + +
    physicalPostalAddress object
    + +A physical postal address describes the physical location of an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    street object
    + +The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway + +
    alternativePostalAddress object
    + +An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
+ +Update legal entities request was processed successfully, possible errors are returned + +
Schema
    entities object[]
    identifiers object[]
    + +The list of identifiers of the legal entity. + +
    type object
    + +Named type uniquely identified by its technical key + +
    legalForm object
    + +A legal form is a mandatory corporate legal framework by which companies can conduct business, charitable or other permissible activities. + +
    states object[]
    + +The list of (temporary) states of the legal entity. + +
    type object
    + +Named type uniquely identified by its technical key + +
    classifications object[]
    + +The list of classifications of the legal entity, such as a specific industry. + +
    type object
    + +Named type uniquely identified by its technical key + +
    relations object[]
    + +Relations to other business partners. + +
    type object
    + +Named type uniquely identified by its technical key + +
    legalAddress object
    + +In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA. + +
    states object[]
    type object
    + +Named type uniquely identified by its technical key + +
    identifiers object[]
    type object
    + +Named type uniquely identified by its technical key + +
    physicalPostalAddress object
    + +A physical postal address describes the physical location of an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    country object
    + +Named type uniquely identified by its technical key + +
    administrativeAreaLevel1 object
    + +Region within a country + +
    street object
    + +The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway + +
    alternativePostalAddress object
    + +An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    country object
    + +Named type uniquely identified by its technical key + +
    administrativeAreaLevel1 object
    + +Region within a country + +
    errors object[]
+ +On malformed requests + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/update-site.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/update-site.api.mdx new file mode 100644 index 00000000000..1954a3476c6 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/Pool Api/update-site.api.mdx @@ -0,0 +1,122 @@ +--- +id: update-site +title: "Updates an existing site" +description: "Update existing business partner records of type site referenced via BPNS. The endpoint expects to receive the full updated record, including values that didn't change." +sidebar_label: "Updates an existing site" +hide_title: true +hide_table_of_contents: true +api: {"tags":["site-controller"],"description":"Update existing business partner records of type site referenced via BPNS. The endpoint expects to receive the full updated record, including values that didn't change.","operationId":"updateSite","requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"bpns":{"type":"string"},"name":{"type":"string","description":"The name of the site. This is not according to official registers but according to the name the owner chooses."},"states":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the site."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}},"description":"A site state indicates if the site is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the site is still operating."}},"mainAddress":{"type":"object","properties":{"name":{"type":"string","description":"The name of the address. This is not according to official registers but according to the name the sharing member chooses."},"states":{"type":"array","description":"The list of (temporary) states of the address.","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the address."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"string","description":"One of the state types: active, inactive.","enum":["ACTIVE","INACTIVE"]}},"description":"An address state indicates if the address is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the business partner is still operating at that address."}},"identifiers":{"type":"array","description":"The list of identifiers of the address.","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"0847976000005\"."},"type":{"type":"string","description":"The type of the identifier."}},"description":"An address identifier (uniquely) identifies the address, such as the Global Location Number (GLN)."}},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"name":{"type":"string","description":"The name of the street."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."}},"description":"The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway"},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"A physical postal address describes the physical location of an office, warehouse, gate, etc."},"alternativePostalAddress":{"required":["city","country","deliveryServiceNumber","deliveryServiceType"],"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"string","description":"The 2-digit country code of the physical postal address according to ISO 3166-1.","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"administrativeAreaLevel1":{"type":"string","description":"The 2-digit country subdivision code according to ISO 3166-2, such as a region within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else."}},"description":"In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA."}},"description":"Request for updating a business partner record of type site. In general, a site is a delimited geographical area in which an organization (such as an enterprise or company, university, association, etc.) conducts business. In Catena-X, a site is a type of business partner representing a physical location or area owned by a legal entity, where a production plant, a warehouse, or an office building is located. A site is owned by a legal entity. Thus, exactly one legal entity is assigned to a site. A site has exactly one main address, but it is possible to specify additional addresses (such as different gates), that belong to a site. Thus, at least one address is assigned to a site. A site can only be uploaded and modified by the owner (the legal entity), because only the owner knows which addresses belong to which site. A site is uniquely identified by the BPNS."}}}},"required":true},"responses":{"200":{"description":"Update sites request was processed successfully, possible errors are returned","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"type":"object","properties":{"bpns":{"type":"string","description":"A BPNS represents and uniquely identifies a site, which is where for example a production plant, a warehouse, or an office building is located."},"name":{"type":"string","description":"The name of the site. This is not according to official registers but according to the name the owner chooses."},"states":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the site."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["ACTIVE","INACTIVE"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"}},"description":"A site state indicates if the site is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the site is still operating."}},"bpnLegalEntity":{"type":"string","description":"The BPNL of the legal entity owning the site."},"createdAt":{"type":"string","description":"The date when the data record has been created.","format":"date-time"},"updatedAt":{"type":"string","description":"The date when the data record has been last updated.","format":"date-time"},"mainAddress":{"type":"object","properties":{"bpna":{"type":"string","description":"A BPNA represents and uniquely identifies an address, which can be the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates). It is important to note that only the BPNL must be used to uniquely identify a legal entity. Even in the case that the BPNA represents the legal address of the legal entity, it shall not be used to uniquely identify the legal entity."},"name":{"type":"string","description":"The name of the address. This is not according to official registers but according to the name the sharing member chooses."},"states":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string","description":"The description from the original source indicating the state of the address."},"validFrom":{"type":"string","description":"The date from which the state is valid.","format":"date-time"},"validTo":{"type":"string","description":"The date until the state is valid.","format":"date-time"},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["ACTIVE","INACTIVE"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"}},"description":"An address state indicates if the address is active or inactive. This does not describe the relation between a sharing member and a business partner and whether they have active business, but it describes whether the business partner is still operating at that address."}},"identifiers":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string","description":"The value of the identifier like \"0847976000005\"."},"type":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference"},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"}},"description":"An address identifier (uniquely) identifies the address, such as the Global Location Number (GLN)."}},"physicalPostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"},"administrativeAreaLevel1":{"type":"object","properties":{"countryCode":{"type":"string","description":"Country code","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"regionCode":{"type":"string","description":"Abbreviation or shorthand of the area"},"regionName":{"type":"string","description":"Describes the full name of the region within a country according to ISO 3166-214"}},"description":"Region within a country"},"administrativeAreaLevel2":{"type":"string","description":"The name of the locally regulated secondary country subdivision of the physical postal address, such as county within a country."},"administrativeAreaLevel3":{"type":"string","description":"The name of the locally regulated tertiary country subdivision of the physical address, such as townships within a country."},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"district":{"type":"string","description":"The name of the district of the physical postal address which divides the city in several smaller areas."},"street":{"type":"object","properties":{"name":{"type":"string","description":"The name of the street."},"houseNumber":{"type":"string","description":"The number representing the exact location of a building within the street."},"milestone":{"type":"string","description":"The number representing the exact location of an addressed object within a street without house numbers, such as within long roads."},"direction":{"type":"string","description":"The cardinal direction describing where the exit to the location of the addressed object on large highways / motorways is located, such as Highway 101 South."}},"description":"The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway"},"companyPostalCode":{"type":"string","description":"The company postal code of the physical postal address, which is sometimes required for large companies."},"industrialZone":{"type":"string","description":"The industrial zone of the physical postal address, designating an area for industrial development, synonym: industrial area."},"building":{"type":"string","description":"The alphanumeric identifier of the building addressed by the physical postal address."},"floor":{"type":"string","description":"The number of a floor in the building addressed by the physical postal address, synonym: level."},"door":{"type":"string","description":"The number of a door in the building on the respective floor addressed by the physical postal address, synonyms: room, suite."}},"description":"A physical postal address describes the physical location of an office, warehouse, gate, etc."},"alternativePostalAddress":{"type":"object","properties":{"geographicCoordinates":{"type":"object","properties":{"longitude":{"type":"number","description":"Longitude coordinate","format":"float"},"latitude":{"type":"number","description":"Latitude coordinate","format":"float"},"altitude":{"type":"number","description":"Altitude, if applicable","format":"float"}},"description":"The exact location of the physical postal address in latitude, longitude, and altitude."},"country":{"type":"object","properties":{"technicalKey":{"type":"string","description":"Unique key of this type for reference","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"name":{"type":"string","description":"Name or denotation of this type"}},"description":"Named type uniquely identified by its technical key"},"administrativeAreaLevel1":{"type":"object","properties":{"countryCode":{"type":"string","description":"Country code","enum":["UNDEFINED","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","EZ","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TT","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XI","XU","XK","YE","YT","YU","ZA","ZM","ZR","ZW"]},"regionCode":{"type":"string","description":"Abbreviation or shorthand of the area"},"regionName":{"type":"string","description":"Describes the full name of the region within a country according to ISO 3166-214"}},"description":"Region within a country"},"postalCode":{"type":"string","description":"The alphanumeric identifier (sometimes including spaces or punctuation) of the physical postal address for the purpose of sorting mail, synonyms:postcode, post code, PIN or ZIP code."},"city":{"type":"string","description":"The name of the city of the physical postal address, synonyms: town, village, municipality."},"deliveryServiceType":{"type":"string","description":"One of the alternative postal address types: P.O. box, private bag, boite postale.","enum":["PO_BOX","PRIVATE_BAG","BOITE_POSTALE"]},"deliveryServiceQualifier":{"type":"string","description":"The qualifier uniquely identifying the delivery service endpoint of the alternative postal address in conjunction with the delivery service number. In some countries for example, entering a P.O. box number, postal code and city is not sufficient to uniquely identify a P.O. box, because the same P.O. box number is assigned multiple times in some cities."},"deliveryServiceNumber":{"type":"string","description":"The number indicating the delivery service endpoint of the alternative postal address to which the delivery is to be delivered, such as a P.O. box number or a private bag number."}},"description":"An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else."},"bpnLegalEntity":{"type":"string","description":"The BPNL of the legal entity owning the address."},"bpnSite":{"type":"string","description":"The BPNS of the site the address belongs to."},"createdAt":{"type":"string","description":"The date when the data record has been created.","format":"date-time"},"updatedAt":{"type":"string","description":"The date when the data record has been last updated.","format":"date-time"},"isLegalAddress":{"type":"boolean","description":"Indicates if the address is the legal address to a legal entity."},"isMainAddress":{"type":"boolean","description":"Indicates if the address is the main address to a site. This is where typically the main entrance or the reception is located, or where the mail is delivered to."}},"description":"In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA."},"index":{"type":"string","description":"User defined index to conveniently match this entry to the corresponding entry in the response."}},"description":"Created/updated business partner of type site. In general, a site is a delimited geographical area in which an organization (such as an enterprise or company, university, association, etc.) conducts business. In Catena-X, a site is a type of business partner representing a physical location or area owned by a legal entity, where a production plant, a warehouse, or an office building is located. A site is owned by a legal entity. Thus, exactly one legal entity is assigned to a site. A site has exactly one main address, but it is possible to specify additional addresses (such as different gates), that belong to a site. Thus, at least one address is assigned to a site. A site can only be uploaded and modified by the owner (the legal entity), because only the owner knows which addresses belong to which site. A site is uniquely identified by the BPNS."}},"errors":{"type":"array","items":{"title":"ErrorInfo","type":"object","properties":{"errorCode":{"type":"string","description":"SiteUpdateError","enum":["SiteNotFound","MainAddressIdentifierNotFound","MainAddressRegionNotFound","MainAddressDuplicateIdentifier"]},"message":{"type":"string"},"entityKey":{"type":"string"}},"description":"Holds information about failures when creating or updating an entity"}},"entityCount":{"type":"integer","format":"int32"},"errorCount":{"type":"integer","format":"int32"}},"description":"Holds information about successfully and failed entities after the creating/updating of several objects"}}}},"400":{"description":"On malformed requests"}},"method":"put","path":"/api/catena/sites","servers":[{"url":"http://localhost:8080","description":"Generated server url"}],"jsonRequestBodyExample":[{"bpns":"string","name":"string","states":[{"description":"string","validFrom":"2023-11-02","validTo":"2023-11-02","type":"ACTIVE"}],"mainAddress":{"name":"string","states":[{"description":"string","validFrom":"2023-11-02","validTo":"2023-11-02","type":"ACTIVE"}],"identifiers":[{"value":"string","type":"string"}],"physicalPostalAddress":{"geographicCoordinates":{"longitude":0,"latitude":0,"altitude":0},"country":"UNDEFINED","administrativeAreaLevel1":"string","administrativeAreaLevel2":"string","administrativeAreaLevel3":"string","postalCode":"string","city":"string","district":"string","street":{"name":"string","houseNumber":"string","milestone":"string","direction":"string"},"companyPostalCode":"string","industrialZone":"string","building":"string","floor":"string","door":"string"},"alternativePostalAddress":{"geographicCoordinates":{"longitude":0,"latitude":0,"altitude":0},"country":"UNDEFINED","administrativeAreaLevel1":"string","postalCode":"string","city":"string","deliveryServiceType":"PO_BOX","deliveryServiceQualifier":"string","deliveryServiceNumber":"string"}}}],"info":{"title":"Business Partner Data Management Pool","description":"Service that manages and shares business partner data with other CatenaX services","version":"4.1.0-SNAPSHOT"},"postman":{"name":"Updates an existing site","description":{"content":"Update existing business partner records of type site referenced via BPNS. The endpoint expects to receive the full updated record, including values that didn't change.","type":"text/plain"},"url":{"path":["api","catena","sites"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"PUT","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "put api-method" +info_path: docs-kits/kits/Business Partner Kit/Software Development View/Pool Api/business-partner-data-management-pool +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Updates an existing site + + + +Update existing business partner records of type site referenced via BPNS. The endpoint expects to receive the full updated record, including values that didn't change. + +
Request Body array required
    states object[]
    mainAddress object
    + +In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA. + +
    states object[]
    + +The list of (temporary) states of the address. + +
    identifiers object[]
    + +The list of identifiers of the address. + +
    physicalPostalAddress object
    + +A physical postal address describes the physical location of an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    street object
    + +The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway + +
    alternativePostalAddress object
    + +An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
+ +Update sites request was processed successfully, possible errors are returned + +
Schema
    entities object[]
    states object[]
    type object
    + +Named type uniquely identified by its technical key + +
    mainAddress object
    + +In general, an address is a collection of information to describe a physical location, using a street name with a house number and/or a post office box as reference. In addition, an address consists of several postal attributes, such as country, region (state), county, township, city, district, or postal code, which help deliver mail.In Catena-X, an address is a type of business partner representing the legal address of a legal entity, and/or the main address of a site, or any additional address of a legal entity or site (such as different gates).An address is owned by a legal entity. Thus, exactly one legal entity is assigned to an address. An address can belong to a site. Thus, one or no site is assigned to an address. An address is uniquely identified by the BPNA. + +
    states object[]
    type object
    + +Named type uniquely identified by its technical key + +
    identifiers object[]
    type object
    + +Named type uniquely identified by its technical key + +
    physicalPostalAddress object
    + +A physical postal address describes the physical location of an office, warehouse, gate, etc. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    country object
    + +Named type uniquely identified by its technical key + +
    administrativeAreaLevel1 object
    + +Region within a country + +
    street object
    + +The street of the physical postal address, synonyms: road, avenue, lane, boulevard, highway + +
    alternativePostalAddress object
    + +An alternative postal address describes an alternative way of delivery for example if the goods are to be picked up somewhere else. + +
    geographicCoordinates object
    + +The exact location of the physical postal address in latitude, longitude, and altitude. + +
    country object
    + +Named type uniquely identified by its technical key + +
    administrativeAreaLevel1 object
    + +Region within a country + +
    errors object[]
+ +On malformed requests + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/_category_.json b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/_category_.json new file mode 100644 index 00000000000..e5c5b7565a3 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/_category_.json @@ -0,0 +1,3 @@ +{ + "label": "Development View" +} diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/page_software-development-view.md b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/page_software-development-view.md new file mode 100644 index 00000000000..14f0eb4fe29 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/page_software-development-view.md @@ -0,0 +1,201 @@ +--- +id: Specification +title: Specification +description: '' +sidebar_position: 1 +--- + +![Business partner kit banner](@site/static/img/BPKitIcon.png) + +### Business Partner KIT + +## API Reference + +The BPDM is comprised of two primary services: BPDM Pool and BPDM Gate. The Swagger UI interface, which is an interactive tool for exploring and testing RESTful APIs. Swagger UI provides a user-friendly interface for interacting with APIs, allowing you to make requests, view responses, and explore different API endpoints and operations, allowing you to drill down into specific endpoints and view the associated request parameters, response schemas, and sample responses. + +The Business Partner Data Management includes the services that manages and shares business partner data with other Catena-X services. In the following sections, the available methods and different controllers of the API are explained. +More Information to the open-source repository can be found on [GitHub](https://github.com/eclipse-tractusx/bpdm) + +## BPDM Pool Api reference + +The Business Partner Data Management Pool includes the services that manages and shares business partner data with other Catena-X services. In the following sections, the available methods and different controllers of the API are explained. + +### Available Methods + +| Request Method | Request Description| +| :----------- | :------------: | +| PUT | Update. The endpoint expects to receive the full updated record, including values that didn't change.| +| POST| Search | +| GET | Search for the best match | +| DELETE | Deletes all the records in the controller, resets the timestamp| + +### 1. Site Controller + +The Site Controller is the controller that creates, updates, or retrieves business partners of type site (referenced via BPNS). There are PUT, POST and GET requests possible and api those are availble under site controller are clustered in table below. Hyperlink in each record gives you more information about api endpoint. + +| Site Controller Apis| +| :----------- | +| [Update existing site business partners](../Software%20Development%20View/Pool%20Api/update-site.api.mdx) | +| [Create new site business partners](../Software%20Development%20View/Pool%20Api/create-site.api.mdx) | +| [Search site partners by BPNs and/or parent BPNs](../Software%20Development%20View/Pool%20Api/search-sites.api.mdx) | +| [Search Main Addresses](../Software%20Development%20View/Pool%20Api/search-main-addresses.api.mdx) | +| [Get site partners by bpn](../Software%20Development%20View/Pool%20Api/get-site.api.mdx) | + +### 2. Legal Entity Controller + +The Legal Entity Controller calls, searches, creates or updates existing business partners of type legal entity (referenced via BPNL). There are PUT, POST and GET requests possible. The endpoint expects a perfect match or looks for the highest relevancy, depending on the request made. Some of the requests need a obligatory parameter, like business partner number or id value. Hyperlink in each record gives you more information about api endpoint. + +| Legal Entity Controller Apis| +| :----------- | +| [Get page of legal entity business partners matching the search criteria](../Software%20Development%20View/Pool%20Api/get-legal-entities.api.mdx) | +| [Update existing legal entity business partners](../Software%20Development%20View/Pool%20Api/update-business-partners.api.mdx) | +| [Create new legal entity business partners](../Software%20Development%20View/Pool%20Api/create-business-partners.api.mdx)| +| [Confirms that the data of a legal entity business partner is still up to date.](../Software%20Development%20View/Pool%20Api/set-legal-entity-currentness.api.mdx)| +| [Search legal entity partners by BPNLs.](../Software%20Development%20View/Pool%20Api/search-sites-1.api.mdx) | +| [Search Legal Addresses.](../Software%20Development%20View/Pool%20Api/search-legal-addresses.api.mdx)| +| [Get legal entity business partner by identifier.](../Software%20Development%20View/Pool%20Api/get-legal-entity.api.mdx) | +| [Get site partners of a legal entity.](../Software%20Development%20View/Pool%20Api/get-sites.api.mdx) | +| [Get address partners of a legal entity.](../Software%20Development%20View/Pool%20Api/get-addresses.api.mdx) | + +### 3. Address Controller + +The Address Controller is the controller that updates, creates, or retrieves business partner records of type address via BPNA. There are PUT, POST and GET requests possible. Hyperlink in each record gives you more information about api endpoint. + +| Address Controller Apis| +| :----------- | +| [Get page of addresses matching the search criteria](../Software%20Development%20View/Pool%20Api/get-addresses-1.api.mdx) | +| [Update existing address business partners](../Software%20Development%20View/Pool%20Api/update-addresses.api.mdx) | +| [Create new address business partners](../Software%20Development%20View/Pool%20Api/create-addresses.api.mdx) | +| [Search address partners by BPNs and/or parent BPNs](../Software%20Development%20View/Pool%20Api/search-addresses.api.mdx) | +| [Get address partners by bpna](../Software%20Development%20View/Pool%20Api/get-address.api.mdx) | + +### 4. Open Search Controller + +The Open Search Controller is only used by the developers on the backend of the API. They are not relevant for the API end-users. Hyperlink in each record gives you more information about api endpoint. + +| Open Search Controller Apis| +| :----------- | +| [Fetch information about the latest OpenSearch export](../Software%20Development%20View/Pool%20Api/get-business-partners.api.mdx) | +| [Index new business partner records on OpenSearch](../Software%20Development%20View/Pool%20Api/export.api.mdx) | +| [Clear business partner index on OpenSearch](../Software%20Development%20View/Pool%20Api/clear.api.mdx) | + +### 5. Metadata Controller + +The Metadata Controller can retrieve and create legal forms, new issuing bodies, identifier types and identifier statuses. There are POST and GET requests possible. Hyperlink in each record gives you more information about api endpoint. + +| Metadata Controller | +| :----------- | +| [Get page of legal forms](../Software%20Development%20View/Pool%20Api/get-legal-forms.api.mdx) | +| [Create new legal form](../Software%20Development%20View/Pool%20Api/create-legal-form.api.mdx) | +| [Get page of identifier types](../Software%20Development%20View/Pool%20Api/get-identifier-types.api.mdx) | +| [Create new identifier type](../Software%20Development%20View/Pool%20Api/create-identifier-type.api.mdx) | +| [Get all field quality rules filtered by country](../Software%20Development%20View/Pool%20Api/get-field-quality-rules.api.mdx) | + +### 6. Changelog Controller + +The changelog Controller can retrieve business partner changelog entries from time, by BPN and/or LSA type. The hyperlink in below record gives you more information about api endpoint. + +| Changelog Controller Api| +| :----------- | +| [Get business partner changelog entries from time, by BPN and/or LSA type](../Software%20Development%20View/Pool%20Api/get-changelog-entries.api.mdx) | + +### 7. BPN Controller + +The BPN Controller retrieves business partner numbers by identifiers. The response can contain less results than the number of identifier values that were requested, if some of the identifiers did not exist. For a single request, the maximum number of identifier values to search for is limited to ${bpdm.bpn.search-request-limit} entries. The hyperlink in below record gives you more information about api endpoint. + +| BPN Controller Api| +| :----------- | +| [Find business partner numbers by identifiers](../Software%20Development%20View/Pool%20Api/find-bpns-by-identifiers.api.mdx) | + +## BPDM Gate Api reference + +The Business Partner Data Management Gate includes the services that managesto share business partner data with Catena-X.In the following sections, the available methods and different controllers of the API are explained. + +### Available Methods + +| Request Method | Request Description| +| :----------- | :------------: | +| PUT | Update. The endpoint expects to receive the full updated record, including values that didn't change.| +| POST| Search | +| GET | Search for the best match | +| DELETE | Deletes all the records in the controller, resets the timestamp| + +Gate service consist of five major controllers which are listed below. + +### 1. Sharing-state Controller + +The Sharing-state Controller is the controller that updates, or retrieves business partners of any type (referenced via LSA Type or External identifiers). There are PUT and GET requests possible. + +| Sharing-state Controller Api| +| :----------- | +| [Get sharing states](../Software%20Development%20View/Gate%20Api/get-sharing-states.api.mdx) | +| [Insert/update sharing state](../Software%20Development%20View/Gate%20Api/upsert-sharing-state.api.mdx) | + +### 2. Site Controller + +The Site Controller is the controller that creates, updates, or retrieves business partners of type site (referenced via BPNS). There are PUT, POST and GET requests possible. + +| Site Controller Api| +| :----------- | +| [Create or update sites (Output)](../Software%20Development%20View/Gate%20Api/upsert-sites-output.api.mdx) | +| [Get page of sites](../Software%20Development%20View/Gate%20Api/get-sites.api.mdx) | +| [Create or update sites](../Software%20Development%20View/Gate%20Api/upsert-sites.api.mdx) | +| [Get page of sites. Can optionally be filtered by external ids](../Software%20Development%20View/Gate%20Api/get-sites-output.api.mdx) | +| [Get page of sites filtered by a collection of externalIds.](../Software%20Development%20View/Gate%20Api/get-sites-by-external-ids.api.mdx) | +| [Get site by external identifier](../Software%20Development%20View/Gate%20Api/get-site-by-external-id.api.mdx) | + +### 3. legal Entity Controller + +The Legal Entity Controller calls, searches, creates or updates existing business partners of type legal entity (referenced via BPNL). There are PUT, POST and GET requests possible. Some of the requests need a obligatory parameter, like external id. + +| legal Entity Controller | +| :----------- | +| [Create or update legal entities (Output).](../Software%20Development%20View/Gate%20Api/upsert-legal-entities-output.api.mdx) | +| [Get page of legal entities](../Software%20Development%20View/Gate%20Api/get-legal-entities.api.mdx) | +| [Create or update legal entities.](../Software%20Development%20View/Gate%20Api/upsert-legal-entities.api.mdx) | +| [Get page of legal entities. Can optionally be filtered by external ids](../Software%20Development%20View/Gate%20Api/get-legal-entities-output.api.mdx) | +| [Get page of legal-entities filtered by a collection of externalIds](../Software%20Development%20View/Gate%20Api/get-legal-entities-by-external-ids.api.mdx) | +| [Get legal entity by external identifier](../Software%20Development%20View/Gate%20Api/get-legal-entity-by-external-id.api.mdx) | + +### 4. Address Controller + +The Address Controller is the controller that updates, creates, or retrieves business partner records of type address via BPNA. There are PUT, POST and GET requests possible. + +| Address Controller | +| :----------- | +| [Create or update addresses (Output).](../Software%20Development%20View/Gate%20Api/put-addresses-output.api.mdx) | +| [Get page of addresses](../Software%20Development%20View/Gate%20Api/get-addresses.api.mdx) | +| [Create or update addresses](../Software%20Development%20View/Gate%20Api/upsert-addresses.api.mdx) | +| [Get page of addresses. Can optionally be filtered by external ids.](../Software%20Development%20View/Gate%20Api/get-addresses-output.api.mdx) | +| [Get page of addresses filtered by a collection of externalIds.](../Software%20Development%20View/Gate%20Api/get-addresses-by-external-ids.api.mdx) | +| [Get address by external identifier](../Software%20Development%20View/Gate%20Api/get-address-by-external-id.api.mdx) | + +### 5. Changelog controller + +The changelog controller is controller that gets business partner changelog entries by list of external id from timestamp. +Only two POST api's available for search of business partner changelog details for input and output respectively. + +| Changelog Controller | +| :----------- | +| [Get business partner changelog entries for changes to the business partner output data.](../Software%20Development%20View/Gate%20Api/get-output-changelog.api.mdx) | +| [Get business partner changelog entries for changes to the business partner input data.](../Software%20Development%20View/Gate%20Api/get-input-changelog.api.mdx) | + +## BPDM Bridge Dummy Api reference + +The Business Partner Data Management Bridge Dummy includes the services that sync business partner data between Gate and Pool Service. In the following sections, the available methods and different controllers of the API are explained. + +### Available Methods + +| Request Method | Request Description| +| :----------- | :------------: | +| POST| Sync between Gate and Pool | + +Bridge Dummy service consist of only one controllers which is listed below. + +### 1. Bridge Controller + +Bridge Controller is controller that perfom sync between Gate and Pool. There is only one api end point which is as mentioned below. + +| Bridge Controller API | +| :----------- | +| [Start sync between Gate and Pool](../Software%20Development%20View/Bridge%20Dummy%20Api/trigger-sync.api.mdx) | diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/page_use-cases.md b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/page_use-cases.md new file mode 100644 index 00000000000..1a31b172851 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Software Development View/page_use-cases.md @@ -0,0 +1,1755 @@ +--- +id: Use Cases +title: Use Cases +description: '' +sidebar_position: 5 +--- + +Here we have provided detailed examples of how the BPDM services can be used. This includes step-by-step instructions for each use case and code snippets showing how to make the API calls for better performance. + +## Use case 1. Setup test data on local system + +Description: This use case provides step-by-step instructions for setting up the local environment and with instructions on getting started with all services including Gate, Pool and Bridge dummy service on local for the BPDM (Business Partner Data Management) system. By following these instructions, users can easily clone the repository, configure the necessary services using Docker, and run the all three api services on their local system. + +This use case aims to provide users with clear and concise instructions, ensuring a smooth setup process for working with the BPDM api services on their local system. + +### 1.1 Start BPDM Api Services + +1. Clone the repository: + - Go to the following GitHub repository: [https://github.com/eclipse-tractusx/bpdm](https://github.com/eclipse-tractusx/bpdm) + - Clone the repository to your local system using Git. You can use the following command: + + ```bash + git clone https://github.com/eclipse-tractusx/bpdm + ``` + + - Choose an IDE: You can use any IDE of your preference to view the code. One recommended IDE is IntelliJ IDEA as application is based on Kotlin springBoot framework. + +2. Configure local service: + - Open the docker-compose.yml file in the project. + - This file contains the configuration for running a local instance of PostgreSQL and OpenSearch. + - Make sure you have Docker installed on your system. + - If you don't have your own database, you can use Docker to create a local instance of PostgreSQL and OpenSearch. + - Run the following command from the command prompt or from the IDE's terminal to start the Docker containers: + + ```bash + docker-compose up + ``` + +3. Start the Gate API service: + - Open your IDE and navigate to the following directory within the cloned repository: bpdm/bpdm-gate. + - Navigate to Application.kt file from source directory i.e. /bpdm/bpdm-gate/src/main/kotlin/org/eclipse/tractusx/bpdm/gate/Application.kt. + - Run the main class Application.kt to start the Gate API service. + - The service should start and listen on the specified port i.e. by default on 8081 for local setup it will be on . + +4. Start the Pool API service: + - Open your IDE and navigate to the following directory within the cloned repository: bpdm/bpdm-pool. + - Navigate to Application.kt file from source directory i.e. /bpdm/bpdm-pool/src/main/kotlin/org/eclipse/tractusx/bpdm/pool/Application.kt. + - Run the main class Application.kt to start the Pool API service. + - The service should start and listen on the specified port i.e. by default on 8080 for local setup it will be on . + +5. Start the Bridge Dummy API service: + - Open your IDE and navigate to the following directory within the cloned repository: /bpdm/bpdm-bridge-dummy. + - Navigate to Application.kt file from source directory i.e. /bpdm/bpdm-bridge-dummy/src/main/kotlin/com/catenax/bpdm/bridge/dummy/Application.kt. + - Run the main class Application.kt to start the Bridge Dummy API service. + - The service should start and listen on the specified port i.e. by default on 8083 for local setup it will be on . + +### 1.2 Test data setup + +1. Download the Postman collection JSON files: + - You can copy collection for each service from provided hyperlink below and can download local variables from [here](../Software%20Development%20View/Local.postman_environment.json) + 1. [BPDM Bridge-Dummy service](../Software%20Development%20View/BPDM%20Bridge%20Dummy.postman_collection.json) + 2. [BPDM Gate Service](../Software%20Development%20View/BPDM%20Gate.postman_collection.json) + 3. [BPDM Pool Service](../Software%20Development%20View/BPDM%20Pool.postman_collection.json) + - Or for latest version of apis, you can navigate to the following GitHub repository path: [https://github.com/eclipse-tractusx/bpdm/tree/main/docs/postman](https://github.com/eclipse-tractusx/bpdm/tree/main/docs/postman) and locate the JSON files named as "BPDM Gate.postman_collection.json","BPDM Pool.postman_collection.json", "BPDM Bridge Dummy.postman_collection.json" and "local.postman_collection.json" click on it to view its contents. + - Click the "Raw" button to download the files or simply import jsons. + +2. Open Postman: + - If you don't have Postman installed, you can download it from the official website: [https://www.postman.com/downloads/](https://www.postman.com/downloads/) + - Open Postman on your local system. + +3. Import the collection: + - In the Postman application, click on the "Import" button located in the top left corner of the window. + - Select the "File" tab. + - Click on the "Choose Files" button and browse to the location where you downloaded the all files in step one. + - Select the JSON file and click "Open" to import them one by one. + +4. Verify the imported collection: + - After importing, you should see the "BPDM Gate", "BPDM Pool" and "BPDM Bridge Dummy" collection listed in the left sidebar of the Postman application. + - Click on the imported collection to expand it and view the available api requests and folders. + +5. Set up environment variables: + - In Postman, click on the "Manage Environments" button located in the top right corner of the window (it looks like an eye icon). + - Click on the "Add" button to create a new environment and can be done as per the variables mentioned into "local.postman_collection.json". + - Also, user can directly import "local.postman_collection.json" to update their environment variables. + +6. Explore Apis for each service: + - Api's for each service can be seen under postman collection with refernced test data. + - For more information on apis, user can refere section of [Api Reference](./page_software-development-view.md#api-reference) + +7. For Pool api service first check should be metadata availablity: + - Expand the "BPDM Pool Api" collection in the left sidebar. + - Under metadata controller, user need to check for Legal form, Identifier Type. + - Click on the "GET identifier-types" request. + - Click the "Send" button to make the request. + - Verify that the response contain the identifier types and if not present then user can hit POST request and create new identifiers as per the need. + - Similarly, repeat the above steps for Legal form as well. + - If any of the metadata is not available in the response, you can create them using the respective "POST" requests provided in the Postman collection as those are mandatory objects for golden records. + +By following above steps, user can use test data which has been created under postman collection. + +## Use Case 2. Request Legal Entity by identifier number + +Description: The Legal Entity Controller is a module within a larger system that facilitates the retrieval of information about a legal entity using their identifier number. In this use case, we are providing examples by starting services on local machine. + +The examples taken below are generic and depending on use cases, we have mentioned snippet of particular api request and response for better understanding. In this use case, consider you being user you have identifier and you want to get legal entity for same. + +### Example request call + +The request should be made first to check Catenea-X api for checking the identifier first. This request will be handled by metadata controller and will provide all available identifier type in particular enviroment with speficied business partner type and optional fields are country, pages and size. So, required field is lsaType here and can be taken considered between "LEGAL_ENTITY" and "ADDRESS". + +Request: + +```bash +curl --location 'http://localhost:8080/api/catena/identifier-types?page=0&size=100&lsaType=LEGAL_ENTITY' +``` + +Response: + +```bash +{ + "totalElements": 26, + "totalPages": 1, + "page": 0, + "contentSize": 26, + "content": [ + { + "technicalKey": "EU_VAT_ID_DE", + "lsaType": "LEGAL_ENTITY", + "name": "Value added tax identification number", + "details": [ + { + "country": "DE", + "mandatory": true + } + ] + }, + { + "technicalKey": "EU_VAT_ID_FR", + "lsaType": "LEGAL_ENTITY", + "name": "Value added tax identification number", + "details": [ + { + "country": "FR", + "mandatory": false + } + ] + }, + { + "technicalKey": "EU_VAT_ID_AT", + "lsaType": "LEGAL_ENTITY", + "name": "Value added tax identification number", + "details": [ + { + "country": "AT", + "mandatory": false + } + ] + }, + { + "technicalKey": "EU_VAT_ID_BE", + "lsaType": "LEGAL_ENTITY", + "name": "Value added tax identification number", + "details": [ + { + "country": "BE", + "mandatory": false + } + ] + }, + { + "technicalKey": "EU_VAT_ID_CH", + "lsaType": "LEGAL_ENTITY", + "name": "Value added tax identification number", + "details": [ + { + "country": "CH", + "mandatory": false + } + ] + }, + { + "technicalKey": "EU_VAT_ID_CZ", + "lsaType": "LEGAL_ENTITY", + "name": "Value added tax identification number", + "details": [ + { + "country": "CZ", + "mandatory": false + } + ] + }, + { + "technicalKey": "EU_VAT_ID_DK", + "lsaType": "LEGAL_ENTITY", + "name": "Value added tax identification number", + "details": [ + { + "country": "DK", + "mandatory": false + } + ] + }, + { + "technicalKey": "EU_VAT_ID_ES", + "lsaType": "LEGAL_ENTITY", + "name": "Value added tax identification number", + "details": [ + { + "country": "ES", + "mandatory": false + } + ] + }, + { + "technicalKey": "EU_VAT_ID_GB", + "lsaType": "LEGAL_ENTITY", + "name": "Value added tax identification number", + "details": [ + { + "country": "GB", + "mandatory": false + } + ] + }, + { + "technicalKey": "EU_VAT_ID_NO", + "lsaType": "LEGAL_ENTITY", + "name": "Value added tax identification number", + "details": [ + { + "country": "NO", + "mandatory": false + } + ] + }, + { + "technicalKey": "EU_VAT_ID_PL", + "lsaType": "LEGAL_ENTITY", + "name": "Value added tax identification number", + "details": [ + { + "country": "PL", + "mandatory": false + } + ] + }, + { + "technicalKey": "GS1_GLN", + "lsaType": "LEGAL_ENTITY", + "name": "Global Location Number", + "details": [ + { + "country": null, + "mandatory": false + } + ] + }, + { + "technicalKey": "LEI_ID", + "lsaType": "LEGAL_ENTITY", + "name": "Legal Entity Identifier", + "details": [ + { + "country": null, + "mandatory": false + } + ] + }, + { + "technicalKey": "DUNS_ID", + "lsaType": "LEGAL_ENTITY", + "name": "Data Universal Numbering System", + "details": [ + { + "country": null, + "mandatory": false + } + ] + }, + { + "technicalKey": "DE_BNUM", + "lsaType": "LEGAL_ENTITY", + "name": "Handelsregister (HRB)", + "details": [ + { + "country": "DE", + "mandatory": false + } + ] + }, + { + "technicalKey": "FR_SIREN", + "lsaType": "LEGAL_ENTITY", + "name": "Siren/Siret", + "details": [ + { + "country": "FR", + "mandatory": true + } + ] + }, + { + "technicalKey": "BR_ID_AT", + "lsaType": "LEGAL_ENTITY", + "name": "Firmenbuchnummer", + "details": [ + { + "country": "AT", + "mandatory": true + } + ] + }, + { + "technicalKey": "BE_ENT_NO", + "lsaType": "LEGAL_ENTITY", + "name": "Organisation number", + "details": [ + { + "country": "BE", + "mandatory": true + } + ] + }, + { + "technicalKey": "CH_UID", + "lsaType": "LEGAL_ENTITY", + "name": "Company Identification Number CH", + "details": [ + { + "country": "CH", + "mandatory": true + } + ] + }, + { + "technicalKey": "CZ_ICO", + "lsaType": "LEGAL_ENTITY", + "name": "Company Identification Number CZ", + "details": [ + { + "country": "CZ", + "mandatory": true + } + ] + }, + { + "technicalKey": "CVR_DK", + "lsaType": "LEGAL_ENTITY", + "name": "Business Registration Number DK", + "details": [ + { + "country": "DK", + "mandatory": true + } + ] + }, + { + "technicalKey": "CIF_ES", + "lsaType": "LEGAL_ENTITY", + "name": "Certificado de Identificación Fiscal", + "details": [ + { + "country": "ES", + "mandatory": true + } + ] + }, + { + "technicalKey": "ID_CRN", + "lsaType": "LEGAL_ENTITY", + "name": "Company Registration Number", + "details": [ + { + "country": "GB", + "mandatory": true + } + ] + }, + { + "technicalKey": "NO_ORGID", + "lsaType": "LEGAL_ENTITY", + "name": "Organization Number", + "details": [ + { + "country": "NO", + "mandatory": true + } + ] + }, + { + "technicalKey": "PL_REG", + "lsaType": "LEGAL_ENTITY", + "name": "REGON", + "details": [ + { + "country": "PL", + "mandatory": true + } + ] + }, + { + "technicalKey": "CUSTOM_ID_TYPE", + "lsaType": "LEGAL_ENTITY", + "name": "Custom Identifier Type for Testing", + "details": [ + { + "country": "DE", + "mandatory": true + } + ] + } + ] +} +``` + +The response here showing technical key for identifier type with it's name. For better understanding of this use case, we are considering identifier type i.e. CUSTOM_ID_TYPE for future examples. + +Now as per the above response, you can check your desired technical identifier which is nothing but kind of VAT number for particular legal entity. Request to the Catena-X API for legal entities with a filter on legal entity identifier i.e. 123456789 and with idType as CUSTOM_ID_TYPE. The response you received is a JSON object that contains information about the legal entity that match your query. + +Request: + +```bash +curl --location 'http://localhost:8080/api/catena/legal-entities/123456789?idType=CUSTOM_ID_TYPE' +``` + +### 2.1 Direct response + +Scenario: The user enters a valid identifier number woth idType CUSTOM_ID_TYPE and the API returns information about only one legal entity. + +Flow: + +- The user inputs a valid identification number i.e. 123456789 and idType as CUSTOM_ID_TYPE to api request. +- The Legal Entity Controller displays the information about the legal entity as a response to the request. +- Once you have legal enity shown then direct response you can get using idType as BPN value as shown in below request and response. + +Response: + +```bash +{ + "legalName": "Name of Company", + "bpnl": "BPNL000000000001", + "identifiers": [ + { + "value": "123456789", + "type": { + "technicalKey": "CUSTOM_ID_TYPE", + "name": "Custom Identifier Type for Testing" + }, + "issuingBody": "CUSTOM_ISSUE_BODY" + } + ], + "legalShortName": "NoC", + "legalForm": { + "technicalKey": "CUSTOM_LEGAL_FORM", + "name": "Custom Legal Form for Testing", + "abbreviation": null + }, + "states": [ + { + "officialDenotation": "Active", + "validFrom": "2020-12-16T05:54:48.942", + "validTo": "2023-06-05T07:31:01.213", + "type": { + "technicalKey": "ACTIVE", + "name": "Active" + } + } + ], + "classifications": [ + { + "value": "Farming of cattle, dairy farming", + "code": "01.21", + "type": { + "technicalKey": "NACE", + "name": "NACE" + } + } + ], + "relations": [], + "currentness": "2023-06-13T03:28:17.032022Z", + "createdAt": "2023-06-06T07:39:09.049097Z", + "updatedAt": "2023-06-13T03:28:17.034408Z", + "legalAddress": { + "bpna": "BPNA000000000001", + "name": "WESTERN_LATIN_STANDARD", + "states": [ + { + "description": "WESTERN_LATIN_STANDARD", + "validFrom": "2020-12-16T05:54:48.942", + "validTo": "2023-06-05T07:31:01.213", + "type": { + "technicalKey": "ACTIVE", + "name": "Active" + } + } + ], + "identifiers": [ + { + "value": "12345678910", + "type": { + "technicalKey": "CUSTOM_ID_ADD_TYPE", + "name": "Custom Identifier Type of Address for Testing" + } + } + ], + "physicalPostalAddress": { + "geographicCoordinates": { + "longitude": 0.0, + "latitude": 0.0, + "altitude": 0.0 + }, + "country": { + "technicalKey": "DE", + "name": "Germany" + }, + "postalCode": "70546", + "city": "Stuttgart", + "street": { + "name": "Stuttgarter Strasse", + "houseNumber": "1", + "milestone": "Stuttgarter Strasse 1", + "direction": "Stuttgarter Str." + }, + "administrativeAreaLevel1": null, + "administrativeAreaLevel2": "test1", + "administrativeAreaLevel3": "test2", + "district": "Stuttgart", + "companyPostalCode": "GM01", + "industrialZone": "HEADQUARTER", + "building": "Building A", + "floor": "A", + "door": "test" + }, + "alternativePostalAddress": { + "geographicCoordinates": { + "longitude": 0.0, + "latitude": 0.0, + "altitude": 0.0 + }, + "country": { + "technicalKey": "DE", + "name": "Germany" + }, + "postalCode": "1234", + "city": "Stuttgart 1", + "administrativeAreaLevel1": null, + "deliveryServiceNumber": "1234", + "type": "PO_BOX", + "deliveryServiceQualifier": "" + }, + "bpnLegalEntity": "BPNL000000000001", + "isLegalAddress": true, + "bpnSite": null, + "isMainAddress": false, + "createdAt": "2023-06-06T07:39:09.032826Z", + "updatedAt": "2023-06-06T07:39:09.057668Z" + } +} +``` + +- If user putted wrong identifier number like below which is not available in DB then response will be as below. + +Bad request: + +```bash +curl --location 'http://localhost:8080/api/catena/legal-entities/name?idType=CUSTOM_ID_TYPE' +``` + +Response: + +```bash +{ + "timestamp": "2023-05-08T12:54:07.606+00:00", + "status": 404, + "error": "Not Found", + "path": "/api/catena/legal-entities/name" +} +``` + +### 2.2 Match Response + +Scenario: To get matched response, you can use multiple key and value pair. Multiple attributes like legalName, legalForm, classification etc can be used with desired known values for them. + +#### 2.2.1 Trade Scoring with Score -> take highest ranking + +Flow: + +- The user inputs a valid name key as Name of Company to the legal entity api request. +- The Legal Entity Controller provides response with multple legal entities. +- The Legal Entity Controller uses trade scoring to determine the highest ranking legal entity. +- The legal entity that matches values getting more score ranking. +- The Legal Entity Controller displays the information about the highest ranking legal entity to the user as response. +- Those legal entities having more scroe will take precedence like BPNL000000000001 got higher precedence with score 11.198933. + +Request: + +```bash +curl --location 'http://localhost:8080/api/catena/legal-entities?legalName=Name%20of%20Company&page=0&size=10' +``` + +Response: + +```bash +{ + "totalElements": 1, + "totalPages": 1, + "page": 0, + "contentSize": 1, + "content": [ + { + "score": 7.0275493, + "legalName": "Name of Company", + "bpnl": "BPNL000000000001", + "identifiers": [ + { + "value": "123456789", + "type": { + "technicalKey": "CUSTOM_ID_TYPE", + "name": "Custom Identifier Type for Testing" + }, + "issuingBody": "CUSTOM_ISSUE_BODY" + } + ], + "legalShortName": "NoC", + "legalForm": { + "technicalKey": "CUSTOM_LEGAL_FORM", + "name": "Custom Legal Form for Testing", + "abbreviation": null + }, + "states": [ + { + "officialDenotation": "Active", + "validFrom": "2020-12-16T05:54:48.942", + "validTo": "2023-06-05T07:31:01.213", + "type": { + "technicalKey": "ACTIVE", + "name": "Active" + } + } + ], + "classifications": [ + { + "value": "Farming of cattle, dairy farming", + "code": "01.21", + "type": { + "technicalKey": "NACE", + "name": "NACE" + } + } + ], + "relations": [], + "currentness": "2023-06-13T03:28:17.032022Z", + "createdAt": "2023-06-06T07:39:09.049097Z", + "updatedAt": "2023-06-13T03:28:17.034408Z", + "legalAddress": { + "bpna": "BPNA000000000001", + "name": "WESTERN_LATIN_STANDARD", + "states": [ + { + "description": "WESTERN_LATIN_STANDARD", + "validFrom": "2020-12-16T05:54:48.942", + "validTo": "2023-06-05T07:31:01.213", + "type": { + "technicalKey": "ACTIVE", + "name": "Active" + } + } + ], + "identifiers": [ + { + "value": "12345678910", + "type": { + "technicalKey": "CUSTOM_ID_ADD_TYPE", + "name": "Custom Identifier Type of Address for Testing" + } + } + ], + "physicalPostalAddress": { + "geographicCoordinates": { + "longitude": 0.0, + "latitude": 0.0, + "altitude": 0.0 + }, + "country": { + "technicalKey": "DE", + "name": "Germany" + }, + "postalCode": "70546", + "city": "Stuttgart", + "street": { + "name": "Stuttgarter Strasse", + "houseNumber": "1", + "milestone": "Stuttgarter Strasse 1", + "direction": "Stuttgarter Str." + }, + "administrativeAreaLevel1": null, + "administrativeAreaLevel2": "test1", + "administrativeAreaLevel3": "test2", + "district": "Stuttgart", + "companyPostalCode": "GM01", + "industrialZone": "HEADQUARTER", + "building": "Building A", + "floor": "A", + "door": "test" + }, + "alternativePostalAddress": { + "geographicCoordinates": { + "longitude": 0.0, + "latitude": 0.0, + "altitude": 0.0 + }, + "country": { + "technicalKey": "DE", + "name": "Germany" + }, + "postalCode": "1234", + "city": "Stuttgart 1", + "administrativeAreaLevel1": null, + "deliveryServiceNumber": "1234", + "type": "PO_BOX", + "deliveryServiceQualifier": "" + }, + "bpnLegalEntity": "BPNL000000000001", + "isLegalAddress": true, + "bpnSite": null, + "isMainAddress": false, + "createdAt": "2023-06-06T07:39:09.032826Z", + "updatedAt": "2023-06-06T07:39:09.057668Z" + } + } + ] +} +``` + +#### 2.2.2 All scores are Equal or 0.0 -> no automatic match possible + +Flow: + +- The user inputs a valid key and vale to the legal entity api request. +- Consider use has enter key - legalForm and value - Custom Legal Form for Testing under api request shown below while quering. +- The Legal Entity Controlle API returns information about multiple legal entities. +- The Legal Entity Controller determines that all both two legal entities matching same filter. +- The Legal Entity Controller displays the information about both legal entities in response as shown in below. +- Here both legal entities i.e. BPNL000000000001 and BPNL0000000001YN are having same score which is 11.198933. +- Consider if user haven't applied any filter for attribute for this GET reuest then all legal enities will return as response and their score will be 0.0 + +Request: + +```bash +curl --location 'http://localhost:8080/api/catena/legal-entities?legalForm=company&page=0&size=10' +``` + +Response: + +```bash +{ + "totalElements": 2, + "totalPages": 1, + "page": 0, + "contentSize": 2, + "content": [ + { + "score": 0.0, + "legalName": "", + "bpnl": "BPNL0000000001YN", + "identifiers": [], + "legalShortName": "NoC", + "legalForm": { + "technicalKey": "CUSTOM_LEGAL_FORM", + "name": "Custom Legal Form for Testing", + "abbreviation": null + }, + "states": [ + { + "officialDenotation": "Active", + "validFrom": "2020-12-16T05:54:48.942", + "validTo": "2023-06-05T07:31:01.213", + "type": { + "technicalKey": "ACTIVE", + "name": "Active" + } + } + ], + "classifications": [ + { + "value": "Farming of cattle, dairy farming", + "code": "01.21", + "type": { + "technicalKey": "NACE", + "name": "NACE" + } + } + ], + "relations": [], + "currentness": "2023-06-12T05:34:47.676190Z", + "createdAt": "2023-06-12T05:34:47.705949Z", + "updatedAt": "2023-06-12T05:34:47.705957Z", + "legalAddress": { + "bpna": "BPNA0000000004WK", + "name": "WESTERN_LATIN_STANDARD", + "states": [ + { + "description": "WESTERN_LATIN_STANDARD", + "validFrom": "2020-12-16T05:54:48.942", + "validTo": "2023-06-05T07:31:01.213", + "type": { + "technicalKey": "ACTIVE", + "name": "Active" + } + } + ], + "identifiers": [], + "physicalPostalAddress": { + "geographicCoordinates": { + "longitude": 0.0, + "latitude": 0.0, + "altitude": 0.0 + }, + "country": { + "technicalKey": "DE", + "name": "Germany" + }, + "postalCode": "70546", + "city": "Stuttgart", + "street": { + "name": "Stuttgarter Strasse", + "houseNumber": "1", + "milestone": "Stuttgarter Strasse 1", + "direction": "Stuttgarter Str." + }, + "administrativeAreaLevel1": null, + "administrativeAreaLevel2": "test1", + "administrativeAreaLevel3": "test2", + "district": "Stuttgart", + "companyPostalCode": "GM01", + "industrialZone": "HEADQUARTER", + "building": "Building A", + "floor": "A", + "door": "test" + }, + "alternativePostalAddress": { + "geographicCoordinates": { + "longitude": 0.0, + "latitude": 0.0, + "altitude": 0.0 + }, + "country": { + "technicalKey": "DE", + "name": "Germany" + }, + "postalCode": "1234", + "city": "Stuttgart 1", + "administrativeAreaLevel1": null, + "deliveryServiceNumber": "1234", + "type": "PO_BOX", + "deliveryServiceQualifier": "" + }, + "bpnLegalEntity": "BPNL0000000001YN", + "isLegalAddress": true, + "bpnSite": null, + "isMainAddress": false, + "createdAt": "2023-06-12T05:34:47.698490Z", + "updatedAt": "2023-06-12T05:34:47.714935Z" + } + }, + { + "score": 0.0, + "legalName": "Name of Company1", + "bpnl": "BPNL0000000002XY", + "identifiers": [ + { + "value": "12345678910", + "type": { + "technicalKey": "CUSTOM_ID_TYPE", + "name": "Custom Identifier Type for Testing" + }, + "issuingBody": "CUSTOM_ISSUE_BODY" + } + ], + "legalShortName": "NoC", + "legalForm": { + "technicalKey": "CUSTOM_LEGAL_FORM_test1", + "name": "Custom Legal Form for Testing 1", + "abbreviation": null + }, + "states": [ + { + "officialDenotation": "Active", + "validFrom": "2020-12-16T05:54:48.942", + "validTo": "2023-06-05T07:31:01.213", + "type": { + "technicalKey": "ACTIVE", + "name": "Active" + } + } + ], + "classifications": [ + { + "value": "Farming of cattle, dairy farming", + "code": "01.21", + "type": { + "technicalKey": "NACE", + "name": "NACE" + } + } + ], + "relations": [], + "currentness": "2023-06-16T09:08:22.222993Z", + "createdAt": "2023-06-16T09:08:22.244296Z", + "updatedAt": "2023-06-16T09:08:22.244300Z", + "legalAddress": { + "bpna": "BPNA0000000007UH", + "name": "WESTERN_LATIN_STANDARD", + "states": [ + { + "description": "WESTERN_LATIN_STANDARD", + "validFrom": "2020-12-16T05:54:48.942", + "validTo": "2023-06-05T07:31:01.213", + "type": { + "technicalKey": "ACTIVE", + "name": "Active" + } + } + ], + "identifiers": [ + { + "value": "12345678910", + "type": { + "technicalKey": "CUSTOM_ID_ADD_TYPE", + "name": "Custom Identifier Type of Address for Testing" + } + } + ], + "physicalPostalAddress": { + "geographicCoordinates": { + "longitude": 0.0, + "latitude": 0.0, + "altitude": 0.0 + }, + "country": { + "technicalKey": "DE", + "name": "Germany" + }, + "postalCode": "70546", + "city": "Stuttgart", + "street": { + "name": "Stuttgarter Strasse", + "houseNumber": "1", + "milestone": "Stuttgarter Strasse 1", + "direction": "Stuttgarter Str." + }, + "administrativeAreaLevel1": null, + "administrativeAreaLevel2": "test1", + "administrativeAreaLevel3": "test2", + "district": "Stuttgart", + "companyPostalCode": "GM01", + "industrialZone": "HEADQUARTER", + "building": "Building A", + "floor": "A", + "door": "test" + }, + "alternativePostalAddress": { + "geographicCoordinates": { + "longitude": 0.0, + "latitude": 0.0, + "altitude": 0.0 + }, + "country": { + "technicalKey": "DE", + "name": "Germany" + }, + "postalCode": "1234", + "city": "Stuttgart 1", + "administrativeAreaLevel1": null, + "deliveryServiceNumber": "1234", + "type": "PO_BOX", + "deliveryServiceQualifier": "" + }, + "bpnLegalEntity": "BPNL0000000002XY", + "isLegalAddress": true, + "bpnSite": null, + "isMainAddress": false, + "createdAt": "2023-06-16T09:08:22.239413Z", + "updatedAt": "2023-06-16T09:08:22.248790Z" + } + } + ] +} +``` + +The response contains a few key fields that you can use to understand the information returned. + +- `totalElements` tells you the total number of legal entities that match your query. In this case, there are 10,978. +- `totalPages` tells you the total number of pages of legal entities. Since contentSize is set to 10, there are 1,098 pages in total.page tells you which page you are currently on. In this case, you are on the first page (page 0). +- `contentSize` tells you how many legal entities are included in the current page of results. In this case, there are 10 legal entities returned in the response. +- `content` is an array of legal entities that match your query. Each legal entity contains information about its identifiers, names, legal form, types, bank accounts, roles, and relations. + +### 2.3 Search particular legal entity + +Scenario: The user enters a valid BPN under request body and API returns information about legal entities in response. + +Flow: + +- The user inputs string in request body for api POST request call. +- If user entered value is correct i.e. if provided BPN is correct. Example in this request body provided "BPNL000000000001". +- Then Legal Entity Controller provide search result with one legal entity details. +- The Legal Entity Controller reads the BPNL (Business Partner Number List) from the API request and displays response as below. + +Request: + +```bash +curl --location 'http://localhost:8080/api/catena/legal-entities/search' \ +--header 'Content-Type: application/json' \ +--data '[ + "BPNL000000000001" +]' +``` + +Response: + +```bash +[ + { + "legalName": "Name of Company", + "bpnl": "BPNL000000000001", + "identifiers": [ + { + "value": "123456789", + "type": { + "technicalKey": "CUSTOM_ID_TYPE", + "name": "Custom Identifier Type for Testing" + }, + "issuingBody": "CUSTOM_ISSUE_BODY" + } + ], + "legalShortName": "NoC", + "legalForm": { + "technicalKey": "CUSTOM_LEGAL_FORM", + "name": "Custom Legal Form for Testing", + "abbreviation": null + }, + "states": [ + { + "officialDenotation": "Active", + "validFrom": "2020-12-16T05:54:48.942", + "validTo": "2023-06-05T07:31:01.213", + "type": { + "technicalKey": "ACTIVE", + "name": "Active" + } + } + ], + "classifications": [ + { + "value": "Farming of cattle, dairy farming", + "code": "01.21", + "type": { + "technicalKey": "NACE", + "name": "NACE" + } + } + ], + "relations": [], + "currentness": "2023-06-13T03:28:17.032022Z", + "createdAt": "2023-06-06T07:39:09.049097Z", + "updatedAt": "2023-06-13T03:28:17.034408Z", + "legalAddress": { + "bpna": "BPNA000000000001", + "name": "WESTERN_LATIN_STANDARD", + "states": [ + { + "description": "WESTERN_LATIN_STANDARD", + "validFrom": "2020-12-16T05:54:48.942", + "validTo": "2023-06-05T07:31:01.213", + "type": { + "technicalKey": "ACTIVE", + "name": "Active" + } + } + ], + "identifiers": [ + { + "value": "12345678910", + "type": { + "technicalKey": "CUSTOM_ID_ADD_TYPE", + "name": "Custom Identifier Type of Address for Testing" + } + } + ], + "physicalPostalAddress": { + "geographicCoordinates": { + "longitude": 0.0, + "latitude": 0.0, + "altitude": 0.0 + }, + "country": { + "technicalKey": "DE", + "name": "Germany" + }, + "postalCode": "70546", + "city": "Stuttgart", + "street": { + "name": "Stuttgarter Strasse", + "houseNumber": "1", + "milestone": "Stuttgarter Strasse 1", + "direction": "Stuttgarter Str." + }, + "administrativeAreaLevel1": null, + "administrativeAreaLevel2": "test1", + "administrativeAreaLevel3": "test2", + "district": "Stuttgart", + "companyPostalCode": "GM01", + "industrialZone": "HEADQUARTER", + "building": "Building A", + "floor": "A", + "door": "test" + }, + "alternativePostalAddress": { + "geographicCoordinates": { + "longitude": 0.0, + "latitude": 0.0, + "altitude": 0.0 + }, + "country": { + "technicalKey": "DE", + "name": "Germany" + }, + "postalCode": "1234", + "city": "Stuttgart 1", + "administrativeAreaLevel1": null, + "deliveryServiceNumber": "1234", + "type": "PO_BOX", + "deliveryServiceQualifier": "" + }, + "bpnLegalEntity": "BPNL000000000001", + "isLegalAddress": true, + "bpnSite": null, + "isMainAddress": false, + "createdAt": "2023-06-06T07:39:09.032826Z", + "updatedAt": "2023-06-06T07:39:09.057668Z" + } + } +] +``` + +### 2.4 Fetch sites for legal entity + +Scenario: The user enters a valid BPNL under pathparam and the API returns information about site legal entities. + +Flow: + +- The user inputs a valid BPNL in pathparam as shown in below GET api request. +- The Legal Entity Controller information about the legal entity sites as shown in response. +- The BPN in response are nothing but BPNS along with name of the site. +- The Legal Entity Controller provide details array of BPNS and name if more than one site is present. + +Request: + +```bash +curl --location 'http://localhost:8080/api/catena/legal-entities/BPNL000000000001/sites?page=0&size=10' +``` + +Response: + +```bash +{ + "totalElements": 4, + "totalPages": 1, + "page": 0, + "contentSize": 4, + "content": [ + { + "bpns": "BPNS000000000001", + "name": "Factory UT", + "states": [ + { + "description": "Baden-Wuerttemberg", + "validFrom": "2023-06-06T08:18:05.777", + "validTo": "2024-06-06T08:18:05.777", + "type": { + "technicalKey": "ACTIVE", + "name": "Active" + } + } + ], + "bpnLegalEntity": "BPNL000000000001", + "createdAt": "2023-06-06T09:50:52.720153Z", + "updatedAt": "2023-06-06T09:50:52.720155Z" + }, + { + "bpns": "BPNS0000000001YN", + "name": "Factory UT", + "states": [ + { + "description": "Baden-Wuerttemberg", + "validFrom": "2023-06-06T08:18:05.777", + "validTo": "2024-06-06T08:18:05.777", + "type": { + "technicalKey": "ACTIVE", + "name": "Active" + } + } + ], + "bpnLegalEntity": "BPNL000000000001", + "createdAt": "2023-06-06T10:00:19.733854Z", + "updatedAt": "2023-06-06T10:00:19.733858Z" + }, + { + "bpns": "BPNS0000000002XY", + "name": "Factory UT", + "states": [ + { + "description": "Baden-Wuerttemberg", + "validFrom": "2023-06-06T08:18:05.777", + "validTo": "2024-06-06T08:18:05.777", + "type": { + "technicalKey": "ACTIVE", + "name": "Active" + } + } + ], + "bpnLegalEntity": "BPNL000000000001", + "createdAt": "2023-06-13T03:24:29.981397Z", + "updatedAt": "2023-06-13T03:24:29.981400Z" + }, + { + "bpns": "BPNS0000000003X9", + "name": "Factory UT", + "states": [ + { + "description": "Baden-Wuerttemberg", + "validFrom": "2023-06-06T08:18:05.777", + "validTo": "2024-06-06T08:18:05.777", + "type": { + "technicalKey": "ACTIVE", + "name": "Active" + } + } + ], + "bpnLegalEntity": "BPNL000000000001", + "createdAt": "2023-06-13T06:01:09.734035Z", + "updatedAt": "2023-06-13T06:01:09.734039Z" + } + ] +} +``` + +### 2.5 Fetch addresses for legal entity + +Scenario: The user enters a valid BPNL under pathparam and the API returns information about address partners legal entities. + +Flow: + +- The user inputs a valid BPNL in pathparam as shown in below GET api request. +- The Legal Entity Controller information about the legal entity address as shown in response. +- The BPN in response are nothing but BPNA along with number of other fields like version, careOf, contexts, country etc. +- The Legal Entity Controller provide details array of BPNA. + +Request: + +```bash +curl --location 'http://localhost:8080/api/catena/legal-entities/BPNL000000000001/addresses?page=0&size=10' +``` + +Response: + +```bash +{ + "totalElements": 2, + "totalPages": 1, + "page": 0, + "contentSize": 2, + "content": [ + { + "bpna": "BPNA000000000001", + "name": "WESTERN_LATIN_STANDARD", + "states": [ + { + "description": "WESTERN_LATIN_STANDARD", + "validFrom": "2020-12-16T05:54:48.942", + "validTo": "2023-06-05T07:31:01.213", + "type": { + "technicalKey": "ACTIVE", + "name": "Active" + } + } + ], + "identifiers": [ + { + "value": "12345678910", + "type": { + "technicalKey": "CUSTOM_ID_ADD_TYPE", + "name": "Custom Identifier Type of Address for Testing" + } + } + ], + "physicalPostalAddress": { + "geographicCoordinates": { + "longitude": 0.0, + "latitude": 0.0, + "altitude": 0.0 + }, + "country": { + "technicalKey": "DE", + "name": "Germany" + }, + "postalCode": "70546", + "city": "Stuttgart", + "street": { + "name": "Stuttgarter Strasse", + "houseNumber": "1", + "milestone": "Stuttgarter Strasse 1", + "direction": "Stuttgarter Str." + }, + "administrativeAreaLevel1": null, + "administrativeAreaLevel2": "test1", + "administrativeAreaLevel3": "test2", + "district": "Stuttgart", + "companyPostalCode": "GM01", + "industrialZone": "HEADQUARTER", + "building": "Building A", + "floor": "A", + "door": "test" + }, + "alternativePostalAddress": { + "geographicCoordinates": { + "longitude": 0.0, + "latitude": 0.0, + "altitude": 0.0 + }, + "country": { + "technicalKey": "DE", + "name": "Germany" + }, + "postalCode": "1234", + "city": "Stuttgart 1", + "administrativeAreaLevel1": null, + "deliveryServiceNumber": "1234", + "type": "PO_BOX", + "deliveryServiceQualifier": "" + }, + "bpnLegalEntity": "BPNL000000000001", + "isLegalAddress": true, + "bpnSite": null, + "isMainAddress": false, + "createdAt": "2023-06-06T07:39:09.032826Z", + "updatedAt": "2023-06-06T07:39:09.057668Z" + }, + { + "bpna": "BPNA0000000003X9", + "name": "WESTERN_LATIN_STANDARD", + "states": [ + { + "description": "WESTERN_LATIN_STANDARD", + "validFrom": "2023-06-06T10:02:00.355", + "validTo": "2024-06-06T10:02:00.355", + "type": { + "technicalKey": "ACTIVE", + "name": "Active" + } + } + ], + "identifiers": [ + { + "value": "12345678910", + "type": { + "technicalKey": "CUSTOM_ID_ADD_TYPE", + "name": "Custom Identifier Type of Address for Testing" + } + } + ], + "physicalPostalAddress": { + "geographicCoordinates": { + "longitude": 0.0, + "latitude": 0.0, + "altitude": 0.0 + }, + "country": { + "technicalKey": "DE", + "name": "Germany" + }, + "postalCode": "70546", + "city": "Stuttgart", + "street": { + "name": "Stuttgarter Strasse", + "houseNumber": "1", + "milestone": "Stuttgarter Strasse 1", + "direction": "Stuttgarter Str." + }, + "administrativeAreaLevel1": null, + "administrativeAreaLevel2": null, + "administrativeAreaLevel3": null, + "district": "Stuttgart", + "companyPostalCode": "GM01", + "industrialZone": "HEADQUARTER", + "building": "Building A", + "floor": "A", + "door": null + }, + "alternativePostalAddress": { + "geographicCoordinates": { + "longitude": 0.0, + "latitude": 0.0, + "altitude": 0.0 + }, + "country": { + "technicalKey": "DE", + "name": "Germany" + }, + "postalCode": "1234", + "city": "Stuttgart", + "administrativeAreaLevel1": null, + "deliveryServiceNumber": "test", + "type": "PO_BOX", + "deliveryServiceQualifier": "" + }, + "bpnLegalEntity": "BPNL000000000001", + "isLegalAddress": false, + "bpnSite": null, + "isMainAddress": false, + "createdAt": "2023-06-06T10:20:48.376234Z", + "updatedAt": "2023-06-06T10:20:48.376264Z" + } + ] +} +``` + +## Use Case 3. Update data from Legal Entity and check changelog + +Description: This use case involves a user updating record for a legal entity business partner associated with a Business Partner Number (BPNL). Changelogs can be identified using changelog controller, it have one POST api request explained in below use case to show up the changelog details for provided BPN. + +The user can use an API call for the changelog controller, which retrieves the changelog for reuested BPNL. The business-partner-controller checks if there are any updates since the last update and fetches array of the updated data for the BPNL via the business partner controller if there are updates in provided date and time frame. The Legal Entity Controller can be use to update the legal entity. Similarly site controller and address controller can be used to update sites and address type business partners respectively. + +### 3.1 Get Changelog for BPNL via changelog-controller + +Scenario: The user enters a valid BPNL under request body and changelog controller api returns information about changelogs for legal entities or on specified lsaType and also filteration should be their to fetch changelog only after particular dates. + +Flow: + +- The user initiates a request to search for changelogs for a specific BPNL by providing BPN in api request body. +- Here in example request, user has putted two query params named as bpn with value BPNL000000000001. +- The changelog controller returns the changelog for the BPNL entered business partner type array value. +- Also user can be filter data based on date named as fromTime paramter, The changelog controller checks if there are any updates since the last update. +- If there are updates, the changelog controller fetches the updated data for the BPNL. + +Request: + +```bash +curl --location 'http://localhost:8080/api/catena/business-partners/changelog/search?page=0&size=10' \ +--header 'Content-Type: application/json' \ +--data '{ + "fromTime": "2023-03-21T09:00:25.298594Z", + "bpns": [ + "BPNL000000000001" + ], + "lsaTypes": [ + "LEGAL_ENTITY" + ] +}' +``` + +Response: + +```bash +{ + "totalElements": 3, + "totalPages": 1, + "page": 0, + "contentSize": 3, + "content": [ + { + "bpn": "BPNL000000000001", + "changelogType": "CREATE", + "timestamp": "2023-06-06T07:39:09.028951Z", + "lsaType": "LEGAL_ENTITY" + }, + { + "bpn": "BPNL000000000001", + "changelogType": "UPDATE", + "timestamp": "2023-06-06T07:41:00.498695Z", + "lsaType": "LEGAL_ENTITY" + }, + { + "bpn": "BPNL000000000001", + "changelogType": "UPDATE", + "timestamp": "2023-06-13T03:27:39.878101Z", + "lsaType": "LEGAL_ENTITY" + } + ] +} +``` + +### 3.2 Changelog for update on business partner + +Scenario: Apply the changes or update on business partner of type legal entity, site and address through api request. Check changelog for each business partner example using above api request. + +#### 3.2.1 Update Legal Entity + +Flow: + +- The user updates legal entity by hiting PUT api call as shown in request below. +- The legal entity controller updates business partner of type legal entity as per the provided request body. +- The Respone will be displayed to user with updated details for a message to the user that the legal entity data has been updated. + +Request: + +```bash +curl --location --request PUT 'http://localhost:8080/api/catena/legal-entities' \ +--header 'Content-Type: application/json' \ +--data '[ + { + "bpnl": "BPNL000000000001", + "legalName": "Name of Company", + "identifiers": [ + { + "value": "123456789", + "type": "CUSTOM_ID_TYPE", + "issuingBody": "CUSTOM_ISSUE_BODY" + } + ], + "legalShortName": "NoC", + "legalForm": "CUSTOM_LEGAL_FORM", + "states": [ + { + "officialDenotation": "Active", + "validFrom": "2020-12-16T05:54:48.942Z", + "validTo": "2023-06-05T07:31:01.213Z", + "type": "ACTIVE" + } + ], + "classifications": [ + { + "value": "Farming of cattle, dairy farming", + "code": "01.21", + "type": "NACE" + } + ], + "legalAddress": { + "name": "WESTERN_LATIN_STANDARD", + "states": [ + { + "description": "WESTERN_LATIN_STANDARD", + "validFrom": "2020-12-16T05:54:48.942Z", + "validTo": "2023-06-05T07:31:01.213Z", + "type": "ACTIVE" + } + ], + "identifiers": [ + { + "value": "12345678910", + "type": "CUSTOM_ID_ADD_TYPE" + } + ], + "physicalPostalAddress": { + "geographicCoordinates": { + "longitude": 0, + "latitude": 0, + "altitude": 0 + }, + "country": "DE", + "postalCode": "70546", + "city": "Stuttgart", + "street": { + "name": "Stuttgarter Strasse", + "houseNumber": "1", + "milestone": "Stuttgarter Strasse 1", + "direction": "Stuttgarter Str." + }, + "administrativeAreaLevel1": "Baden-Wuerttemberg", + "administrativeAreaLevel2": "test1", + "administrativeAreaLevel3": "test2", + "district": "Stuttgart", + "companyPostalCode": "GM01", + "industrialZone": "HEADQUARTER", + "building": "Building A", + "floor": "A", + "door": "test" + }, + "alternativePostalAddress": { + "geographicCoordinates": { + "longitude": 0, + "latitude": 0, + "altitude": 0 + }, + "country": "DE", + "postalCode": "1234", + "city": "Stuttgart 1", + "administrativeAreaLevel1": "Baden-Wuerttemberg 1", + "deliveryServiceNumber": "1234", + "deliveryServiceType": "PO_BOX", + "deliveryServiceQualifier": "test" + } + } + } +]' +``` + +#### 3.2.2 Update Site + +Flow: + +- The user updates site by hiting PUT api call as shown in request below. +- The site controller updates business partner of type site as per the provided request body. +- The Respone will be displayed to user with updated details for a message to the user that the site data has been updated. + +Request: + +```bash +curl --location --request PUT 'http://localhost:8080/api/catena/sites' \ +--header 'Content-Type: application/json' \ +--data '[ + { + "bpns": "BPNS000000000001", + "name": "Factory UT", + "states": [ + { + "description": "Baden-Wuerttemberg", + "validFrom": "2023-06-06T08:18:05.777Z", + "validTo": "2024-06-06T08:18:05.777Z", + "type": "ACTIVE" + } + ], + "mainAddress": { + "name": "WESTERN_LATIN_STANDARD", + "states": [ + { + "description": "Baden-Wuerttemberg", + "validFrom": "2023-06-06T08:18:05.777Z", + "validTo": "2024-06-06T08:18:05.777Z", + "type": "ACTIVE" + } + ], + "identifiers": [ + { + "value": "123456789", + "type": "CUSTOM_SITE_ID" + } + ], + "physicalPostalAddress": { + "geographicCoordinates": { + "longitude": 0, + "latitude": 0, + "altitude": 0 + }, + "country": "DE", + "postalCode": "70327", + "city": "Stuttgart", + "street": { + "name": "Untertuerckheim Strasse 1", + "houseNumber": "1234", + "milestone": "Untertuerckheim Strasse 1", + "direction": "Untertuerckheim Strasse 1" + }, + "administrativeAreaLevel1": "Baden-Wuerttember", + "district": "Stuttgart", + "companyPostalCode": "71034", + "industrialZone": "Sindelfinden", + "building": "Building A", + "floor": "A", + "door": "1" + }, + "alternativePostalAddress": { + "geographicCoordinates": { + "longitude": 0, + "latitude": 0, + "altitude": 0 + }, + "country": "DE", + "postalCode": "1234", + "city": "Stuttgart", + "administrativeAreaLevel1": "Stuttgart", + "deliveryServiceNumber": "Untertuerckheim Strasse 1", + "deliveryServiceType": "PO_BOX", + "deliveryServiceQualifier": "test qualifier" + } + } + } +]' +``` + +#### 3.2.3 Update Addresses + +Flow: + +- The user updates address by hiting PUT api call as shown in request below. +- The address controller updates business partner of type address as per the provided request body. +- The Respone will be displayed to user with updated details for a message to the user that the address data has been updated. + +Request: + +```bash +curl --location --request PUT 'http://localhost:8080/api/catena/addresses' \ +--header 'Content-Type: application/json' \ +--data '[ + { + "bpna": "BPNA000000000001", + "name": "WESTERN_LATIN_STANDARD", + "states": [ + { + "description": "WESTERN_LATIN_STANDARD", + "validFrom": "2020-12-16T05:54:48.942", + "validTo": "2023-06-05T07:31:01.213", + "type": "ACTIVE" + } + ], + "identifiers": [ + { + "value": "12345678910", + "type": "CUSTOM_ID_ADD_TYPE" + } + ], + "physicalPostalAddress": { + "geographicCoordinates": { + "longitude": 0, + "latitude": 0, + "altitude": 0 + }, + "country": "DE", + "postalCode": "70546", + "city": "Stuttgart", + "street": { + "name": "Stuttgarter Strasse", + "houseNumber": "1", + "milestone": "Stuttgarter Strasse 1", + "direction": "Stuttgarter Str." + }, + "administrativeAreaLevel1": null, + "administrativeAreaLevel2": "test1", + "administrativeAreaLevel3": "test2", + "district": "Stuttgart", + "companyPostalCode": "GM01", + "industrialZone": "HEADQUARTER", + "building": "Building A", + "floor": "A", + "door": "test" + }, + "alternativePostalAddress": { + "geographicCoordinates": { + "longitude": 0, + "latitude": 0, + "altitude": 0 + }, + "country": "DE", + "postalCode": "Stuttgart 1", + "city": "string", + "administrativeAreaLevel1": "test1", + "deliveryServiceNumber": "test2", + "deliveryServiceType": "PO_BOX", + "deliveryServiceQualifier": "test3" + } + } +]' +``` + +Below api reuqest from changelog controller checks changelog on each business partner type and in response controller provide either business partner newly created or updated along with timestamp with filter on provided timestamp. Here, we have added filter for business partner type which we can update in respective update flow same what we did in section 3.2 above. diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Success Stories/page_country-risk.md b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Success Stories/page_country-risk.md new file mode 100644 index 00000000000..85bb3c27f0e --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/Success Stories/page_country-risk.md @@ -0,0 +1,29 @@ +--- +id: Country Risk Score  +title: Country Risk Score  +description: 'Country Risk Score ' +sidebar_position: 1 +--- + +BPDM (Business Partner Data Management) aims to deliver first class master data and provide additional information regarding the company's business partners. This enables to make the best decision at all times based on actual data. This is especially helpful in a tender situation, for compliance processes or even for regulatory requirements. + +Therefore, as part of the "Know Your Business Partner"-approach, the Country Risk Score Application has been developed. + +![Country Risk Service](@site/static/img/country-risk-dashboard-min.png) + +The service offers a score per country based on several, customizable ratings. This score indicates how the respective situation in the selected country is. Currently integrated sources are e.g. the Corruption Perception Index (CPI) giving the user an indication how corrupt the respective country is, as well as the Basel AML Index which provides the user with the information about money laundring and terrorism financing in the country. As an outlook there are a lot more publicly available as well as chargeable ratings to be implemented. As well as the granularity which can be increased for the future to take into account that large countries could have better or worse regions (e.g. China, USA, Russia). + +Prerequisite to use this product: The consumer has to be sharing member as a company is only allowed to view the business partners they have uploaded initially. + +The open source solution is developed according to the Catena-X consortia and eclipse guidelines and was security checked. The repositories can be found here: + +- [https://github.com/eclipse-tractusx/vas-country-risk-frontend](https://github.com/eclipse-tractusx/vas-country-risk-frontend) +- [https://github.com/eclipse-tractusx/vas-country-risk-backend](https://github.com/eclipse-tractusx/vas-country-risk-backend) + +There is one main interface used from the Golden Record Product which is the GATE API in order to retrieve company specific business partners to be displayed in the dashboard. [https://github.com/eclipse-tractusx/bpdm/tree/main/docs/api](https://github.com/eclipse-tractusx/bpdm/tree/main/docs/api). + +While currently the country risk service is a dashboard without the possibility to share data, in the future there shall be the functionality to request a country risk score from our application for a provided BPN Number. This functionality can then be used by other use cases like traceability or by the sharing member itself to integrate the data into their own proprietary systems. For this a separate API will be developed which will be extended by an EDC in order to take care of the access and usage policy of the data. + +Once this interface is implemented and the EDC is set up, it can be ensured that the data fields are understood according to the defined semantics and peer-to-peer connections and effort can be minimized after initial setup. Therefore several Country Risk Service Providers are theoretically able to provide their data via this standardized API. This leads to great flexibility for the consumer and very little connection effort. + +Stay tuned for more information! diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/page_adoption-view.mdx b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/page_adoption-view.mdx new file mode 100644 index 00000000000..06b981bf026 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/page_adoption-view.mdx @@ -0,0 +1,92 @@ +--- +id: Adoption View +title: Adoption View +description: 'Business Partner Kit' +sidebar_position: 2 +--- + +![Business partner kit banner](@site/static/img/BPKitIcon.png) + +# Business Partner KIT + +** Unique business partner data sets for the whole data space. ** +## Vision & Mission +** Basis for the integration of value-adding services in the area of business partner data management. ** + +The BusinessPartner Kit provides high-quality data records of business partners called golden record including a unique identifier and the business partner number (BPN). The BPN provides a standardized and unique identifier on legal entity, site and address level. The connected backend service removes duplicate data, adds missing information, and improves data quality from different data sources so-called sharing member. + +- **Legal Entity Level (BPN L)**: Search for a legal entity and get the high-quality data set. +- **Site Level (BPN S)**: Get the site information of a legal entity. A legal entity can have one or more sites. +- **Address Level (BPN A)**: Each legal entity and site has an address to find the company. + +**The Kit provides a homogeneous semantic with an open data model, enables the access to high quality data and provides one access point to the business partner data sets.** +
+ +![BuildApps](@site/static/img/BPKITBuildApps.png) + +## Business Value + +** One open data model ** +Application and service providers reduce investments to integrate due to one data model / API specification and open interface. The pool API enables the integration and offering of value-added services and innovation based on high-quality master data. + +** Access to new market potentials ** +Potential to scale customer group and access new market potentials via Catena-X marketplace and shared service network. The BP Kit enables an interoperable foundation for value-added services. + +** The unique identifier ** +BPN is the unique number to identify and find partners in the Catena-X network. It will also provide high quality data sets from business partners, their legal unit, sites and addresses. + +** The industry’s largest golden record collection ** +as a shared and cost-optimized service (quality tested by the biggest players). + +--- +
+ +## Use Case +** Status Quo ** +**Todays challenge for automotive companies** + +Most of today’s automotive companies have to invest a significant amount of resources to keep their individual partner master data updated and correct, since outdated or incorrect data records result in federal fines and wrong claims / billing processes. The industry spends a vast amount into an area that is non differentiating, regulated and executed redundantly across the partners. + +For this, cutting individual company costs by offering the golden master data record as a shared service is the mission. And proactively reduce Business Partner risk via collaborative value-add services. +More insights to the business partner data management use case here: [Catena-X | Business Partner Use Case](https://catena-x.net/fileadmin/user_upload/Standard-Bibliothek/5_PC_BPDM_v.2.1/BPM_-_001_BUSINESS_PARTNER_NUMBER_PlatformCapabilityBPDM_v2.1.pdf) + +This will become the industry’s largest golden record collection as a shared and cost-optimized service (quality tested by the biggest players). + +OEMs and small-medium enterprises: + +- Reduce today’s individual investments in master data management +- Re-allocate freed-up resources to differentiating / critical tasks +- Time to value within 6 months, due to standard interfaces and mapping tools (e.g. SAP) +- Increase data quality and use industry collective wisdom to act pro-actively (e.g. fraud alerts) + +Solution Provider: + +- Reduce investments to integrate due to one Data Model and open interface. +- The Kit enables the offering of value-add services and innovation based on golden record and collective wisdom. +- Potential to scale customer group and access new market potentials via marketplace and shared service network. + +## Standards +The standards for release 3.2 will be published soon. +Our relevant standards can be downloaded from the official [Catena-X Standard Library](https://catena-x.net/de/standard-library): + +- Business Partner Number (Version 2.0.0) + +- Business Partner Pool API (Version 2.0.0) + +- Business Partner Gate API (Version 2.0.0) + +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2023,2023 ZF Friedrichshafen AG +- SPDX-FileCopyrightText: 2023,2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +- SPDX-FileCopyrightText: 2023,2023 SAP SE +- SPDX-FileCopyrightText: 2023,2023 Volkswagen AG +- SPDX-FileCopyrightText: 2023,2023 Robert Bosch GmbH +- SPDX-FileCopyrightText: 2023,2023 Mercedes Benz Group +- SPDX-FileCopyrightText: 2023,2023 BASF SE +- SPDX-FileCopyrightText: 2023,2023 Schaeffler AG +- SPDX-FileCopyrightText: 2023,2023 Contributors to the Eclipse Foundation +- Source URL: https://github.com/eclipse-tractusx/bpdm diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/page_changelog.md b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/page_changelog.md new file mode 100644 index 00000000000..25431bd8a98 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/page_changelog.md @@ -0,0 +1,61 @@ +--- +id: Changelog +title: Changelog +description: 'Business Partner Kit' +sidebar_position: 1 +--- + +![Business partner kit banner](@site/static/img/BPKitIcon.png) + +### Business Partner KIT + +All notable changes to this Kit will be documented in this file. + +## [3.0.0] -2023-11-02 + +### Added + +- documentation for orchestrator and cleaning dummy service in software development view +- documentation of new services with installation steps in operation view +- documentation of bpdm architecture (arc42) + +### Changed + +- documentation of gate service with new endpoints for creating and querying generic business partners +- documentation of operation view for local deployment + +### Removed + +- documentation of old endpoints in software development view for gate and pool servicce + +## [2.0.0] - 2023-08-25 + +### Added + +- documentation of the software development view including the business partner data management for Gate and Bridge-Dummy API +- documentation of bpdm architecture (arc42) +- documentation versions based on Catena-X release + +### Changed + +- documentation of the operations view with an installation guide for all services + +### Removed + +- documentation of api references, troubleshooting and best practices + +## [1.0.0] - 2023-03-01 + +### Added + +- documentation of the software development view including the business partner data management POOL API +- documentation of adoption view +- documentation of the operations view with an installation guide for the POOL API + +### Changed + +- ./. + +### Removed + +- ./. diff --git a/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/page_software-operation-view.md b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/page_software-operation-view.md new file mode 100644 index 00000000000..f484041184c --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Business Partner Kit/page_software-operation-view.md @@ -0,0 +1,584 @@ +--- +id: Operation View +title: Operation View +description: 'Business Partner Kit' +sidebar_position: 3 +--- + +![Business partner kit banner](@site/static/img/BPKitIcon.png) + +### Business Partner KIT + +## Local Deployment + +BPDM is an acronym for business partner data management. This project provides core services for querying, adding and changing business partner base information in the Eclipse Tractus-X landscape. BPDM project is SpringBoot Kotlin software project managed by Maven and consists of three microservices. This section contains information on how to configure and run the BPDM application. + +This local deployment is an easy installation with helm. This setup is built to run on a kubernetes cluster. + +| Step | Action | Description | +|----------------------------------------------------------------------------------|-------------------------------------|-------------------------------------------------------------------------| +|![arrow down](@site/static/img/arrow_down.png)| **[Install the prerequisites](#step-1-prerequisites)**| Install all necessary tools for this setup | +|![vector](@site/static/img/vector.png) | **[Check out the Code](#step-2-check-out-the-code)** | Get all necessary code to deploy the service and dependencies to the kuberneetes cluster| +|![check](@site/static/img/check.png) | **[Installing the Service](#step-3-installing-the-services)**|Start cluster and interact with Services | + +### Step 1: Prerequisites + +1. [Docker](https://docs.docker.com/get-docker/) is installed and the Docker deamon is running with at least 8GB of memory +2. [helm](https://helm.sh/docs/intro/install/) is installed +3. [Minikube](https://minikube.sigs.k8s.io/docs/start/) is installed and running. + You can also use any other local Kubernetes cluster, this guide is just using Minikube as a reference. + + ```bash + minikube start --memory 8192 --cpus 2 + ``` + + _Optional_: enable minikube metrics + + ```bash + minikube addons enable metrics-server + ``` + +4. [kubectl](https://kubernetes.io/docs/tasks/tools/) is installed +5. [psql](https://www.compose.com/articles/postgresql-tips-installing-the-postgresql-client/) client is installed + +### Step 2: Check out the code + +Check out the project [BPDM](https://github.com/eclipse-tractusx/bpdm) or download a [released version](https://github.com/eclipse-tractusx/bpdm/releases) of the project. + +### Step 3: Installing the services + +#### 1. Start the cluster + +To deploy the services on kubernetes using helm charts, run + +```bash +cd local/bpdm +helm install your_namespace ./charts/bpdm/ +``` + +If postgresql is not available in your cluster then you might get following error. + +```bash +Error: INSTALLATION FAILED: An error occurred while checking for chart dependencies. You may need to run `helm dependency build` to fetch missing dependencies: found in Chart.yaml, but missing in charts/ directory: opensearch, postgresql +``` + +You can resolve it by adding dependancy to the build + +```bash +helm dependency build ./charts/bpdm/ +``` + +This can take up to **5 minutes**. + +When the deployment is finished you can expect that 3 deployments can be seen in the minikube dashboard: + +* bpdm-bridge-dummy +* bpdm-gate +* bpdm-pool +* bpdm-cleaning-dummy +* bpdm-orchestrator + +Also in total 5 Pods are up and running. + +##### 1.1 Get the status of the deployment + +The minikube dashboard will give you feedback on how the status of the deployment currently is: + +```bash + minikube dashboard +``` + +Make sure you select the namespace **your_namespace**: + +![expected status](@site/static/img/minikube-bpdm-dashboard-overview.png) + +#### 2. Forward ports + +When the deployment has been finished, you can for port forwarding using k9s. Also, if k9s tool is not installed the you can use [installer](https://k9scli.io/topics/install/) + +```bash + +``` + +or port forwarding can also be achived kubernetes command + +```bash +kubectl port-forward : +``` + +After that you can access the: + +* **bpdm-bridge-dummy:** [http://localhost:8083](http://localhost:8083) +* **bpdm-gate:** [http://localhost:8081](http://localhost:8081) +* **bpdm-pool:** [http://localhost:8080](http://localhost:8080) + +## Deploy Individual Service + +### 1. BPDM Pool + +The [prerequisites](#step-1-prerequisites) for running this service. In an existing Kubernetes cluster the application can be deployed with the following command: + +```bash +helm install release_name ./charts/bpdm/bpdm-pool --namespace your_namespace +``` + +This will install a new release of the BPDM Pool in the given namespace.On default values this release deploys the latest image tagged as `main` from the repository's GitHub Container Registry. The application is run on default profile (without authorization). +Additionally, the Helm deployment contains a PostgreSQL database and Opensearch instance which the BPDM Pool connects to. + +On the default values deployment no further action is needed to make the BPDM Pool deployment run. +However, per default, ingress as well as authentication for endpoints are disabled. + +By giving your own values file you can configure the Helm deployment of the BPDM Pool freely: + +```bash +helm install release_name ./charts/bpdm/bpdm-pool --namespace your_namespace -f ./path/to/your/values.yaml +``` + +In the following sections you can have a look at the most important configuration options. + +#### Image Tag + +Per default, the Helm deployment references a certain BPDM Pool release version where the newest Helm release points to the newest Pool version. +This is a stable tag pointing to a fixed release version of the BPDM Pool. +For your deployment you might want to follow the latest application releases instead. + +In your values file you can overwrite the default tag: + +```yaml +image: + tag: "latest" +``` + +#### Profiles + +You can also activate Spring profiles in which the BPDM Pool should be run. +In case you want to run the Pool with authorization enabled you can write the following: + +```yaml +springProfiles: + - auth +``` + +#### Ingress + +You can specify your own ingress configuration for the Helm deployment to make the BPDM Pool available over Ingress. +Note that you need to have the appropriate Ingress controller installed in your cluster first. +For example, consider a Kubernetes cluster with an [Ingress-Nginx](https://kubernetes.github.io/ingress-nginx/) installed. +An Ingress configuration for the Pool deployment could look like this: + +```yaml +ingress: + enabled: true + annotations: + kubernetes.io/ingress.class: nginx + nginx.ingress.kubernetes.io/backend-protocol: "HTTP" + hosts: + - host: business-partners.your-domain.net + paths: + - path: /pool + pathType: Prefix +``` + +#### Pool Configuration + +The Helm deployment comes with the ability to configure the BPDM Pool application directly over the values file. +This way you are able to overwrite any configuration property of the `application.properties` and `application-auth.properties` files. +Consider that you would need to turn on `auth` profile first before overwriting any property in the corresponding properties file could take effect. +Overwriting configuration properties can be useful to connect to a remote service: + +```yaml +applicationConfig: + bpdm: + security: + auth-server-url: https://remote.keycloak.domain.com + realm: CUSTOM_REALM + client-id: POOL_CLIENT +``` + +In this example above a Pool with authenticated activated connects to a remote Keycloak instance and uses its custom realm and resource. + +Entries in the "applicationConfig" value are written directly to a configMap that is part of the Helm deployment. +This can be a problem if you want to overwrite configuration properties with secrets. +Therefore, you can specify secret configuration values in a different Helm value `applicationSecrets`. +Content of this value is written in a Kubernetes secret instead. +If you want to specify a custom database password for example: + +```yaml +applicationSecrets: + spring: + datasource: + password: your_database_secret +``` + +#### Helm Dependencies + +On default, the Helm deployment also contains a PostgreSQL and Opensearch deployment. +You can configure these deployments in your value file as well. +For this, consider the documentation of the correspondent dependency [PostgreSQL](https://artifacthub.io/packages/helm/bitnami/postgresql/11.9.13) +or [Opensearch](https://opensearch.org/docs/latest/dashboards/install/helm/). +In case you want to use an already deployed database or Opensearch instance you can also disable the respective dependency and overwrite the default host +address in the `applicationConfig`: + +```yaml +applicationConfig: + spring: + datasource: + url: jdbc:postgresql://remote.host.net:5432/bpdm +postgres: + enabled: false +``` + +### 2. BPDM Gate + +The [prerequisites](#step-1-prerequisites) for running this service is same except this service need running BPDM Pool instance. + +In an existing Kubernetes cluster the application can be deployed with the following command: + +```bash +helm install release_name ./charts/bpdm/bpdm-gate --namespace your_namespace -f /path/to/my_release-values.yaml +``` + +This will install a new release of the BPDM Gate in the given namespace. +On default values this release deploys the latest image tagged as `main` from the repository's GitHub Container Registry. +The application is run on default profile (without authorization for its own endpoints or BPDM Pool endpoints). +This deployment requires a BPDM Pool deployment to be reachable under host name `bpdm-pool` on port `8080`. + +By giving your own values file you can configure the Helm deployment of the BPDM Gate freely. +In the following sections you can have a look at the most important configuration options. + +#### Image Tag + +Per default, the Helm deployment references the latest BPDM gate release tagged as `main`. +This tag follows the latest version of the Gate and contains the newest features and bug fixes. +You might want to switch to a more stable release tag instead for your deployment. +In your values file you can overwrite the default tag: + +```yaml +image: + tag: "latest" +``` + +#### Profiles + +You can also activate Spring profiles in which the BPDM Gate should be run. +In case you want to run the Gate with authorization and oAuth Pool client enabled you can write the following: + +```yaml +springProfiles: + - auth + - pool-auth +``` + +#### Ingress + +You can specify your own ingress configuration for the Helm deployment to make the BPDM Gate available over Ingress. +Note that you need to have the appropriate Ingress controller installed in your cluster first. +For example, consider a Kubernetes cluster with an [Ingress-Nginx](https://kubernetes.github.io/ingress-nginx/) installed. +An Ingress configuration for the Gate deployment could look like this: + +```yaml +ingress: + enabled: true + annotations: + kubernetes.io/ingress.class: nginx + nginx.ingress.kubernetes.io/backend-protocol: "HTTP" + hosts: + - host: business-partners.your-domain.net + paths: + - path: /companies/test-company + pathType: Prefix +``` + +#### Gate Configuration + +For the default deployment you already need to overwrite the configuration properties of the application. +The Helm deployment comes with the ability to configure the BPDM Gate application directly over the values file. +This way you are able to overwrite any configuration property of the `application.properties`, `application-auth.properties` +and `application-pool-auth.properties` files. +Consider that you would need to turn on `auth` and `pool-auth` profile first before overwriting any property in the corresponding properties file could take +effect. +Overwriting configuration properties can be useful for connecting to a remotely hosted BPDM Pool instance: + +```yaml +applicationConfig: + bpdm: + pool: + base-url: http://remote.domain.net/api/catena +``` + +Entries in the "applicationConfig" value are written directly to a configMap that is part of the Helm deployment. +This can be a problem if you want to overwrite configuration properties with secrets. +Therefore, you can specify secret configuration values in a different Helm value `applicationSecrets`. +Content of this value is written in a Kubernetes secret instead. +If you want to specify a keycloak client secret for example: + +```yaml +applicationSecrets: + bpdm: + security: + credentials: + secret: your_client_secret +``` + +### 3. BPDM Bridge Dummy + +The [prerequisites](#step-1-prerequisites) for running this service is same. In an existing Kubernetes cluster the application can be deployed with the following command: + +```bash +helm install release_name ./charts/bpdm/bpdm-bridge-dummy --namespace your_namespace -f /path/to/my_release-values.yaml +``` + +This will install a new release of the BPDM Bridge Dummy in the given namespace. +On default values this release deploys the latest image tagged as `main` from the repository's GitHub Container Registry. + +By giving your own values file you can configure the Helm deployment of the BPDM Bridge Dummy freely. +In the following sections you can have a look at the most important configuration options. + +#### Image Tag + +Per default, the Helm deployment references the latest BPDM Bridge Dummy release tagged as `main`. +This tag follows the latest version of the Bridge Dummy and contains the newest features and bug fixes. +You might want to switch to a more stable release tag instead for your deployment. +In your values file you can overwrite the default tag: + +```yaml +image: + tag: "latest" +``` + +#### Profiles + +You can also activate Spring profiles in which the BPDM Bridge Dummy should be run. +In case you want to run the Bridge Dummy with authorization enabled you can write the following: + +```yaml +springProfiles: + - auth +``` + +#### Ingress + +You can specify your own ingress configuration for the Helm deployment to make the BPDM Bridge Dummy available over Ingress. +Note that you need to have the appropriate Ingress controller installed in your cluster first. +For example, consider a Kubernetes cluster with an [Ingress-Nginx](https://kubernetes.github.io/ingress-nginx/) installed. +An Ingress configuration for the Bridge Dummy deployment could somehow look like this: + +```yaml +ingress: + enabled: true + annotations: + kubernetes.io/ingress.class: nginx + nginx.ingress.kubernetes.io/backend-protocol: "HTTP" + hosts: + - host: business-partners.your-domain.net + paths: + - path: /bridge + pathType: Prefix +``` + +#### Bridge Dummy Configuration + +For the default deployment you already need to overwrite the configuration properties of the application. +The Helm deployment comes with the ability to configure the BPDM Bridge Dummy application directly over the values file. +This way you are able to overwrite any configuration property of the `application.properties` and `application-auth.properties` files. +Consider that you would need to turn on `auth` profile first before overwriting any property in the corresponding properties file could take +effect. +Overwriting configuration properties can be useful for connecting to a remotely hosted BPDM Gate and Pool instance: + +```yaml +applicationConfig: + bpdm: + pool: + base-url: http://remote.domain.net/api/catena + gate: + base-url: http://remote.domain.net/api/catena +``` + +Entries in the "applicationConfig" value are written directly to a configMap that is part of the Helm deployment. +This can be a problem if you want to overwrite configuration properties with secrets. +Therefore, you can specify secret configuration values in a different Helm value `applicationSecrets`. +Content of this value is written in a Kubernetes secret instead. +If you want to specify a keycloak client secret for example: + +```yaml +applicationSecrets: + bpdm: + security: + credentials: + secret: your_client_secret +``` + +### 4. BPDM Cleaning Dummy + +The [prerequisites](#step-1-prerequisites) for running this service is same. In an existing Kubernetes cluster the application can be deployed with the following command: + +```bash +helm install release_name ./charts/bpdm/bpdm-cleaning-service-dummy --namespace your_namespace -f /path/to/my_release-values.yaml +``` + +This will install a new release of the BPDM Cleaning Dummy in the given namespace. +On default values this release deploys the latest image tagged as `main` from the repository's GitHub Container Registry. + +By giving your own values file you can configure the Helm deployment of the BPDM Cleaning Dummy freely. +In the following sections you can have a look at the most important configuration options. + +#### Image Tag + +Per default, the Helm deployment references the latest BPDM Cleaning Dummy release tagged as `main`. +This tag follows the latest version of the Cleaning Dummy and contains the newest features and bug fixes. +You might want to switch to a more stable release tag instead for your deployment. +In your values file you can overwrite the default tag: + +```yaml +image: + tag: "latest" +``` + +#### Profiles + +You can also activate Spring profiles in which the BPDM Cleaning Dummy should be run. +In case you want to run the Cleaning Dummy with authorization enabled you can write the following: + +```yaml +springProfiles: + - auth +``` + +#### Ingress + +You can specify your own ingress configuration for the Helm deployment to make the BPDM Cleaning Dummy available over Ingress. +Note that you need to have the appropriate Ingress controller installed in your cluster first. +For example, consider a Kubernetes cluster with an [Ingress-Nginx](https://kubernetes.github.io/ingress-nginx/) installed. +An Ingress configuration for the Cleaning Dummy deployment could somehow look like this: + +```yaml +ingress: + enabled: true + annotations: + kubernetes.io/ingress.class: nginx + nginx.ingress.kubernetes.io/backend-protocol: "HTTP" + hosts: + - host: business-partners.your-domain.net + paths: + - path: /cleaning + pathType: Prefix +``` + +#### Cleaning Dummy Configuration + +For the default deployment you already need to overwrite the configuration properties of the application. +The Helm deployment comes with the ability to configure the BPDM Cleaning Dummy application directly over the values file. +This way you are able to overwrite any configuration property of the `application.properties` and `application-auth.properties` files. +Consider that you would need to turn on `auth` profile first before overwriting any property in the corresponding properties file could take effect. + +Entries in the "applicationConfig" value are written directly to a configMap that is part of the Helm deployment. +This can be a problem if you want to overwrite configuration properties with secrets. +Therefore, you can specify secret configuration values in a different Helm value `applicationSecrets`. +Content of this value is written in a Kubernetes secret instead. +If you want to specify a keycloak client secret for example: + +```yaml +applicationSecrets: + bpdm: + security: + credentials: + secret: your_client_secret +``` + +### 5. BPDM Orchestrator + +The [prerequisites](#step-1-prerequisites) for running this service is same. In an existing Kubernetes cluster the application can be deployed with the following command: + +```bash +helm install release_name ./charts/bpdm/bpdm-orchestrator --namespace your_namespace -f /path/to/my_release-values.yaml +``` + +This will install a new release of the BPDM Orchestrator in the given namespace. +On default values this release deploys the latest image tagged as `main` from the repository's GitHub Container Registry. + +By giving your own values file you can configure the Helm deployment of the BPDM Orchestrator freely. +In the following sections you can have a look at the most important configuration options. + +#### Image Tag + +Per default, the Helm deployment references the latest BPDM Orchestrator release tagged as `main`. +This tag follows the latest version of the Orchestrator and contains the newest features and bug fixes. +You might want to switch to a more stable release tag instead for your deployment. +In your values file you can overwrite the default tag: + +```yaml +image: + tag: "latest" +``` + +#### Profiles + +You can also activate Spring profiles in which the BPDM Orchestrator should be run. +In case you want to run the Orchestrator with authorization enabled you can write the following: + +```yaml +springProfiles: + - auth +``` + +#### Ingress + +You can specify your own ingress configuration for the Helm deployment to make the BPDM Orchestrator available over Ingress. +Note that you need to have the appropriate Ingress controller installed in your cluster first. +For example, consider a Kubernetes cluster with an [Ingress-Nginx](https://kubernetes.github.io/ingress-nginx/) installed. +An Ingress configuration for the Orchestrator deployment could somehow look like this: + +```yaml +ingress: + enabled: true + annotations: + kubernetes.io/ingress.class: nginx + nginx.ingress.kubernetes.io/backend-protocol: "HTTP" + hosts: + - host: business-partners.your-domain.net + paths: + - path: /cleaning + pathType: Prefix +``` + +#### Orchestrator Configuration + +For the default deployment you already need to overwrite the configuration properties of the application. +The Helm deployment comes with the ability to configure the BPDM Orchestrator application directly over the values file. +This way you are able to overwrite any configuration property of the `application.properties` and `application-auth.properties` files. +Consider that you would need to turn on `auth` profile first before overwriting any property in the corresponding properties file could take effect. + +Entries in the "applicationConfig" value are written directly to a configMap that is part of the Helm deployment. +This can be a problem if you want to overwrite configuration properties with secrets. +Therefore, you can specify secret configuration values in a different Helm value `applicationSecrets`. +Content of this value is written in a Kubernetes secret instead. +If you want to specify a keycloak client secret for example: + +```yaml +applicationSecrets: + bpdm: + security: + credentials: + secret: your_client_secret +``` + +## Stopping the cluster + +1. stop minikube + + ```bash + minikube stop + ``` + +2. stop the processes used for port forwarding and minikube dashboard +3. shut down the Docker daemon + +## How to debug an application in the cluster + +If you want to connect your IDE to one of the applications in the cluster, you need to enable debug mode for that application by overriding the entrypoint (using the `command` and `args` fields in the deployment resource). How to do this depends on the application. For the BPDM, as it is based on Spring Boot and Kotlin, you would need to add this flag to the start command: + +```bash +-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000 +``` + +Then you can forward the port 8000 for the BPDM deployment to your host machine and connect your IDE to that port. diff --git a/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/page-adoption-view.md b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/page-adoption-view.md new file mode 100644 index 00000000000..e2891c7aa61 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/page-adoption-view.md @@ -0,0 +1,556 @@ +--- +title: Adoption View +--- + +## Circularity KIT + +### Vision & Misson + +#### Introduction + +The Circularity KIT shall empower stakeholders to transition towards a circular economy by providing frameworks, guidelines and best practices to enhance sustainability credentials, enable data-driven decision-making and foster collaboration and innovation in the automotive industry. + +Secondary material content, material accounting, dismantling services, and the CE-Assistant are the four focus topics that form the first version of Circularity KIT. The offered content and artifacts address important use cases such as sustainable materials management, waste minimization and resource efficiency, that contribute to more sustainable and circular automotive value loops. + +The overarching goals of the Circularity KIT, therefore, are to: + +- Establish an understanding of requirements along circular value chains and how businesses can profit by implementing sustainable solutions. +- Offer standards and guidelines for industry stakeholders. +- Explain different circularity topics and provide tools to implement them. + +#### Vision + +Vision Catch Phrase: "Closing the Loop, by harnessing the power of Circularity" + +Context: Our vision is to create a future where resources are intelligently and efficiently utilized, enabling industries and communities to minimize waste, embrace R-strategies, and foster a circular economy that leads to a sustainable and prosperous world. + +The Circularity Kit serves as a practical set of tools, guidelines, and best practices designed to help stakeholders in the automotive industry to transition towards this vision. + +#### Mission + +In a world facing increasing environmental pressures and resource scarcity, transitioning to a circular economy is crucial. This approach ensures responsible resource management through R-strategies, secondary material quotas, material accounting, and optimized end-of-life processes. By closing the loop on material flows, we can reduce our environmental impact, drive innovation, and create economic opportunities that secure a sustainable future. + +The KIT entails a description of the overall business value, use case context, an introduction to the subtopics secondary material content, material accounting, dismantling services, CE-Assistant as well as a circularity glossary and is complemented by user journeys, business processes, calculation frameworks, interoperable data models and standards needed to adopt the Catena-X circularity focus topics. + +All described specifications in the KIT are based on Catena-X standards like Asset Administration Shell, SSI and a decentral Digital Twin Registry. They refer to other Catena-X KITs like the Traceability KIT to ensure interoperability and data sovereignty according to IDSA and Gaia-X principles. + +### Business Context + +The Circularity KIT provides business opportunities for service providers in various ways: + +1. Unified Circular Economy Framework: Service providers can leverage a comprehensive and standardized framework for implementing circular economy principles in the automotive industry. This unified approach simplifies integration and collaboration with other stakeholders, reducing investment costs and accelerating the development and deployment of innovative solutions. +2. Access to New Market Opportunities: The KIT enables service providers to tap into emerging market opportunities driven by the increasing demand for sustainable solutions. By offering tailored services on the Catena-X marketplace, service providers can scale their customer base, expand their reach, and unlock new revenue streams. +3. Enhanced Sustainability Credentials: By aligning with the principles of the Circularity KIT, service providers can demonstrate their commitment to sustainability and strengthen their reputation in the market. This commitment can lead to increased customer trust, better brand positioning, and a competitive advantage in the Catena-X network. +4. Data-Driven Decision Making: The Circularity KIT promotes data-driven decision making by offering access to material accounting data and insights into end-of-life processes within the automotive industry. Service providers can use this data to develop targeted solutions, optimize their offerings, and drive continuous improvement in their services. +5. Collaboration and Innovation: By using the Circularity KIT, service providers can actively participate in a network of automotive industry stakeholders committed to fostering a circular economy. This collaborative environment enables the exchange of ideas, knowledge, and best practices, driving innovation and enhancing the overall value of solutions offered in the Catena-X marketplace. + +#### Circularity KIT Wheel + +In its first version the KIT covers 4 focus topics along an automotive value loop. + +1. **Secondary Material Content:** promotes the use of secondary materials in the automotive industry by providing a standardized data model for data exchange and a calculation framework. +2. **Material Accounting:** provides standardized scrap/waste and secondary material data exchange for the ecosystem partners to create transparency about recycling activities and verifiable closed loops. +3. **EoL / Dismantling Services:** offers essential support for the digitalization and automation of the EoL phase to consequently close value loops. +4. **CE-Assistant (Circular Strategy Assistant):** is a decision support system that facilitates the selection of the optimal R-Strategy for end-of-life vehicles, with a focus on Reuse, Remanufacturing, Recycling, and Recovery, guided by a comprehensive technical and environmental assessment process. + +**Figure 1** +![Circularity KIT Wheel](resources/adoption-view/circularity_kit_wheel.svg) + +### Use Case / Domain Explanation + +Status Quo / Today's challenge: The automotive industry is one of the largest consumers of raw materials, including metals, plastics, and textiles. Managing these materials sustainably and efficiently is a significant challenge, with an increasing focus on reducing waste, improving recyclability, and ensuring responsible sourcing. Traditional linear models of material consumption led to resource depletion, environmental degradation, and missed economic opportunities. + +Values for taking the challenge: By adopting the Circularity KIT and embracing circular economy principles, automotive companies can transition to sustainable materials management, improve resource efficiency, and contribute to a greener, more resilient industry. + +Benefits for OEMs, SMEs, and Solution Providers: + +1. OEMs and large suppliers: + - Minimize raw material consumption and waste generation by integrating R-strategies and secondary material quotas in their production processes. + - Enhance their brand image and reputation by adopting eco-friendly practices and demonstrating commitment to sustainability. + - Achieve regulatory compliance and meet customer expectations for environmentally responsible products. +2. SMEs can: + - Access cost-effective, high-quality secondary materials for their production processes, reducing dependency on non-renewable resources. + - Improve competitiveness by adopting innovative circular economy technologies and practices. + - Collaborate with other industry stakeholders to develop and implement sustainable solutions. +3. Solution Providers can: + - Develop and market innovative technologies, products, and services that support circular economy principles in the automotive industry. + - Access new market opportunities and scale their customer base through a circularity network and shared services. + - Leverage the collective wisdom of industry stakeholders to drive continuous improvement and innovation. + +## Material Accounting + +### Introduction + +Material Accounting: Enabling Transparency in the Circular Economy to Validate Material Loops +In the dynamic landscape of modern industry, the pursuit of a circular economy has become increasingly vital. This transformative approach seeks to minimize waste and enhance resource efficiency by promoting the reuse, recycling and repurposing of materials throughout their entire lifecycle. However, the realization of a truly circular economy faces significant challenges, primarily stemming from the absence of standardized data exchange and communication among the diverse network of stakeholders involved in the process. + +Currently, there is a notable absence of a uniform data format or exchange mechanism for recycled materials within industrial processes and value chains. This lack of transparency presents a barrier to comprehending the flow of materials and recycled materials circulating within this ecosystem. Without a standardized approach, tracking the contributions of recycled materials, assessing their successful reintegration into the circular loop, and quantifying output volumes remain challenging tasks. + +The circular economy involves a complex interplay of various stakeholders, ranging from tier-n companies to original equipment manufacturers (OEMs), each employing unique methods for measuring inputs and outputs. The overarching objective of the material accounting feature in the Circularity KIT, therefore, is to make the circular economy visible and digitally verifiable across the automotive value chain. To realize this ambition, a standardized framework is imperative, one that facilitates the exchange of material data for both primary and secondary raw materials, including corresponding quantities and qualities, illuminating material flows across the entire value chain. + +The image below shows the big picture of a circular economy when material is tracked over its complete life cycle excluding the usage phase. + +#### Figure 2 + +![Overview Material flow](resources/adoption-view/overview_material_flow.svg) + +### Business Value + +From a business perspective, the material accounting KIT is characterized by the following attributes: + +1. **Standardized Data Exchange:** Facilitation of standardized data exchange regarding scrap, waste, and secondary materials among ecosystem partners. +2. **Verifiable Closed Loops:** The KIT enables the establishment of verifiable closed loops for material tracking. +3. **Increased Material Recycling:** The KIT promotes the recycling of materials within the same industry, increasing sustainability. +4. **Transparency:** It provides higher transparency regarding the availability of secondary materials. + +### Use Case / Domain + +#### Material Accounting in Catena-X + +Catena-X offers a decentral, sovereign, cross-organizational data exchange. For Material Accounting the following scenario could be addressed: Registering secondary materials as decentral digital twins in the Catena-X network based on material batches. + +The goal of the Material Accounting Feature inside the Catena-X consortium and association is to collaborate on exchanging standardized secondary material information across the upstream & downstream value in order to develop a standardized data model. To do so, we identified potential data points along a closed loop with OEM, recycler and supplier as stakeholders as seen in the picture below. Further feature content will follow in upcoming versions of the Circularity KIT. + +#### Figure 3 + +![Data Points along the Value Chain](resources/adoption-view/datapoints_along_valuechain.svg) + +## Secondary Material Content + +### Introduction + +Introducing the Secondary Material Framework within the Circularity KIT by Catena-X: Enhancing Sustainability and Communication in the Automotive Value Chain. + +In the pursuit of sustainability and resource efficiency, the automotive industry is continuously exploring innovative ways to incorporate secondary materials into its value chain. At the forefront of this endeavor is the secondary material framework, a pivotal component of Catena-X's Circularity KIT. + +Designed with a clear mission, this framework seeks to revolutionize the utilization of secondary materials throughout the automotive value chain, extending its impact to tier-n companies and OEMs alike. Through a multi-faceted approach, the secondary material framework not only optimizes accessibility to secondary material information but also advances collaboration and communication among diverse stakeholders within the industry. + +By facilitating seamless data exchange and introducing standardized calculation methodologies, this framework establishes a transparent foundation that harmonizes communication among stakeholders by employing consistent metrics. The decentralized nature of this data ecosystem empowers each actor to manage their own data and determine what can be shared with whom. + +The secondary material content chapter of the circularity Kit explores how the secondary material framework contributes to heightened transparency, empowered data management, and streamlined communication, ultimately fostering a more sustainable and interconnected automotive ecosystem. + +### Business Content + +#### Use Case / Domain Explanation + +This user journey illustrates the data exchange process through Catena-X in the context of secondary material content. The user journey outlines the various stakeholders along the value chain and within the individual tiers and their involvement. + +#### Figur 4 + +![User Journey - SMC](resources/adoption-view/userJourney_smc.svg) + +The user journey follows the same process during all four lifecycle stages and differ in data quality as stated below. Further information to the lifecycle stages can be found in the [Traceability KIT](https://eclipse-tractusx.github.io/docs-kits/kits/Traceability%20Kit/Adoption%20View%20Traceability%20Kit). + +| Lifecycle Stage | Explanation | Example | +| --------------- | ------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| As Designed | Development phase: **Initial estimation** of secondary material content | The company that wishes to procure a component requires an initial estimate from the supplier regarding the elements of the SMC. | +| As Planned | Planning phase: **Concretization** of the secondary material content | The company chooses a supplier based on the proposals received and obtains more detailed information about the SMC as the supplier can plan the component with greater precision. | +| As Ordered | Ordering phase: Calculation of secondary material content on the **basis of supplied components** | The ordering phase occurs before the start of production, allowing for the calculation of the SMC information based on the specific parts and materials that are being supplied. | +| As Built | Production phase: Ongoing calculation **after start of production** | During the production process SMC information are regularly exchanged between supplier and OEM. | + +### Semantic Models + +This part provides an overview of the secondary material content (SMC) Calculation Framework, including relevant data points, the calculation of SMC, and links to the data model and GitHub. The goal is to create a common basis for the data relevant for the SMC. Based on this, steering for secondary material content SMC and secondary material quota (SMQ) is possible. + +#### A. Introduction to the Semantic Model + +The semantic model is based on data points regarding material and order data. + +There are different timestamps to which data for SMC is relevant. + +To ensure the accuracy of the data and account for varying availability and quality of the information, it is important to identify at which step of the process data is exchanged. The process is divided into four steps, which are explained below. + +| **Timestamp**
Linked to [Traceability KIT](https://eclipse-tractusx.github.io/docs-kits/kits/Traceability%20Kit/Adoption%20View%20Traceability%20Kit/) | **Explanation** | Concept in Catena-X developed | Data Models that need to be filled (link to the relevant data models here) | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------- | ----------------------------------------------------------------------------- | +| a. Supplier Inquiry/As Designed | This is the initial phase of the process where the supplier is inquired about the design of the product. The data exchanged in this phase is an initial estimation of secondary material content. | Concept currently not developed | N/A | +| b. Supplier Selection/ As Planend | In this phase, the supplier is selected, and the data exchanged is based on the planned production and concretized to the previous phase. | Concept developed | 1. Part as Planned (Component)
2. SMC | +| c. SOP/ Industrialisation/ As Ordered | This phase involves the ordering and the start of the production process. The data exchanged is based on the actual production process. | Concept currently not developed | N/A | +| d. Post-SOP/ Serie/ As Built | This is the final phase of the process where the product is built, and the data exchanged is based on actual product specifications. The data exchange during this phase is regular and allows for the most precise calculation of SMC of all the stages. | Concept developed | 1a. Serial Part (Component)
**or**
1b. Batch
**and**
2. SMC | + +In addition to filling out the data model for Secondary Material Content, other data models must also be completed to ensure adequate information and compatibility within Catena-X. During the As-Planned phase, the Part as Planned (Component) data model must be filled in addition to the SMC data model. Once the as-built phase is reached, the serial part (Component) data model must be filled to provide information as manufacturer partID, and customer partID. As such, these values are not included in the SMC data model. + +#### 1. Material + +The Model is designed to address the material at the lowest level requiring descriptive information, such as the material name in accordance with a standardized format, as well as the name and code of the referenced standard (materialNameStandardizedValue; referencedStandard; referencedStandardID). For example, a material name may be given based on the ISO 1043 standard, in which case ISO would be the referenced standard and ‘1043’ the referenced standard ID. The material class (materialClass) must be provided in accordance with the VDA standard 231-106. To provide relevant data regarding the material mass per declared unit of the material, the unit of measure, such as gram or kilogram (unitOfMeasureKey), must first be defined, followed by the actual weight (unitOfMeasureValue). + +Essential material characteristics that are mandatory within the data model include the use of bio-based materials and their material class (bioBasedClass), as well as the percentage of material weight of each primary and secondary bio-based material (primaryBioBased; secondaryBioBased). For secondary bio-based material it can be chosen whether a mass balancing approach was followed or not (isMassBalanced). Further information and mass-balancing can be found under B, Accounting for Chain of Custody models. + +Further, information regarding inorganic/fossil-based materials is required. The percentage of primary inorganic/fossil-based material weight (percentageOfMaterialWeight) shall be provided. When it comes to secondary material, the percentage of material weight of chemically and mechanically recycled pre-consumer and post-consumer material according to ISO 14021 should be included (percentageOfMaterialWeight). For Post-Consumer material, the differentiation whether the material originates from recycled end-of-life vehicles (isPreviousIndustryAutomotive) can be selected. When chemical or mechanical recycling has been applied, it is important to disclose information whether a mass balancing approach was followed (isMassBalanced). + +Definition of pre-consumer material: + +“Material diverted from the waste stream during a manufacturing process. Excluded is reutilization of materials such as rework, regrind or scrap generated in a process and capable of being reclaimed within the same process that generated it. Pre consumer material can be used in form of recovered or recycled material as a substitute for primary material.” + +Definition of post-consumer material: + +“Material generated by households or by commercial, industrial and institutional facilities in their role as end-users of the product which can no longer be used for its intended purpose. This includes returns of material from the distribution chain. Post-consumer material can be used in form of recovered or recycled material as a substitute for primary material.” + +#### Optional Information, such as Reutilization + +Optional information can be included to enhance the quality of the provided data, such as the percentage of material weight of reutilization material content (additionalInformation). + +Definition of Reutilization: + +“Reutilization of materials such as rework, regrind or scrap materials generated within the process and capable of being reused within the same process that generated it. Any operation by which products or components that are not waste are used again for the same purpose for which they were originally intended. Reutilization allows waste to be reduced and materials can be kept in the cycle.” + +Even though Reutilization fosters the avoidance of waste, it does not count as recyclate according to ISO 14021 and is an optional attribute for this data model. + +If available, the name of a certificate verifying the recycling content and a link to its PDF validating the provided information can be included (certificate). + +**Figure 5** + +![Material Characteristics](resources/adoption-view/Relationship_between_Material_Characteristics.svg) + +The schematic depiction above provides a visual representation of the connection between various material characteristics, facilitating an understanding of how different data points relate to each other and contribute to the calculation of SMC. + +#### 2. Order data + +To clearly identify the order and relevant material, the order number (orderNumber) can be provided on an optional basis. + +#### B. Accounting for chain of Custody Models + +Please see the Catena-X Product Carbon Footprint (PCF) Rulebook for further information. Chain of custody is an administrative process by which information about materials is transferred, monitored, and controlled as those materials move through supply chains [ISO 22095:2020]. There are in principle four chains of custody models possible, illustrated in the figure below. Their common objective is to guarantee correct bookkeeping and to corroborate a link between in-going content, e.g., ‘sustainable’, ‘recycled’ or ‘organic’ by harmonized definitions, and the finally out-going product. They differ regarding physical or administrative links. Furthermore, they differ on the set of rules for balancing, and the possibility to keep materials streams segregated or not. + +**Figure 6** +![figure custody models](resources/adoption-view/custody_models.svg)[^1] + +[^1]: Original image taken from [Mass Balance EMF White Paper](https://emf.thirdlight.com/link/f1phopemqs36-8xgjzx/@/preview/1?o), visually adapted for this purpose. + +The following table is adapted from the [Mass Balance EMF White Paper](https://emf.thirdlight.com/link/f1phopemqs36-8xgjzx/@/preview/1?o) and provides high-level explanations and differentiations for the four chain of custody models: + +| Model | Explanation | Example | +| ----------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| - | - | - | +| Identity Preservation | It is possible to physically track the product to its desired origin, ensuring unique traceability and physical separation of products from other sources along the supply chain. | Buying food from a single certified producer. | +| Segregation | Consists in the aggregation of volumes of products of identical origin or produced according to the same standards in one stock item. | Buying food from a trader that exclusively handles identically certified supplies. | +| Mass balance | Considering the output, no physical or chemical difference exists between in-scope and out-of-scope. It involves balancing volume reconciliation to ensure the exact account of volumes of in- and out-of-scope source is maintained along the supply chain, provided that the volume or the ratio of sustainable material integrated is reflected in the product produced and sold to customers. This model requires that a reconciliation period is defined (e.g. a month, a year). | Buying a certain percentage of a supply from certified origin. Applies to, e.g., sustainable forestry for wooden materials, recycled, bio-based or renewable materials, organic cotton | +| Book and claim – restricted certificate trading | The certified product / component is disconnected from the certification data but belongs to the same production system or value chain. The certified product evolves in separate flows from the certified supply. Certificates are issued at the beginning of the supply chain by an independent body reflecting the sustainable content of supplies. The intended outcome is that outputs from one supply chain are associated with total claims corresponding to the certified input. | Buying material with renewable/recycled/ biobased content. Certificates with guarantee of origin or comparable certifications declaring e.g. recycled, renewable, biobased content. CO2 capture certificates from a production system controlled by the company, e.g. carbon capture and storage. | + +Explanation chain of custody models [adapted from the above cited EMF Whitepaper] + +For calculating the PCF according to the Catena-X rulebook all types of models may be taken into account, if the requirements listed below are met and an independent third-party chain of custody verification for the balance of materials is available. The balance between input and output shall be correct. + +The mass balance approach helps enabling fossil raw materials to be replaced by more sustainable alternative materials (e.g. with recycled content, bio-content). In contrast to a segregated use of alternative raw materials, mass balance enables to use existing production networks with minimized or no investments into new process technologies and production facilities. A book and claim model can be applied when there is no direct connection between the final product and the certified supply. An example for a book and claim model is applied in green electricity markets and receives more attention in other sectors as a way to support circular transformation of the industry, therefore it is accepted as a solution. There will be a regular review by Catena-X to decide about the further necessity. + +##### Guiding Principles + +In implementing chain-of-custody methods, including the mass balance one, the following set of guiding principles shall be fulfilled: + +1. The use of chain-of-custody approaches shall achieve significant changes and an effective transition towards a more circular, more bio-based and lower GHG emissions production in complex value chains. +2. The choice and implementation of chain-of-custody approaches and models shall be transparent, clear, and credible – abiding by relevant standards such as ISO and CEN. Such credibility can also be achieved but is not limited to accepted third-party certification schemes, e.g. ISCC PLUS, REDCert2 and RSB. + Note: Certification Schemes are not yet available in all sectors. +3. Labels and claims referring to chain-of-custody controlled specified characteristics and used on products shall fulfill the following requirements: + + - description of the chain-of-custody approaches and models + - accurate and appropriate implementation of the chain-of-custody model + - compliant with existing standards and regulations + - non-misleading + + In case the “specified characteristic” content in products cannot be measured and verified, labels and claims products may reflect this in ways that clearly differentiate and specify the actual content. + +4. No double counting: A reliable bookkeeping system shall be installed at each operating site to avoid the sales of a greater amount of alternative attributed products than physically available in the company. + Additional requirements for mass balance chain of custody approach: +5. The operating sites in the spatial boundaries for mass balancing are under the operational control of the same company/corporate group/joint venture. +6. It shall be technically possible according to standard industry practice to produce a mass balanced product from an alternative feedstock. The share of mass-balanced material can be technically lower than the attributed share. + +Applied emissions factors for the mass balance system boundaries shall be material and process specific. + +For the SMC data model, information whether a mass-balanced approach has been applied or not can be provided in the data model. + +#### C. Calculation logic for SMC + +The secondary material quota (SMQ) is a KPI measuring the usage of secondary materials within a vehicle. A vehicle can be defined as the sum of its individual components. Therefore, the secondary material content (SMC) is defined as the ratio between secondary material used and total material used on component level. To enable steering for secondary material content on the component level, it is important to establish a common understanding of the SMC of a single material. Based on the data model and information provided earlier, the SMC of a material can be calculated. The SMC can be divided into different pillars: Pre-consumer material and Post-consumer material and, optional: Reutilization material content + +All secondary material usage types are being expressed as percentages of the relationship between secondary materials and total materials used. + +##### 1. Pre-consumer material content: + +![pre consumer material content equation](resources/adoption-view/eq_pre_consumer_material_content.svg) + +**Definition of pre-consumer material:** + +“Material diverted from the waste stream during a manufacturing process. Excluded is reutilization of materials such as rework, regrind or scrap generated in a process and capable of being reclaimed within the same process that generated it. Pre consumer material can be used in form of recovered or recycled material as a substitute for primary material.” + +##### 2. Post-consumer material content: + +![post consumer material content equation](resources/adoption-view/eq_post_consumer_material_content.svg) + +**Definition of post-consumer material:** + +“Material generated by households or by commercial, industrial and institutional facilities in their role as end-users of the product which can no longer be used for its intended purpose. This includes returns of material from the distribution chain. Post-consumer material can be used in form of recovered or recycled material as a substitute for primary material.” + +##### 3. Optional: Reutilization content + +![Reutilization content Equation](resources/adoption-view/equation_Reutilization_content.svg) + +**Definition of reutilization:** + +“Reutilization of materials such as rework, regrind, or scrap materials generated within the process and capable of being reused within the same process that generated it. Any operation by which products or components that are not waste are used again for the same purpose for which they were originally intended. Reutilization allows waste to be reduced and materials can be kept in cycle.” + +#### SMC and SMQ Calculation + +The SMC calculates as the sum of the above defined secondary material usage types: + +![SMC Equation](resources/adoption-view/equation_SMC.svg) + +In the above-described manner, the secondary material content is to be calculated for every component of the vehicle. + +The SMQ as a KPI defined on vehicle level which is calculated based on the individual SMC’s of the respective components: + +![SMQ Equation](resources/adoption-view/equation_SMQ.svg) + +It is important to note that data quality may vary during different stages of the process, and this should be taken into consideration to ensure the highest level of data accuracy. + +To calculate the average portion of, for instance, the amount of mechanical recycling of post-consumer material content in the whole material, the values along the data model must be multiplied. For example, the content of inorganic or fossil-based material, content of secondary inorganic or fossil-based material, post-consumer material content, and mechanical recycling would be multiplied as can be seen in the schematic depiction below. + +**Figure 7** + +![material_characteristics](resources/adoption-view/material_charactersitics.svg) + +#### D. Data model and Github + +The relevant data model can be found on the following link on GitHub: [https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.secondary_material_content/1.0.0](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.secondary_material_content/1.0.0) + +The open availability on GitHub allows companies to combine their own internal target guidance programs with the data models from Catena-X to SMC. + +## End of Life / Dismantling Services + +### Introduction + +Closing Loops, Preserving Resources: Creating tomorrow's EoL landscape and empower the circularity + +As part of the Circularity KIT, we are committed to developing services for the future of the circular economy in the end-of-life (EoL) sector of vehicles. This phase represents an important stage where decisions are made regarding the fate of vehicles and their components after their initial use. Recognizing the immense value of the world's limited resources, we are dedicated to minimizing waste and maximizing resource efficiency. + +One of our key strategies involves creating a framework for an improved communication among all stakeholders involved in the EoL phase. This collaborative approach allows us to consider the needs and requirements of all participants, facilitating the collection and exchange of essential information. Importantly, we view the end of a vehicle's life as the beginning of a new one in the context of resource conservation. + +Our overarching vision is to create a landscape that closes loops and preserves resources, ultimately empowering circularity in the industry. We aspire to provide digitized and scalable EoL services that align with circular economy principles and prioritize the preservation of components and materials. Simultaneously, we are committed to follow present and future changes in laws and regulations, which emphasizes environmentally friendly vehicle disposal and the recovery of critical raw materials (CRMs), aligning with the growing demand for closing component and material loops. + +Our mission centres on empowering EoL and maintenance stakeholders by fostering continuous collaboration within the Catena-X Network and beyond. Through the Circularity KIT working group, we aim to develop and align various means, including data, business, and network models, to empower all stakeholders involved in the EoL phase. This mission is closely tied to our vision of promoting digitized and scalable end-of-life services across the industry while upholding the principles of circular economy. + +Our strategy for achieving these goals involves several key steps. Firstly, we aim to enable EoL service models through data sharing based on digital twins (DT). This approach allows for efficient information sharing in an interoperable, standardized manner, which, in turn, supports dismantling and recycling operations. Furthermore, we are actively engaging with all relevant stakeholders, including policymakers, product designers (for circularity), and EoL service providers, to promote new "R-approaches" and facilitate their implementation. + +Ultimately, our efforts provide essential support for the digitalization and automation of the EoL phase, with the ultimate goal of closing loops in the automotive sector. Through these digitized and scalable EoL services, we aim to contribute significantly to sustainable development and resource conservation, aligning with the principles of the circular economy. + +### Business Context + +#### Data Journey "End-of-Life" + +The "Data Journey" represents the entire process of dismantling an End-of-Life (EoL) vehicle. Each process step is accompanied by CX data models that would be necessary for digitally representing the individual process steps. This enables us to elevate the data journey for the dismantling process to a digital level and to gain an understanding of which data attributes and aspect models are required for each process step. It forms the foundation for the creation of digital EoL-solutions and the use of robotics. + +**Figure 8** +![Data Journey - End of LIfe](resources/adoption-view/figure_dataJourney_EOF.svg) + +Future additions include data models for the following topics: + +- Decommissioning Certificate +- Material for Recycling +- Adress Aspects +- ID Conversion +- Certificate of Dismantler +- Diagnostic Data +- Physical dimensions +- Mandatory dismantling +- Demand request +- Compatibility of components/ Design changes history +- Quality issue history +- Technical drawings & specifications +- PCF Information + +#### User Journey "Certificate of Decomnissioning" + +The user journey "Certificate of Decommissioning" (CoDM) describes the moment at which a vehicle is transferred into the End-of-Life (EoL) phase from the perspective of an authorized collection point for EoL-vehicles, such as an authorized dismantling facility. The CoDM resembles the official Certificate of Destruction (CoD) but marks the starting point of the upcoming CX concept of a digital CoD. + +**Figure 9** + +![User Journey CODM](resources/adoption-view/figure_user_journey_codm.svg) + +##### Data Model and GitHub + +The relevant data model can be found on the following link on GitHub: [https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.decomissioning_certificate/1.0.0](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.decomissioning_certificate/1.0.0) + +The open availability on GitHub allows companies to combine their own internal target guidance programs with the data models from Catena-X to the EoL-Services. + +## CE-Assistant + +### Introduction + +Empowering Circular Economy Decisions: Introducing the Circular Strategy Assistant + +In the dynamic landscape of sustainability and resource conservation, the Circular Strategy Assistant (CE-Assistant) emerges as a pioneering solution, providing decision support for the selection of optimal strategies concerning end-of-life vehicles. At its core, the CE-Assistant tackles the task of evaluating and choosing from a spectrum of R-Strategies—namely Reuse, Remanufacturing, Recycling, and Recovery. + +Rooted within the principles of Catena-X, the CE-Assistant is deeply aligned with a comprehensive assessment process that guides its functionality. This process is chiefly anchored in the Catena-X Digital Twin Framework, which encapsulates the essence of virtual representation and real-world insights. + +Central to this endeavor is the CE-Assistant—a set of standards, aspect models, APIs, system architectures, and decision logics—all designed to foster the development of data-centric, Catena-X compliant decision support systems for Circular Economy Strategies. The core circularity lies in the orchestrated flow of engineering information—a collaborative effort involving entities across the automotive value chain. + +The concept of Digital Twin (DT) serves as the backbone, offering a holistic virtual counterpart of assets. Defined with precision, the DT embodies a set of unique identifiers, an evolving spectrum of aspects, connectivity to diverse data sources, and the capacity to traverse the entire lifecycle of assets, encapsulating both individual and fleet-level knowledge. + +In accordance with IDSA and Gaia-X principles, interconnectivity and data sovereignty, the CE-Assistant thrives on the principles of interoperability, substantiated by the Connector KIT (EDC) and Data Chain KIT (Item Relation Ship, IRS). + +Undeniably, the selection of Circular Economy Strategies necessitates a comprehensive evaluation of emissions, natural resource preservation, energy management, and waste reduction. However, the effectiveness of such evaluation’s hinges on access to granular data encompassing the vehicle’s history, components, materials, and condition. + +This is precisely where the CE-Assistant can help by supporting a user-centered approach that bridges the gap between data availability and informed decision-making. By offering transparency into the environmental implications of diverse circular economy strategies, the CE-Assistant facilitates swifter, well-informed, and efficient decisions rooted in the digital twin's insights. + +### Business Context + +Business Context +The CE-Assistant provides decision support and circular strategies, enabling several key features for businesses: + +1. **Component-Level Decision Support:** The KIT provides decision support for selecting circular strategies at the component level. +2. **Efficient Data-Driven Decisions:** Users can make faster and more efficient decisions based on data analysis. +3. **Enhanced Circularity:** The KIT contributes to increasing the circularity of products and meeting reuse quotas. +4. **Sustainability Milestones:** It helps achieve sustainability indicators and goals. +5. **Transparency on Secondary Materials:** The KIT offers transparency regarding the availability of secondary materials. +6. **Streamlined Vehicle Dismantling:** It optimizes the process of vehicle dismantling for improved resource recovery. + +#### Use Case / Domain Explanation + +The User Journey describes the system interaction of the CE Assistant with the user, the Dismantling Lead, with the aim of providing a recommendation for a component-level circular strategy for end-of-life vehicles. This involves breaking down the process of holistic decision-making into individual process steps and identifying the interaction with the user/system at each process step. + +**Figure 10** + +![Figure UserJourney CE Assistant](resources/adoption-view/figure_userstory_ce_assistant.svg) + +#### Whitepaper + +If you are eager to dive deeper into the world of the CE-Strategy Assistant, including its data provision via the Digital Twin and expert insights on technically feasible circular strategies and environmentally friendly choices, we invite you to explore our informative publications. + +**End-of-life decision support to enable circular economy in the automotive industry based on digital twin data** + +- **Abstract**: With the EU Green Deal and the UN Sustainable Developments Goals, the vision of a greenhouse gas-neutral and resource-efficient economy is already firmly anchored in world politics. In this context, the automotive industry faces many challenges including the increasing scarcity of natural resources, a rising demand in terms of sustainable vehicle design, production and materials sourcing. Due to all this, end-of-life decisions regarding dismantling have become increasingly important. A high proportion of secondary materials will be required in the vehicles of the future. To response to these challenges, companies have turned their focus towards the circular economy as a central approach to close material loops. In the German research project “Catena-X” a new data ecosystem with digital twins is one enabler that is being developed. The digital twins represent a promising approach to the circular economy by ensuring transparent, product-specific and end-to-end data exchange throughout the entire product lifecycle, from the material sourcing to the eventual dismantling and recycling. As one particular and unique solution, a decision framework that facilitates the best circular strategy at the end of a vehicle's life is developed and presented in this paper. The underlying data-driven decision support framework is based on circular economy KPIs. This includes material, components and specific vehicle KPIs to best identify the most suitable circular strategy. The framework was methodologically developed by an interdisciplinary team of partners, who are stakeholders throughout the value chain and participants in the Catena-X project. An integrated approach of user-centered design, an adapted version of the V-model and the Scaled Agile Framework were used for the methodology in the development of the solution. The paper presents the concept of a digital twin for a decision support system, that includes a central decision logic that also includes the relevant KPIs and a survey for evaluating the decision logic utilized with a chosen dismantling company. +- **Link**: [End-of-life decision support to enable circular economy in the automotive industry based on digital twin data - ScienceDirect](https://www.sciencedirect.com/science/article/pii/S2212827123006091) + +**Empowering End-of-Life Vehicle Decision Making with Cross-Company Data Exchange and Data Sovereignty via Catena-X** + +- **Abstract:** The mobility sector is the world’s second-largest producer of energy-related CO2 emissions, and it is facing a global resource shortage. The demand for circular products, the use of secondary materials in future vehicles, and the need for sustainable business models in the mobility sector is increasing. However, a transparent and end-to-end data exchange throughout the entire value network is missing, which is hindering an efficient circular economy. Relevant information on the vehicle, its components and materials at the end of the product life cycle are often missing. In this context, this paper presents a decision support system based on Digital Twin data for a circular economy solution as a software application. It was developed within the German research project Catena-X following an integrated approach of user-centered design, the V-model, and within the Scaled Agile Framework. By combining these methodological approaches, customer-oriented solutions were developed and continuously improved at each stage of development to shorten the time-to-market. Catena-X is based on Gaia-X principles. In Gaia-X, necessary core services are developed, and contraction negotiation for data exchange and usage policies is enabled and implemented. The decision support system provides important information about the exact composition and condition of the vehicle, its components, and its materials. Thus, it helps to improve efficiency, sustainability, and the implementation of the circular economy. The decision support system was tested and validated with a use case that provided Digital Twin data on the end-of-life vehicle. +- **Link**: [Sustainability | Free Full-Text | Empowering End-of-Life Vehicle Decision Making with Cross-Company Data Exchange and Data Sovereignty via Catena-X (mdpi.com)](https://www.mdpi.com/2071-1050/15/9/7187) + +**Digital Twins for Circular Economy - Enabling Decision Support for R-Strategies** + +- **Abstract:** Digital twins (DT) for circular economy (CE) offer a promising approach as part of digital data ecosystems for more sustainable value creation. By mapping and analyzing product, component and material specific data along the lifecycle, it is possible to address current challenges such as climate change and resource scarcity. Within Catena-X, specific solutions based on this cross-company exchanged data and information are developed. Here, the “CE-Assistant” is presented. It is an application, which identifies the best CE-Strategy based on DT data at the end of a vehicle's life. +- **Link:** [OA_Mügge_6-2022 | INDUSTRIE-MANAGEMENT](https://www.industrie-management.de/node/556) + +#### Logic /Schema + +In order to evaluate which R-Strategy can be applied to individual components, instance-specific data must be available. This is ensured using DT data throughout the product lifecycle. Such an DT enables the collection of instance-specific data on the product, and thus provides the missing EoL data for vehicle disassembly. + +Depending on the decision-making step, instance specific data for the vehicle disassembly is partly necessary or product specific data is sufficient. Decision support regarding the best R-Strategy is preceded by the logic for the technical feasibility. Thus, only when the R-Strategy is technically feasible, it must be checked for other indicators. + +The outcome of the technical feasibility is to analyze if an R-Strategy has to be excluded at the beginning based on regulatory requirements regarding an R-Strategy or a defect in functionality of specific components. + +The process is started by entering the vehicle identification number (VIN) into the system, thereby requesting the corresponding Catena-X data. The registered companies in the Catena-X network act as data providers for this vehicle-specific data, as they register respective assets and sub-models. Catena-X Shared Services handle existing data models, contract, usage and access control policies, and ultimately the final data exchange. + +The system shows the first information, such as corresponding vehicle, component and material based on data from the DT. This data is provided for the first overall manual inspection and evaluation. After that, the user selects the most relevant components for the R-Strategy decision. The decision logic is applied for this component and the possible R-Strategies are identified. + +The core process means in a chronological order: The basic reuse-potential, material composition and remaining lifetime in comparison with the specific thresholds and the disassembly capability. + +If one or more of these criteria are not fulfilled, the component will only be assigned to recovery or recycling. If the component qualifies for disassembly, a manual visual inspection and a functional check are conducted. For components, where the visual condition is relevant, such as body parts and interior components, the visual inspection is conducted first. In contrast, components, for which the technical condition is of significant relevance, such as engines and gearboxes, are first subjected to a functional test. Here, the data can also be provided in the Catena-X network as an update of the DT. Thereafter, a quality comparison of the component condition with threshold values takes place. When the quality is insufficient for reuse, the technical check for remanufacturing is carried out chronologically: Assimilability, cleanability and restorability/upgradability. Finally, a possible strategy is given to the user as a result. + +**Figure 11** + +![user story flowchart](resources/adoption-view/figure11.svg) + +## Glossary + +| Term | Definition | Source | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | +| Aggregate State/ State of Matter | State of matter (German: "Aggregatzustand") is one of the distinct forms in which matter can exist. Three states of matter are observable at ambient conditions and free of electrical charge: solid, liquid, gas | State of matter - Wikipedia | +| Base Quantity | The International System of Quantities defines seven base quantities. The set of base quantities is chosen by convention where no base quantity can be expressed in terms of the others, but where every quantity in the system can be expressed in terms of the base quantities. | International System of Quantities - Wikipedia | +| Bio-based Materials | Material of biological origin excluding material embedded in geological formations and/or fossilised | European Commission, Categorisation System for the Circular Economy, doi:10.2777/172132, P. 9 | +| Biomass| Material of biological origin, excluding material embedded in geological formations or transformed material of biological origin, excluding material embedded in geological formations or transformed to fossilized material and excluding peat | DIN ISO 14021| +| By-Product | Substance or object, resulting from a production process, the primary aim of which is not the production of that item, and does not constitute waste (as defined in Directive 2008/98/E on waste) | European Commission, Categorisation System for the Circular Economy, doi:10.2777/172132, P. 9 | +| CAS Number | a unique numerical identifier assigned by the Chemical Abstracts Service (CAS) to every chemical substance described in the open scientific literature. / Except for a small selection of most common substances released under CC-BY-NC license the CAS numbers are a proprietary identification scheme to be licensed from CAS (USA) | CAS Registry Number - Wikipedia | +| Chain-of-Custody approach | Mass balance is one of several well-known chain of custody approaches that can be used to track the flow of materials through the value chain. The total quantity of the content in question is tracked through the production system and the allocation of this content is made to the end products based on verifiable accounting. The goal of this method is to ensure proper accounting and to confirm a link between the incoming content (e.g., "sustainable," "recycled," or "organic" according to some definition) and the eventual outgoing product. | https://www.basf.com/global/documents/de/sustainability/we-source-responsibly/Mass-Balance-White-Paper-2020.pdf | +| Chemical Composition | Chemical composition refers to identity and number of the chemical elements that make up any particular chemical compound. In order to provide unambiguous information, "chemical element" and "chemical compound" must be defined as context. | Chemical composition - Wikipedia | +| Chemical Recycling | Chemical or feedstock recycling refers to the conversion of plastic polymers into their monomers or chemical building blocks or basic chemicals, i. e. depolymerisation by means of thermochemical or chemical processes, although there is currently no uniform, legally binding definition [13]. | Background Paper on Chemical Recycling - German Environmental Agency, Dec 2020 | +| Circular Economy | The circular economy is a model of production and consumption, which involves sharing, leasing, reusing, repairing, refurbishing and recycling existing materials and products as long as possible. In this way, the life cycle of products is extended. | European Parliament | +| Closed-Loop-Recycling | In a closed loop, the secondary material from one product system is either reused in the same product system or used in another product system without changing the inherent properties of the material. | PCF Rulebook | +| Component | Part or small assembly of parts used as part of a larger assembly | Article 2 Definitions 200053EG | +| Compostable | Characteristic of a product, packaging or associated component that allows it to biodegrade, generating a relatively homogeneous and stable humus-like substance. | DIN ISO 14021 | +| Consumer | Any natural person who, in contracts covered by this Directive, is acting for purposes which are outside his trade, business, craft or profession | 2011/83/EU on consumer rights | +| Co-Product | Any two or more products coming from the same unit process or product system. | PCF Rulebook, DIN EN ISO 14067, Feb. 2019, p.22 | +| Degradable | A characteristic of a product or packaging that, with respect to specific conditions, allows it to break down to a specific extent within a given time. | DIN ISO 14021 | +| Disposal | Disposal means any of the applicable operations provided for in Annex IIA to Directive 75/442/EEC, for instance deposit into or onto land, land treatment, deep injection, surface impoundment, release into water body, biological treatment, physico-chemical treatment. | Guideline 2000/53/EG | +| Dismantling ability | The ability of components to be removed from the vehicle. | ISO 22628:2002-02 | +| Dismantling Information | All information necessary for the proper and environmentally sound treatment of an end-of-life vehicle. It is provided to authorized treatment facilities by vehicle manufacturers and suppliers in the form of manuals or electronic media (such as CD-ROMs, online services). | Guideline 2000/53/E | +| Downcycling | Downcycling, or cascading, is the recycling of waste where the recycled material is of lower quality and functionality than the original material. | Downcycling - Wikipedia | +| Ecological Assessment | Compilation and evaluation of the inputs, outputs, and potential environmental impacts of a product system throughout its life cycle | Article 2 Definitions 200053EG | +| Economic operators | Manufacturers, distributors, take-back points, motor vehicle insurance companies, dismantling facilities, shredder plant operators, recovery facilities, recycling facilities, as well as other facilities for the treatment of end-of-life vehicles, including their components and materials. | Guideline 2000/53/EG | +| End-of-Life | The point at which a product or component is taken out of use | Article 2 Definitions 200053EG | +| End-of-Life Vehicle | Vehicles that are considered waste under Article 1 letter a) of Directive 75/442/EC | Article 2 Definitions 200053EG | +| End-of-Waste | The end-of-waste state for waste in Europe reached when the material is no longer considered a waste under the national implementation of the Waste Framework Directive. | PCF Rulebook, EN 15804 | +| Energy recovery | Energy recovery includes any process that refers to the use of waste as a raw material or the treatment of waste that cannot be recycled. The aim is to recover energy from materials and associated with this, to convert them into usable heat, electricity or fuel. | U.S. Environmental Protection Agency (2016) Energy Recovery from Waste | +| Fossil Materials | Fossil raw materials are all raw materials derived from organic material. They include coal, crude oil and natural gas. | Federal Geothermal Office | +| Hazardous substances | Any substance that is classified as hazardous according to Directive 67/548/EEC. | Guideline 2000/53/EG | +| ILCD Format | International Life Cycle Data Format | PCF Rulebook | +| Input | Product, material or energy flow that enters a unit process. | Pathfinder / PCF Rulebook | +| Intermediate Product | Output from a unit process that is input to other unit processes that require further transformation within the system | Article 2 Definitions 200053EG | +| Life Cycle | Consecutive and interlinked stages related to a product, from raw material acquisition or generation from natural resources to end-of-life treatment. | DIN EN ISO 14067, PCF Rulebook | +| Mass | In physics, mass is not the same as weight. Mass is both a property of a physical body and a measure of its resistance to acceleration. For disambiguation see definition of "Weight" below | Wikipedia | +| Mass-Balancing | Considering the output, no physical or chemical difference exists between in-scope and out-of-scope. It involves balancing volume reconciliation to ensure the exact account of volumes of in- and out-of-scope source is maintained along the supply chain, provided that the volume or the ratio of sustainable material integrated is reflected in the product produced and sold to customers. This model requires that a reconciliation period is defined (e.g. a month, a year). | PCF Rulebook | +| Material | Physical good used as input for production processes of goods or services or physical good supplied to a customer as output | Pathfinder / PCF Rulebook | +| Material Declaration | Material declaration (MD) is the process mandated to meet the obligations placed on (automobile) manufacturers, and thus on their suppliers, by national and international standards, laws and regulations. | IMDS Information Pages - Home - IMDS Public Pages (mdsystem.com) | +| Material Details | Collection of material information defined by given context in an information model | Catena-X definition | +| Material Identifier | Material Identifier is a alphanumerical identifier that serves programmatic functions (e.g., as data ID) but also satisfies chemical regulation (see material declaration) under national and international law. | Catena-X definition | +| Material Name | Trivial name (often name of a chemical group) used to denote some material in everyday speech or jargon. Entirely dependent on specific context. | Catena-X definition | +| Material Recovery | Material recovery is recovery by processes in which virgin material of the same substance is replaced or the material remains available for further material use. | Packaging Act § 3 para. 19 | +| Material Type | Groups of materials defined by convention (e.g., IMDS) or ISO Standard (e.g., ISO 62474) in order to simplify communication of relevance of material information (in search or filtering) | IEC 62474 – Material Declaration | +| Mechanical Recycling | End-of-life materials can be processed via collecting, sorting, shredding, melting and transforming it into secondary raw materials for a new application. This form of recycling involves processes in which e.g. the polymer structure is not significantly changed, and plastic is preserved as a material. Thus, in terms of its complexity, mechanical recycling takes place at a lower technical level than chemical recycling. | Mechanical recycling (basf.com) | +Glossary and methods Open-loop recycling | In open-loop recycling, the material is reused in other product systems and is inherent properties are changed (e.g. recycled material may have a different chemical composition, a different chemical structure or a higher concentration of dissolved impurities compared to primary material) | PCF Rulebook +Output | Product, material or energy that leaves a unit process. | Pathfinder / PCF Rulebook +Post-consumer material | Material generated by households or by commercial, industrial and institutional facilities in their role as end-users of the product which can no longer be used for its intended purpose. This includes returns of material from the distribution chain. Post-consumer material can be used in the form of recovered or recycled material as a substitute for primary material. | DIN ISO 14021 +Pre-consumer Material | Material diverted from the waste stream during a manufacturing process. Excluded is reutilization of materials such as rework, regrind or scrap generated in a process and capable of being reclaimed within the same process that generated it. Pre-consumer material can be used in the form of recovered or recycled material as a substitute for primary material. | DIN ISO 14021 +Primary Material | Raw material coming from the environment, as well as materials of differing stages of processing (Raw materials, semi- and finished goods), which are used in the production process for the first time. | +Prevention | Measures to reduce the quantity and environmental harm of end-of-life vehicles, their materials, and substances | Guideline 2000/53/EG +Process | Set of interrelated or interacting activities that transform inputs into outputs. | DIN EN ISO 14067, PCF Rulebook +Producer | The vehicle manufacturer or the commercial importer of a vehicle into an EU Member State | Article 2 Definitions 200053EG +Product | Any good (tangible product) or service (intangible product) | PCF Rulebook +Production | Process of combining various inputs, both material (such as metal, wood, glass, or plastics) and immaterial (such as plans, or knowledge) in order to create output. | Production (economics) - Wikipedia +Production Waste | Waste generated in different industries in connection with production and the opposite to consumption waste, which primarily comprise municipal waste and waste comparable to it. | Production waste | Concepts | Statistics Finland +Raw Material | Primary or secondary material, that is used for production of a product. | Pathfinder / PCF Rulebook +Recoverability | The ability of components and/or materials to be directed to a recovery process from the waste stream. | ISO 22628:2002-02 +Recoverability quote | The percentage of the mass of the new vehicle that can potentially be recovered and/or reused. | ISO 22628:2002-02 +Recovered Material | Material that would have otherwise been disposed of as waste or used for energy recovery, but has instead been collected and recovered [reclaimed] as a material input, in lieu of new primary material, for a recycling or a manufacturing process. | DIN ISO 14021 +Recyclate | Secondary raw materials that have been generated by means of the recovery of waste or are generated in the disposal of waste and are suitable for the production of products. | KrWG, Framework Waste Directive +Recyclability quote | The percentage of the mass of the new vehicle that can potentially be recycled and/or reused. | ISO 22628:2002-02 +Recycled Content | Proportion, by mass, of recycled material in a product or packaging. The recycled content is the sum of pre-consumer material and post-consumer material. | DIN ISO 14021 +Recycled Material | Material, that has been reprocessed from (reclaimed) material by means of a manufacturing process and made into a final product or into a component for incorporation into a product. | DIN ISO 14021 +Recycling | Recycling is the process of collecting, sorting, and processing waste to release materials that can be reused for their original purpose or other purposes, except for the energy recovery. Energy recovery is the use of combustible waste for energy production by direct combustion with or without other types of waste, but with the recovery of heat. | DIRECTIVE 2002/96/EC +Reduce | Increase efficiency in product manufacture or use by consuming fewer natural resources and materials | European Commission, Categorization System for the Circular Economy, doi:10.2777/172131, p. 7 +Refurbish | Restore an old product and bring it up to date (to specified quality level) | European Commission, Categorization System for the Circular Economy, doi:10.2777/172131, p. 7 +Refurbishment | Includes the same process steps as remanufacturing, that is repairing, restoring, rebuilding and/or replacing. A refurbished product is not comparable to a new one but has been updated to a specific quality level and should be fully functional. | Refurbishing – Wikipedia +Refuse | Make product redundant by abandoning its function or by offering the same function by a radically different (e.g. digital) product or service | European Commission, Categorization System for the Circular Economy, doi:10.2777/172131, p. 7 +Remanufacture | Use parts of a discarded product in a new product with the same function (and as-new-condition) | European Commission, Categorization System for the Circular Economy, doi:10.2777/172131, p. 7 +Remanufacturing | Remanufacturing is a standardized industrial process that restores used products to their original performance level or better, with a warranty equivalent to or surpassing that of newly manufactured products. The remanufacturing effort includes dismantling the product, restoring and replacing components, and testing individual parts and the whole product to ensure it meets its original design and performance specifications, as seen from the customer’s perspective. | BS 8887-2:2009 +Repair | Repair is the process of returning a faulty or broken product or component to a usable state. The effort put into the repair is minimal and only addresses the specified fault to ensure the useability of the product; however, the performance of the repaired part may not be guaranteed. The warranty for a repaired product is generally less than that of a new or remanufactured product and may only apply to the replaced or repaired component | BS 8887-2:2009 +Repurpose | Use a redundant product or its parts in a new product with different function | European Commission, Categorization System for the Circular Economy, doi:10.2777/172131, p. 7 +Ressource (Rohstoff) | Resource that is used or can be used in a process. A resource can be of a material or immaterial nature.When the term "resource" is used in the context of environmental science, it refers to a "natural resource".Unlike here, the term resource is often used very narrowly in the sense of raw materials. | Translated from BMW Proposal +Resource Protection | Economical use of natural resources with the aim of preserving their quantity and function. | Translated from BMW Proposal +Rethink | Make product use more intensive (e.g. through product-as-a service, reuse and sharing models or by putting multi-functional products on the market) | European Commission, Categorization System for the Circular Economy, doi:10.2777/172131, p. 7 +R-Strategies | R-Strategies, as part of circular economy, encompass a range of sustainable resource management approaches that prioritize actions such as reuse, remanufacturing, recycling, and recovery. These strategies aim to extend the life of products and materials, reduce waste generation, and minimize environmental impacts by promoting the efficient and responsible use of resources throughout their life cycle, thus contributing to the implementation of the circular economy model. | Inspired by Potting et al.: Potting, J.; Hekkert, M.P.; Worrell, E.; Hanemaaijer, A. Circular Economy: Measuring Innovation in the Product Chain; Planbureau voor de Leefomgeving: Hague, The Netherlands, 2017. +Re-use | Re-use of a product which is still in good condition and fulfils its original function (and is not waste) for the same purpose for which it was conceived | European Commission, Categorization System for the Circular Economy, doi:10.2777/172131, p. 7 +Reusability | The ability of components to be diverted from the waste stream and reused. | ISO 22628:2002-02 +Reutilization | Reutilization of materials such as rework, regrind, or scrap materials generated within the process and capable of being reused within the same process that generated it. | Adapted from ISO 14021 +Scrap | Iron and steel material in metallic form that is recovered in multiple life cycle stages, including steel production processes, the manufacturing processes of final products and the end of life of final products | Adapted from ISO 20915:2018 +Secondary Raw Material | Secondary raw materials are recycled materials that can be used in manufacturing processes instead of or alongside virgin raw materials. | European Parliament +Secondary Raw Material Content | The secondary raw material content is calculated in proportion of secondary material and product weight. | +Shredder | Any facility that is used to crush or shred end-of-life vehicles, including for the purpose of recovering directly reusable metal scrap. | Guideline 2000/53/EG +Treatment | Activities carried out after the end-of-life vehicle is handed over to a facility for the elimination of pollutants, dismantling, coarse crushing, shredding, recycling or preparation for disposal of shredder waste, as well as other activities related to the recycling and/or disposal of end-of-life vehicles and end-of-life vehicle components. | Guideline 2000/53/EG +Vehicle | Vehicles of classes M1 or N1 according to Annex II Section A of Directive 70/156/EC and three-wheeled vehicles according to Directive 92/61/EC, however excluding three-wheeled motorcycles. | Article 2 Definitions 200053EG +Vehicle mass | Unladen mass of the operational vehicle (code: ISO-M06), according to DIN ISO 1176, term 4.6: unladen mass of the dry vehicle (term 4.5) plus the mass of lubricants, coolant (if required), washing fluids, fuel (tank filled to at least 90% of the manufacturer's specified capacity), spare wheel(s), fire extinguisher, standard spare parts, wheel chocks, standard tool kit. | ISO 22628:2002-02 +Waste | Materials, co-products, products, or emissions without economic value that the holder intends or is required to dispose of. | DIN EN ISO 14067, PCF Rulebook, Pathfinder +Waste Prevention | Waste prevention is any measure taken to ensure that a substance, material or article does not become a waste. It is used to reduce the amount of waste, the harmful effects of the waste on people and the environment, or the content of harmful substances in materials and articles. | Closed Substance Cycle Waste Management Act +Weight | In science and engineering, the weight of an object is the _force_ acting on the object due to gravity. For disambiguation see definition of "Mass" above | Mass - Wikipedia + +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- Copyright (c) 2023 BMW AG +- Copyright (c) 2023 Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V. (represented by Fraunhofer IPK) +- Copyright (c) 2023 BASF SE +- Copyright (c) 2023 SAP Deutschland SE & Co.KG +- Copyright (c) 2023 T-Systems International GmbH +- Copyright (c) 2023 LRP Auto-Recycling Leipzig GmbH +- Copyright (c) 2023 Robert Bosch GmbH +- Copyright (c) 2023 tec4U-Ingenieurgesellschaft mbH +- Copyright (c) 2023 Contributors to the Eclipse Foundation diff --git a/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/page-documentation.md b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/page-documentation.md new file mode 100644 index 00000000000..fc8b3778abf --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/page-documentation.md @@ -0,0 +1,17 @@ +--- +title: Documentation +--- + +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- Copyright (c) 2023 BMW AG +- Copyright (c) 2023 Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V. (represented by Fraunhofer IPK) +- Copyright (c) 2023 BASF SE +- Copyright (c) 2023 SAP Deutschland SE & Co.KG +- Copyright (c) 2023 T-Systems International GmbH +- Copyright (c) 2023 LRP Auto-Recycling Leipzig GmbH +- Copyright (c) 2023 Robert Bosch GmbH +- Copyright (c) 2023 tec4U-Ingenieurgesellschaft mbH +- Copyright (c) 2023 Contributors to the Eclipse Foundation diff --git a/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/page-software-development-view.md b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/page-software-development-view.md new file mode 100644 index 00000000000..342adfa1e5e --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/page-software-development-view.md @@ -0,0 +1,17 @@ +--- +title: Development View +--- + +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- Copyright (c) 2023 BMW AG +- Copyright (c) 2023 Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V. (represented by Fraunhofer IPK) +- Copyright (c) 2023 BASF SE +- Copyright (c) 2023 SAP Deutschland SE & Co.KG +- Copyright (c) 2023 T-Systems International GmbH +- Copyright (c) 2023 LRP Auto-Recycling Leipzig GmbH +- Copyright (c) 2023 Robert Bosch GmbH +- Copyright (c) 2023 tec4U-Ingenieurgesellschaft mbH +- Copyright (c) 2023 Contributors to the Eclipse Foundation diff --git a/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/page-software-operation-view.md b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/page-software-operation-view.md new file mode 100644 index 00000000000..0d118a86937 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/page-software-operation-view.md @@ -0,0 +1,17 @@ +--- +title: Software Operation View +--- + +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- Copyright (c) 2023 BMW AG +- Copyright (c) 2023 Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V. (represented by Fraunhofer IPK) +- Copyright (c) 2023 BASF SE +- Copyright (c) 2023 SAP Deutschland SE & Co.KG +- Copyright (c) 2023 T-Systems International GmbH +- Copyright (c) 2023 LRP Auto-Recycling Leipzig GmbH +- Copyright (c) 2023 Robert Bosch GmbH +- Copyright (c) 2023 tec4U-Ingenieurgesellschaft mbH +- Copyright (c) 2023 Contributors to the Eclipse Foundation diff --git a/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/page_changelog.md b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/page_changelog.md new file mode 100644 index 00000000000..80dace7433a --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/page_changelog.md @@ -0,0 +1,16 @@ +--- +id: Changelog Circularity KIT +title: Changelog +description: 'Circularity KIT' +sidebar_position: 1 +--- + +## [0.1.0] - 2023-12-08 + +### Added + +- add Circularity KIT to Tractus-X Repository + +### Changed + +### Removed \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/Relationship_between_Material_Characteristics.svg b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/Relationship_between_Material_Characteristics.svg new file mode 100644 index 00000000000..713d1b6224c --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/Relationship_between_Material_Characteristics.svg @@ -0,0 +1 @@ +Material previouslyin automotiveindustryMaterialCharacteristicsPrimary bio-basedmaterialPrimary inorganicor fossil-basedmaterialSecondary bio-based materialBio-based/Organic materialInorganic or fossil-based materialSecondaryinorganic or fossil-based materialReutilizationmaterial contentPost-Consumermaterial contentPre-Consumermaterial contentChemical recyclingMechanicalrecyclingChemical recyclingMechanicalrecyclingMass-balanced?Mass-balanced?Mass-balanced?RelationshipbetweenMaterialCharacteristics \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/circularity_kit_wheel.svg b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/circularity_kit_wheel.svg new file mode 100644 index 00000000000..fd70f4a359c --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/circularity_kit_wheel.svg @@ -0,0 +1 @@ +Circularity KIT WheelMaterialAccountingSecondaryMaterial ContentCE-AssistantEoL/DismantlingServicesMaterial Planning &SourcingEoL ServicesUse Phase &ServicingProductionLogisticsProduct Design &Development \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/circularity_kit_wheel.svg.license b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/circularity_kit_wheel.svg.license new file mode 100644 index 00000000000..9ffcef3ef98 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/circularity_kit_wheel.svg.license @@ -0,0 +1,13 @@ +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- Copyright (c) 2023 BMW AG +- Copyright (c) 2023 Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V. (represented by Fraunhofer IPK) +- Copyright (c) 2023 BASF SE +- Copyright (c) 2023 SAP Deutschland SE & Co.KG +- Copyright (c) 2023 T-Systems International GmbH +- Copyright (c) 2023 LRP Auto-Recycling Leipzig GmbH +- Copyright (c) 2023 Robert Bosch GmbH +- Copyright (c) 2023 tec4U-Ingenieurgesellschaft mbH +- Copyright (c) 2023 Contributors to the Eclipse Foundation diff --git a/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/custody_models.svg b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/custody_models.svg new file mode 100644 index 00000000000..dda1316d865 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/custody_models.svg @@ -0,0 +1 @@ +Identity preservationOutInMass BalanceSegregationBook & ClaimProcess \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/custody_models.svg.license b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/custody_models.svg.license new file mode 100644 index 00000000000..9ffcef3ef98 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/custody_models.svg.license @@ -0,0 +1,13 @@ +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- Copyright (c) 2023 BMW AG +- Copyright (c) 2023 Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V. (represented by Fraunhofer IPK) +- Copyright (c) 2023 BASF SE +- Copyright (c) 2023 SAP Deutschland SE & Co.KG +- Copyright (c) 2023 T-Systems International GmbH +- Copyright (c) 2023 LRP Auto-Recycling Leipzig GmbH +- Copyright (c) 2023 Robert Bosch GmbH +- Copyright (c) 2023 tec4U-Ingenieurgesellschaft mbH +- Copyright (c) 2023 Contributors to the Eclipse Foundation diff --git a/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/datapoints_along_valuechain.svg b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/datapoints_along_valuechain.svg new file mode 100644 index 00000000000..17fb5a9a5a5 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/datapoints_along_valuechain.svg @@ -0,0 +1 @@ +1Scrap Booking OEM2Scrap outbound OEM3Scrap inbound Recycler4Secondary Material inbound Warehouse Recycler5Secondary Material outbound Recycler6Secondary Material Inbound Supplier7Goods outbound containingSecondary Material8Goods inbound OEM9Assembly of components OEM,Secondary Material Contentto a Digital Product Pass© 2023 Catena-X or a Catena-X affiliate company. All rights reserved.Data Points along the Value Chain \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/datapoints_along_valuechain.svg.license b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/datapoints_along_valuechain.svg.license new file mode 100644 index 00000000000..9ffcef3ef98 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/datapoints_along_valuechain.svg.license @@ -0,0 +1,13 @@ +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- Copyright (c) 2023 BMW AG +- Copyright (c) 2023 Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V. (represented by Fraunhofer IPK) +- Copyright (c) 2023 BASF SE +- Copyright (c) 2023 SAP Deutschland SE & Co.KG +- Copyright (c) 2023 T-Systems International GmbH +- Copyright (c) 2023 LRP Auto-Recycling Leipzig GmbH +- Copyright (c) 2023 Robert Bosch GmbH +- Copyright (c) 2023 tec4U-Ingenieurgesellschaft mbH +- Copyright (c) 2023 Contributors to the Eclipse Foundation diff --git a/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/eq_post_consumer_material_content.svg b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/eq_post_consumer_material_content.svg new file mode 100644 index 00000000000..fdde1843de1 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/eq_post_consumer_material_content.svg @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/eq_pre_consumer_material_content.svg b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/eq_pre_consumer_material_content.svg new file mode 100644 index 00000000000..a4a7e10ac50 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/eq_pre_consumer_material_content.svg @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/equation_Reutilization_content.svg b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/equation_Reutilization_content.svg new file mode 100644 index 00000000000..ec6acddff74 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/equation_Reutilization_content.svg @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/equation_SMC.svg b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/equation_SMC.svg new file mode 100644 index 00000000000..dc6e483e2fa --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/equation_SMC.svg @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/equation_SMQ.svg b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/equation_SMQ.svg new file mode 100644 index 00000000000..47e467f0a69 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/equation_SMQ.svg @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/figure11.svg b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/figure11.svg new file mode 100644 index 00000000000..fa1369d3daf --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/figure11.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/figure7.svg b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/figure7.svg new file mode 100644 index 00000000000..12f7541730d --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/figure7.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/figure_dataJourney_EOF.svg b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/figure_dataJourney_EOF.svg new file mode 100644 index 00000000000..d9141023833 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/figure_dataJourney_EOF.svg @@ -0,0 +1 @@ +1. Evaluation of vehicle value1.1 Read vehicle parameters1.2 Visual inspection2. Vehicle acceptanceVehicle arrival2.1 Vehicle reception and registration in the system3. Vehicle detectionAcceptance and dismantling order creation3.1 Vehicle acceptance3.2Decomissioningcertificate creation3.3 Vehicle dismantling strategy definition3.4 Dismantling order creation4. Dismantling HSV (optional)HV battery dismantling4.1 HV Battery health status analysis4.2 HV Battery dismounting from vehicle4.3 Battery shipment for recyclingCX0038: Fleet Diagnostic dataCX0035: Marketplace OfferCX0057: Remaining Useful LifeCX0033: Return requestCX0034: Battery PassCX0030: BoM as specifiedCX0039: Fleet Claim DataCX0066: End of Life Vehicle ComplianceCX0035: Marketplace OfferCX0032: Part as specifiedCX0037: Vehicle Product DescriptionCX0057: Remaining Useful LifeCX0034: Battery passCX0038: Fleet Diagnostic Data5. Neutralizing pyrotechnicsAir bags neutralization5.1 Vehicle parameters read5.2 Neutralizing pyrotechnics6. Draining6.1 Vehicle liquids strategy definition6.2 Draining7. Main disassembly7.1 Predefined parts disassembly (re-use, re-manufacture)7.2 Parts quality evaluation7.3 Parts registration in the system8. Further mandatory dismantling8.1 Further mandatory dismantling (due to legal requirements some parts needto be removed before shredding and treated in a different way)8.2 Registration in the systemCX0021: BatchCX0021: BatchCX0032: Parts as specifiedCX0020: Assembly part relationshipCX0021: Batch9. Core scrap removal9.1 core scrap removal9.2 Registration in the system10. Vehicle compaction10.1 Vehicle pressing10.2 Registration in the system11. Shredding11.1 Shredding11.2 Material separation11.3 Material quality/parameters check11.4 Registration in the system12. Material recycling12.1 Material recycling12.2 Recycled material registration in the systemCX0021: BatchCX0066: End of life of vehicle complianceCX0034: Battery passCX0034: Battery pass13. Marketplace & Sales9.1 core scrap removal9.2 Registration in the systemCX0035: Market place offerCX0032: Part as specifiedCX0037: Product description/CX0057: Remaining useful lifeData JourneyEnd of Life \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/figure_dataJourney_EOF.svg.license b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/figure_dataJourney_EOF.svg.license new file mode 100644 index 00000000000..9ffcef3ef98 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/figure_dataJourney_EOF.svg.license @@ -0,0 +1,13 @@ +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- Copyright (c) 2023 BMW AG +- Copyright (c) 2023 Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V. (represented by Fraunhofer IPK) +- Copyright (c) 2023 BASF SE +- Copyright (c) 2023 SAP Deutschland SE & Co.KG +- Copyright (c) 2023 T-Systems International GmbH +- Copyright (c) 2023 LRP Auto-Recycling Leipzig GmbH +- Copyright (c) 2023 Robert Bosch GmbH +- Copyright (c) 2023 tec4U-Ingenieurgesellschaft mbH +- Copyright (c) 2023 Contributors to the Eclipse Foundation diff --git a/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/figure_user_journey_codm.svg b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/figure_user_journey_codm.svg new file mode 100644 index 00000000000..be0629a7112 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/figure_user_journey_codm.svg @@ -0,0 +1 @@ +© 2023 Catena-X or a Catena-X affiliate company. All rights reserved.7User JourneyCertificate of Decommissioning (CODM)Vehicle submissionThe vehicle is delivered to an authorized vehicle acceptance center(e.g. dismantling facility) by its last ownerData acquisitionVerification and recording of data by the acceptance center-VIN, ID Document of the ownerCreation of Certificate of DecommissioningThe authorized acceptance center issues the CoDM.This confirms that a vehicle with a specific VIN has reached the end of its first life and cannot be resold.Confirmation of DestructionThe last vehicle owner receives a confirmation that his vehicle has been transferred to theendof life.Transmission of the CoDM to the relevant authoritiesAfter a security period of 7 days, the CoDM is transmitted to the relevant vehicle registration authority. At this point, the option for an automated vehicle deregistration becomesavailable. \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/figure_user_journey_codm.svg.license b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/figure_user_journey_codm.svg.license new file mode 100644 index 00000000000..9ffcef3ef98 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/figure_user_journey_codm.svg.license @@ -0,0 +1,13 @@ +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- Copyright (c) 2023 BMW AG +- Copyright (c) 2023 Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V. (represented by Fraunhofer IPK) +- Copyright (c) 2023 BASF SE +- Copyright (c) 2023 SAP Deutschland SE & Co.KG +- Copyright (c) 2023 T-Systems International GmbH +- Copyright (c) 2023 LRP Auto-Recycling Leipzig GmbH +- Copyright (c) 2023 Robert Bosch GmbH +- Copyright (c) 2023 tec4U-Ingenieurgesellschaft mbH +- Copyright (c) 2023 Contributors to the Eclipse Foundation diff --git a/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/figure_userstory_ce_assistant.svg b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/figure_userstory_ce_assistant.svg new file mode 100644 index 00000000000..83d7697e113 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/figure_userstory_ce_assistant.svg @@ -0,0 +1 @@ +© 2023 Catena-X or a Catena-X affiliate company. All rights reserved.8User JourneyCE AssistantVehicleLookupDismantler requests general information about the individual vehicle and its components via VINComponent SelectionDismantler selects one component for detailed information and analysisData Provisioning of Component and MaterialE-Assistant requests detailed information about the component and contained materialsTechnical AssessmentCE-Assistant calculates the technical feasibility of different R-Strategies for the component based on standardized decision logic.Environmental AssessmentCE-Assistant calculates environmental impact of different (technically feasible) R-Strategies based on an LCA of subsequent processes and recommends an optimal R-Strategy.FeedbackCE-Assistant updates Digital Twin of component with calculation result and selected R-strategy to allow for further monitoring,digital traceability for second life and feedback to design. \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/figure_userstory_ce_assistant.svg.license b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/figure_userstory_ce_assistant.svg.license new file mode 100644 index 00000000000..9ffcef3ef98 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/figure_userstory_ce_assistant.svg.license @@ -0,0 +1,13 @@ +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- Copyright (c) 2023 BMW AG +- Copyright (c) 2023 Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V. (represented by Fraunhofer IPK) +- Copyright (c) 2023 BASF SE +- Copyright (c) 2023 SAP Deutschland SE & Co.KG +- Copyright (c) 2023 T-Systems International GmbH +- Copyright (c) 2023 LRP Auto-Recycling Leipzig GmbH +- Copyright (c) 2023 Robert Bosch GmbH +- Copyright (c) 2023 tec4U-Ingenieurgesellschaft mbH +- Copyright (c) 2023 Contributors to the Eclipse Foundation diff --git a/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/material_charactersitics.svg b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/material_charactersitics.svg new file mode 100644 index 00000000000..c74039e5531 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/material_charactersitics.svg @@ -0,0 +1 @@ +MaterialCharacteristicsPrimary inorganicor fossil-basedmaterial80% Inorganic orfossil-basedmaterial50% Secondaryinorganic or fossil-based materialReutilizationmaterial content50% Post-Consumer materialcontentPre-Consumermaterial contentChemical recycling25% Mechanicalrecycling(yes/no, %)Mass-balanced?Amount of mechanicalrecycling of post-consumer materialcontent:80% * 50% * 25% * 25% =5%Example Calculation based onMaterialCharacteristics \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/material_charactersitics.svg.license b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/material_charactersitics.svg.license new file mode 100644 index 00000000000..9ffcef3ef98 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/material_charactersitics.svg.license @@ -0,0 +1,13 @@ +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- Copyright (c) 2023 BMW AG +- Copyright (c) 2023 Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V. (represented by Fraunhofer IPK) +- Copyright (c) 2023 BASF SE +- Copyright (c) 2023 SAP Deutschland SE & Co.KG +- Copyright (c) 2023 T-Systems International GmbH +- Copyright (c) 2023 LRP Auto-Recycling Leipzig GmbH +- Copyright (c) 2023 Robert Bosch GmbH +- Copyright (c) 2023 tec4U-Ingenieurgesellschaft mbH +- Copyright (c) 2023 Contributors to the Eclipse Foundation diff --git a/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/overview_material_flow.svg b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/overview_material_flow.svg new file mode 100644 index 00000000000..30f68afbb37 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/overview_material_flow.svg @@ -0,0 +1 @@ +YOUR MATERIAL ACCOUNTOEMShredderRecyclerOtherindustriesAluSteelLithiumOtherDismantlerSupplierOverview Material Flow \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/overview_material_flow.svg.license b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/overview_material_flow.svg.license new file mode 100644 index 00000000000..9ffcef3ef98 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/overview_material_flow.svg.license @@ -0,0 +1,13 @@ +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- Copyright (c) 2023 BMW AG +- Copyright (c) 2023 Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V. (represented by Fraunhofer IPK) +- Copyright (c) 2023 BASF SE +- Copyright (c) 2023 SAP Deutschland SE & Co.KG +- Copyright (c) 2023 T-Systems International GmbH +- Copyright (c) 2023 LRP Auto-Recycling Leipzig GmbH +- Copyright (c) 2023 Robert Bosch GmbH +- Copyright (c) 2023 tec4U-Ingenieurgesellschaft mbH +- Copyright (c) 2023 Contributors to the Eclipse Foundation diff --git a/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/userJourney_smc.svg b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/userJourney_smc.svg new file mode 100644 index 00000000000..bc9d8c03cbe --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/userJourney_smc.svg @@ -0,0 +1 @@ +© 2023 Catena-X or a Catena-X affiliate company. All rights reserved.9User JourneySMCTier nProduct Development:Specifies targets for secondary material content on component levelPurchasing:Transcription of requirements to tier n+1 suppliers‘ perspectiveTier n-1Sales:Receives datarequest for secondary material content on component level, Translation of secondary material content requirements for productdevelopmentProduct Development:Specifies targets for secondary material content on component levelPurchasing:Transcription of requirements to tier n-2 suppliers‘ perspectiveTier n-2 \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/userJourney_smc.svg.license b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/userJourney_smc.svg.license new file mode 100644 index 00000000000..9ffcef3ef98 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Circularity_KIT/resources/adoption-view/userJourney_smc.svg.license @@ -0,0 +1,13 @@ +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- Copyright (c) 2023 BMW AG +- Copyright (c) 2023 Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V. (represented by Fraunhofer IPK) +- Copyright (c) 2023 BASF SE +- Copyright (c) 2023 SAP Deutschland SE & Co.KG +- Copyright (c) 2023 T-Systems International GmbH +- Copyright (c) 2023 LRP Auto-Recycling Leipzig GmbH +- Copyright (c) 2023 Robert Bosch GmbH +- Copyright (c) 2023 tec4U-Ingenieurgesellschaft mbH +- Copyright (c) 2023 Contributors to the Eclipse Foundation diff --git a/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Documentation/admin_guide.md b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Documentation/admin_guide.md new file mode 100644 index 00000000000..870c52e0cf2 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Documentation/admin_guide.md @@ -0,0 +1,721 @@ +--- +id: irs_admin_guide +title: Administration Guide +description: 'Administration Guide' +sidebar_position: 3 +--- + +![Datachain kit banner](@site/static/img/DataChainKitIcon.png) + +### Data Chain KIT + +## System Overview + +The deployment contains the components required to connect the IRS to an existing Catena-X network. This includes: + +* IRS with Minio - part of the "irs-helm" Helm chart +* EDC Consumer (controlplane & dataplane) - part of the "irs-edc-consumer" Helm chart + +Everything else needs to be provided externally. + +![adminguide_000](https://eclipse-tractusx.github.io/item-relationship-service/docs/assets/adminguide/adminguide_000.png) + +## Installation + +The IRS Helm repository can be found here: + + +Use the latest release of the "irs-helm" chart. +It contains all required dependencies. + +If you also want to set up your own EDC consumer, use the "irs-edc-consumer" chart. + +Supply the required configuration properties (see chapter [Configuration](configuration.adoc#_configuration)) in a values.yaml file or override the settings directly. + +### Deployment using Helm + +Add the IRS Helm repository: + +$ helm repo add irs + +Then install the Helm chart into your cluster: + +$ helm install -f your-values.yaml irs-app irs/irs-helm + +### Deployment using ArgoCD + +Create a new Helm chart and use the IRS as a dependency. + +```yaml +dependencies: + - name: irs-helm + repository: https://eclipse-tractusx.github.io/item-relationship-service + version: 3.x.x + - name: irs-edc-consumer # optional + repository: https://eclipse-tractusx.github.io/item-relationship-service + version: 1.x.x + +``` + +Then provide your configuration as the values.yaml of that chart. + +Create a new application in ArgoCD and point it to your repository / Helm chart folder. + +## Configuration + +Take the following template and adjust the configuration parameters (<placeholders> mark the relevant spots). +You can define the URLs as well as most of the secrets yourself. + +The Keycloak, DAPS and Vault configuration / secrets depend on your setup and might need to be provided externally. + +## Spring Configuration + +The IRS application is configured using the Spring configuration mechanism. The main configuration file is the ``application.yaml``. + +```yaml +server: + port: 8080 # The port the main application API listens on + trustedPort: ${SERVER_TRUSTED_PORT:} # The port used for the unsecured, internal API - if empty, the main port is used + +spring: + application: + name: item-relationship-service + security: + oauth2: + client: + registration: + keycloak: + authorization-grant-type: client_credentials + client-id: ${KEYCLOAK_OAUTH2_CLIENT_ID} # OAuth2 client ID used to authenticate with the IAM + client-secret: ${KEYCLOAK_OAUTH2_CLIENT_SECRET} # OAuth2 client secret used to authenticate with the IAM + provider: + keycloak: + token-uri: ${KEYCLOAK_OAUTH2_CLIENT_TOKEN_URI:https://default} # OAuth2 endpoint to request tokens using the client credentials + resourceserver: + jwt: + jwk-set-uri: ${KEYCLOAK_OAUTH2_JWK_SET_URI:https://default} # OAuth2 endpoint to request the JWK set + +management: # Spring management API config, see https://spring.io/guides/gs/centralized-configuration/ + endpoints: + web: + exposure: + include: health, threaddump, loggers, prometheus, info, metrics + endpoint: + health: + probes: + enabled: true + group: + readiness: + include: readinessState, diskSpace + show-details: always + health: + livenessstate: + enabled: true + readinessstate: + enabled: true + metrics: + distribution: + percentiles-histogram: + http: true + tags: + application: ${spring.application.name} + server: + port: 4004 + +logging: + pattern: + console: "%d %-5level %logger : %msg%n" + level: + root: WARN + org.springframework: INFO + org.eclipse.tractusx.irs: INFO + +springdoc: # API docs configuration + api-docs: + path: /api/api-docs + swagger-ui: + path: /api/swagger-ui + writer-with-order-by-keys: true + +irs: # Application config + apiUrl: "${IRS_API_URL:http://localhost:8080}" # Public URL of the application, used in Swagger UI + job: + callback: + timeout: + read: PT90S # HTTP read timeout for the Job API callback + connect: PT90S # HTTP connect timeout for the Job API callback + cleanup: # Determines how often the JobStore is being cleaned up. Different schedulers for completed and failed jobs. + scheduler: + # ┌───────────── second (0-59) + # │ ┌───────────── minute (0 - 59) + # │ │ ┌───────────── hour (0 - 23) + # │ │ │ ┌───────────── day of the month (1 - 31) + # │ │ │ │ ┌───────────── month (1 - 12) (or JAN-DEC) + # │ │ │ │ │ ┌───────────── day of the week (0 - 7) + # │ │ │ │ │ │ (or MON-SUN -- 0 or 7 is Sunday) + # │ │ │ │ │ │ + completed: 0 0 * * * * # every hour + failed: 0 0 * * * * # every hour + jobstore: + ttl: # Determines how long jobs are stored in the respective state. After the TTL has expired, the job will be removed by the cleanup scheduler. + failed: P7D # ISO 8601 Duration + completed: P7D # ISO 8601 Duration + cron: + expression: "*/10 * * * * ?" # Determines how often the number of stored jobs is updated in the metrics API. + +blobstore: + endpoint: "${MINIO_URL}" # S3 compatible API endpoint (e.g. Minio) + accessKey: "${MINIO_ACCESS_KEY}" # S3 access key + secretKey: "${MINIO_SECRET_KEY}" # S3 secret key + bucketName: irsbucket # the name of the S3 bucket to be created / used by the IRS + +resilience4j: + retry: # REST client retry configuration + configs: + default: + maxAttempts: 3 # How often failed REST requests will be retried + waitDuration: 10s # How long to wait between each retry + enableExponentialBackoff: true # Whether subsequent retries will delay exponentially or not + exponentialBackoffMultiplier: 2 # Multiplier for the exponential delay + ignore-exceptions: # Do not retry on the listed exceptions + - org.springframework.web.client.HttpClientErrorException.NotFound + instances: + registry: + baseConfig: default + + +edc: + controlplane: + request-ttl: ${EDC_CONTROLPLANE_REQUEST_TTL:PT10M} # How long to wait for an async EDC negotiation request to finish, ISO 8601 Duration + endpoint: + data: ${EDC_CONTROLPLANE_ENDPOINT_DATA:} # URL of the EDC consumer controlplane data endpoint + provider-suffix: ${EDC_CONTROLPLANE_PROVIDER_SUFFIX:/api/v1/ids/data} # Suffix to add to data requests to the EDC provider controlplane + catalog-limit: ${EDC_CONTROLPLANE_CATALOG_LIMIT:1000} # Max number of items to fetch from the EDC provider catalog + catalog-page-size: ${EDC_CONTROLPLANE_CATALOG_PAGE_SIZE:50} # Number of items to fetch at one page from the EDC provider catalog when using pagination + api-key: + header: ${EDC_API_KEY_HEADER:} # API header key to use in communication with the EDC consumer controlplane + secret: ${EDC_API_KEY_SECRET:} # API header secret to use in communication with the EDC consumer controlplane + datareference: + storage: + duration: PT1H # Time after which stored data references will be cleaned up, ISO 8601 Duration + + submodel: + request-ttl: ${EDC_SUBMODEL_REQUEST_TTL:PT10M} # How long to wait for an async EDC submodel retrieval to finish, ISO 8601 Duration + path: ${EDC_SUBMODEL_PATH:/submodel} # The path to append to the submodel data reference endpoint + urn-prefix: ${EDC_SUBMODEL_URN_PREFIX:/urn} # A prefix used to identify URNs correctly in the submodel endpoint address + timeout: + read: PT90S # HTTP read timeout for the submodel client + connect: PT90S # HTTP connect timeout for the submodel client + + catalog: + cache: + enabled: true # Set to false to disable caching + ttl: P1D # Time after which a cached Item is no longer valid and the real catalog is called instead + maxCachedItems: 64000 # Maximum amount of cached catalog items + +digitalTwinRegistry: + descriptorEndpoint: ${DIGITALTWINREGISTRY_DESCRIPTOR_URL:} # The endpoint to retrieve AAS descriptors from the DTR, must contain the placeholder {aasIdentifier} + shellLookupEndpoint: ${DIGITALTWINREGISTRY_SHELL_LOOKUP_URL:} # The endpoint to lookup shells from the DTR, must contain the placeholder {assetIds} + oAuthClientId: keycloak # ID of the OAuth2 client registration to use, see config spring.security.oauth2.client + timeout: + read: PT90S # HTTP read timeout for the digital twin registry client + connect: PT90S # HTTP connect timeout for the digital twin registry client + +semanticshub: + # The endpoint to retrieve the json schema of a model from the semantic hub. If specified, must contain the placeholder {urn}. + modelJsonSchemaEndpoint: "${SEMANTICSHUB_URL:}" + url: "" + + # Path to directory on filesystem where semantic models can be loaded from. + # The filenames inside the directory must match the Base64 encoded URNs of the models. + localModelDirectory: "" + cleanup: + # ┌───────────── second (0-59) + # │ ┌───────────── minute (0 - 59) + # │ │ ┌───────────── hour (0 - 23) + # │ │ │ ┌───────────── day of the month (1 - 31) + # │ │ │ │ ┌───────────── month (1 - 12) (or JAN-DEC) + # │ │ │ │ │ ┌───────────── day of the week (0 - 7) + # │ │ │ │ │ │ (or MON-SUN -- 0 or 7 is Sunday) + # │ │ │ │ │ │ + scheduler: 0 0 23 * * * # How often to clear the semantic model cache + defaultUrns: "${SEMANTICSHUB_DEFAULT_URNS:urn:bamm:io.catenax.serial_part_typization:1.0.0#SerialPartTypization}" # IDs of models to cache at IRS startup + oAuthClientId: keycloak # ID of the OAuth2 client registration to use, see config spring.security.oauth2.client + timeout: + read: PT90S # HTTP read timeout for the semantic hub client + connect: PT90S # HTTP connect timeout for the semantic hub client + pageSize: "${SEMANTICSHUB_PAGE_SIZE:100}" + +bpdm: + bpnEndpoint: "${BPDM_URL:}" # Endpoint to resolve BPNs, must contain the placeholders {partnerId} and {idType} + oAuthClientId: keycloak # ID of the OAuth2 client registration to use, see config spring.security.oauth2.client + timeout: + read: PT90S # HTTP read timeout for the bpdm client + connect: PT90S # HTTP connect timeout for the bpdm client + +apiAllowedBpn: ${API_ALLOWED_BPN:BPNL00000003CRHK} +``` + +### Helm configuration IRS (values.yaml) + +```yaml + labelSelector: + matchExpressions: + - key: app.kubernetes.io/name + operator: DoesNotExist + topologyKey: kubernetes.io/hostname + +# Following Catena-X Helm Best Practices @url: https://catenax-ng.github.io/docs/kubernetes-basics/helm +# @url: https://github.com/helm/charts/blob/master/stable/nginx-ingress/values.yaml#L210 +livenessProbe: + failureThreshold: 6 + initialDelaySeconds: 30 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 +readinessProbe: + failureThreshold: 3 + initialDelaySeconds: 30 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + +##################### +# IRS Configuration # +##################### +irsUrl: # "https://" +ingress: + enabled: false + +digitalTwinRegistry: + url: # "https://" + descriptorEndpoint: >- + {{ tpl (.Values.digitalTwinRegistry.url | default "") . }}/registry/shell-descriptors/{aasIdentifier} + shellLookupEndpoint: >- + {{ tpl (.Values.digitalTwinRegistry.url | default "") . }}/lookup/shells?assetIds={assetIds} +semanticshub: + url: # https:// + pageSize: "100" # Number of aspect models to retrieve per page + modelJsonSchemaEndpoint: >- + {{- if .Values.semanticshub.url }} + {{- tpl (.Values.semanticshub.url | default "" ) . }}/{urn}/json-schema + {{- end }} + defaultUrns: >- + # urn:bamm:io.catenax.serial_part_typization:1.0.0#SerialPartTypization + # ,urn:bamm:com.catenax.assembly_part_relationship:1.0.0#AssemblyPartRelationship + localModels: +# Map of Base64 encoded strings of semantic models. The key must be the Base64 encoded full URN of the model. +# Example for urn:bamm:io.catenax.serial_part_typization:1.1.1#SerialPartTypization: +# dXJuOmJhbW06aW8uY2F0ZW5heC5zZXJpYWxfcGFydF90eXBpemF0aW9uOjEuMS4xI1NlcmlhbFBhcnRUeXBpemF0aW9u: ewoJIiRzY2hlbWEiOiAiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNC9zY2hlbWEiLAoJInR5cGUiOiAib2JqZWN0IiwKCSJjb21wb25lbnRzIjogewoJCSJzY2hlbWFzIjogewoJCQkidXJuX2JhbW1faW8uY2F0ZW5heC5zZXJpYWxfcGFydF90eXBpemF0aW9uXzEuMS4xX0NhdGVuYVhJZFRyYWl0IjogewoJCQkJInR5cGUiOiAic3RyaW5nIiwKCQkJCSJwYXR0ZXJuIjogIiheWzAtOWEtZkEtRl17OH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17MTJ9JCl8KF51cm46dXVpZDpbMC05YS1mQS1GXXs4fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXsxMn0kKSIKCQkJfSwKCQkJInVybl9iYW1tX2lvLmNhdGVuYXguc2VyaWFsX3BhcnRfdHlwaXphdGlvbl8xLjEuMV9LZXlDaGFyYWN0ZXJpc3RpYyI6IHsKCQkJCSJ0eXBlIjogInN0cmluZyIKCQkJfSwKCQkJInVybl9iYW1tX2lvLmNhdGVuYXguc2VyaWFsX3BhcnRfdHlwaXphdGlvbl8xLjEuMV9WYWx1ZUNoYXJhY3RlcmlzdGljIjogewoJCQkJInR5cGUiOiAic3RyaW5nIgoJCQl9LAoJCQkidXJuX2JhbW1faW8uY2F0ZW5heC5zZXJpYWxfcGFydF90eXBpemF0aW9uXzEuMS4xX0tleVZhbHVlTGlzdCI6IHsKCQkJCSJ0eXBlIjogIm9iamVjdCIsCgkJCQkicHJvcGVydGllcyI6IHsKCQkJCQkia2V5IjogewoJCQkJCQkiJHJlZiI6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fYmFtbV9pby5jYXRlbmF4LnNlcmlhbF9wYXJ0X3R5cGl6YXRpb25fMS4xLjFfS2V5Q2hhcmFjdGVyaXN0aWMiCgkJCQkJfSwKCQkJCQkidmFsdWUiOiB7CgkJCQkJCSIkcmVmIjogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXguc2VyaWFsX3BhcnRfdHlwaXphdGlvbl8xLjEuMV9WYWx1ZUNoYXJhY3RlcmlzdGljIgoJCQkJCX0KCQkJCX0sCgkJCQkicmVxdWlyZWQiOiBbCgkJCQkJImtleSIsCgkJCQkJInZhbHVlIgoJCQkJXQoJCQl9LAoJCQkidXJuX2JhbW1faW8uY2F0ZW5heC5zZXJpYWxfcGFydF90eXBpemF0aW9uXzEuMS4xX0xvY2FsSWRlbnRpZmllckNoYXJhY3RlcmlzdGljIjogewoJCQkJInR5cGUiOiAiYXJyYXkiLAoJCQkJIml0ZW1zIjogewoJCQkJCSIkcmVmIjogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXguc2VyaWFsX3BhcnRfdHlwaXphdGlvbl8xLjEuMV9LZXlWYWx1ZUxpc3QiCgkJCQl9LAoJCQkJInVuaXF1ZUl0ZW1zIjogdHJ1ZQoJCQl9LAoJCQkidXJuX2JhbW1faW8ub3Blbm1hbnVmYWN0dXJpbmdfY2hhcmFjdGVyaXN0aWNfMi4wLjBfVGltZXN0YW1wIjogewoJCQkJInR5cGUiOiAic3RyaW5nIiwKCQkJCSJwYXR0ZXJuIjogIi0/KFsxLTldWzAtOV17Myx9fDBbMC05XXszfSktKDBbMS05XXwxWzAtMl0pLSgwWzEtOV18WzEyXVswLTldfDNbMDFdKVQoKFswMV1bMC05XXwyWzAtM10pOlswLTVdWzAtOV06WzAtNV1bMC05XShcXC5bMC05XSspP3woMjQ6MDA6MDAoXFwuMCspPykpKFp8KFxcK3wtKSgoMFswLTldfDFbMC0zXSk6WzAtNV1bMC05XXwxNDowMCkpPyIKCQkJfSwKCQkJInVybl9iYW1tX2lvLmNhdGVuYXguc2VyaWFsX3BhcnRfdHlwaXphdGlvbl8xLjEuMV9Qcm9kdWN0aW9uQ291bnRyeUNvZGVUcmFpdCI6IHsKCQkJCSJ0eXBlIjogInN0cmluZyIsCgkJCQkicGF0dGVybiI6ICJeW0EtWl1bQS1aXVtBLVpdJCIKCQkJfSwKCQkJInVybl9iYW1tX2lvLmNhdGVuYXguc2VyaWFsX3BhcnRfdHlwaXphdGlvbl8xLjEuMV9NYW51ZmFjdHVyaW5nQ2hhcmFjdGVyaXN0aWMiOiB7CgkJCQkidHlwZSI6ICJvYmplY3QiLAoJCQkJInByb3BlcnRpZXMiOiB7CgkJCQkJImRhdGUiOiB7CgkJCQkJCSIkcmVmIjogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLm9wZW5tYW51ZmFjdHVyaW5nX2NoYXJhY3RlcmlzdGljXzIuMC4wX1RpbWVzdGFtcCIKCQkJCQl9LAoJCQkJCSJjb3VudHJ5IjogewoJCQkJCQkiJHJlZiI6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fYmFtbV9pby5jYXRlbmF4LnNlcmlhbF9wYXJ0X3R5cGl6YXRpb25fMS4xLjFfUHJvZHVjdGlvbkNvdW50cnlDb2RlVHJhaXQiCgkJCQkJfQoJCQkJfSwKCQkJCSJyZXF1aXJlZCI6IFsKCQkJCQkiZGF0ZSIKCQkJCV0KCQkJfSwKCQkJInVybl9iYW1tX2lvLmNhdGVuYXguc2VyaWFsX3BhcnRfdHlwaXphdGlvbl8xLjEuMV9QYXJ0SWRDaGFyYWN0ZXJpc3RpYyI6IHsKCQkJCSJ0eXBlIjogInN0cmluZyIKCQkJfSwKCQkJInVybl9iYW1tX2lvLmNhdGVuYXguc2VyaWFsX3BhcnRfdHlwaXphdGlvbl8xLjEuMV9QYXJ0TmFtZUNoYXJhY3RlcmlzdGljIjogewoJCQkJInR5cGUiOiAic3RyaW5nIgoJCQl9LAoJCQkidXJuX2JhbW1faW8uY2F0ZW5heC5zZXJpYWxfcGFydF90eXBpemF0aW9uXzEuMS4xX0NsYXNzaWZpY2F0aW9uQ2hhcmFjdGVyaXN0aWMiOiB7CgkJCQkidHlwZSI6ICJzdHJpbmciLAoJCQkJImVudW0iOiBbCgkJCQkJInByb2R1Y3QiLAoJCQkJCSJyYXcgbWF0ZXJpYWwiLAoJCQkJCSJzb2Z0d2FyZSIsCgkJCQkJImFzc2VtYmx5IiwKCQkJCQkidG9vbCIsCgkJCQkJImNvbXBvbmVudCIKCQkJCV0KCQkJfSwKCQkJInVybl9iYW1tX2lvLmNhdGVuYXguc2VyaWFsX3BhcnRfdHlwaXphdGlvbl8xLjEuMV9QYXJ0VHlwZUluZm9ybWF0aW9uQ2hhcmFjdGVyaXN0aWMiOiB7CgkJCQkidHlwZSI6ICJvYmplY3QiLAoJCQkJInByb3BlcnRpZXMiOiB7CgkJCQkJIm1hbnVmYWN0dXJlclBhcnRJZCI6IHsKCQkJCQkJIiRyZWYiOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX2JhbW1faW8uY2F0ZW5heC5zZXJpYWxfcGFydF90eXBpemF0aW9uXzEuMS4xX1BhcnRJZENoYXJhY3RlcmlzdGljIgoJCQkJCX0sCgkJCQkJImN1c3RvbWVyUGFydElkIjogewoJCQkJCQkiJHJlZiI6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fYmFtbV9pby5jYXRlbmF4LnNlcmlhbF9wYXJ0X3R5cGl6YXRpb25fMS4xLjFfUGFydElkQ2hhcmFjdGVyaXN0aWMiCgkJCQkJfSwKCQkJCQkibmFtZUF0TWFudWZhY3R1cmVyIjogewoJCQkJCQkiJHJlZiI6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fYmFtbV9pby5jYXRlbmF4LnNlcmlhbF9wYXJ0X3R5cGl6YXRpb25fMS4xLjFfUGFydE5hbWVDaGFyYWN0ZXJpc3RpYyIKCQkJCQl9LAoJCQkJCSJuYW1lQXRDdXN0b21lciI6IHsKCQkJCQkJIiRyZWYiOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvdXJuX2JhbW1faW8uY2F0ZW5heC5zZXJpYWxfcGFydF90eXBpemF0aW9uXzEuMS4xX1BhcnROYW1lQ2hhcmFjdGVyaXN0aWMiCgkJCQkJfSwKCQkJCQkiY2xhc3NpZmljYXRpb24iOiB7CgkJCQkJCSIkcmVmIjogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXguc2VyaWFsX3BhcnRfdHlwaXphdGlvbl8xLjEuMV9DbGFzc2lmaWNhdGlvbkNoYXJhY3RlcmlzdGljIgoJCQkJCX0KCQkJCX0sCgkJCQkicmVxdWlyZWQiOiBbCgkJCQkJIm1hbnVmYWN0dXJlclBhcnRJZCIsCgkJCQkJIm5hbWVBdE1hbnVmYWN0dXJlciIsCgkJCQkJImNsYXNzaWZpY2F0aW9uIgoJCQkJXQoJCQl9CgkJfQoJfSwKCSJwcm9wZXJ0aWVzIjogewoJCSJjYXRlbmFYSWQiOiB7CgkJCSIkcmVmIjogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXguc2VyaWFsX3BhcnRfdHlwaXphdGlvbl8xLjEuMV9DYXRlbmFYSWRUcmFpdCIKCQl9LAoJCSJsb2NhbElkZW50aWZpZXJzIjogewoJCQkiJHJlZiI6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fYmFtbV9pby5jYXRlbmF4LnNlcmlhbF9wYXJ0X3R5cGl6YXRpb25fMS4xLjFfTG9jYWxJZGVudGlmaWVyQ2hhcmFjdGVyaXN0aWMiCgkJfSwKCQkibWFudWZhY3R1cmluZ0luZm9ybWF0aW9uIjogewoJCQkiJHJlZiI6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy91cm5fYmFtbV9pby5jYXRlbmF4LnNlcmlhbF9wYXJ0X3R5cGl6YXRpb25fMS4xLjFfTWFudWZhY3R1cmluZ0NoYXJhY3RlcmlzdGljIgoJCX0sCgkJInBhcnRUeXBlSW5mb3JtYXRpb24iOiB7CgkJCSIkcmVmIjogIiMvY29tcG9uZW50cy9zY2hlbWFzL3Vybl9iYW1tX2lvLmNhdGVuYXguc2VyaWFsX3BhcnRfdHlwaXphdGlvbl8xLjEuMV9QYXJ0VHlwZUluZm9ybWF0aW9uQ2hhcmFjdGVyaXN0aWMiCgkJfQoJfSwKCSJyZXF1aXJlZCI6IFsKCQkiY2F0ZW5hWElkIiwKCQkibG9jYWxJZGVudGlmaWVycyIsCgkJIm1hbnVmYWN0dXJpbmdJbmZvcm1hdGlvbiIsCgkJInBhcnRUeXBlSW5mb3JtYXRpb24iCgldCn0= +bpdm: + url: # https:// + bpnEndpoint: >- + {{ tpl (.Values.bpdm.url | default "") . }}/api/catena/legal-entities/{partnerId}?idType={idType} +minioUser: "minio" # +minioPassword: # +minioUrl: "http://{{ .Release.Name }}-minio:9000" +keycloak: + oauth2: + clientId: # + clientSecret: # + clientTokenUri: # + jwkSetUri: # +edc: + controlplane: + endpoint: + data: "" # + request: + ttl: PT10M # Requests to controlplane will time out after this duration (see https://en.wikipedia.org/wiki/ISO_8601#Durations) + provider: + suffix: /api/v1/ids/data + catalog: + limit: 1000 # Max number of catalog items to retrieve from the controlplane + pagesize: 50 # Number of catalog items to retrieve on one page for pagination + apikey: + header: "X-Api-Key" # Name of the EDC api key header field + secret: "" # + submodel: + request: + ttl: PT10M # Requests to dataplane will time out after this duration (see https://en.wikipedia.org/wiki/ISO_8601#Durations) + path: /submodel + urnprefix: /urn + catalog: + cache: + enabled: true # Set to false to disable caching + ttl: P1D # Time after which a cached Item is no longer valid and the real catalog is called instead + maxCachedItems: 64000 # Maximum amount of cached catalog items + +config: + # If true, the config provided below will completely replace the configmap. + # In this case, you need to provide all required config values defined above yourself! + # If false, the custom config will just be appended to the configmap. + override: false + # Provide your custom configuration here (overrides IRS Spring application.yaml) + content: + + +env: [] # You can provide your own environment variables for the IRS here. +# - name: JAVA_TOOL_OPTIONS +# value: -Dhttps.proxyHost=1.2.3.4 + + +####################### +# Minio Configuration # +####################### +minio: + enabled: true + mode: standalone + persistence: + size: 1Gi + resources: + limits: + cpu: 1 + memory: 4Gi + requests: + cpu: 0.25 + memory: 4Gi + rootUser: "minio" # + rootPassword: "minioPass" # + + environment: + MINIO_PROMETHEUS_JOB_ID: minio-actuator + MINIO_PROMETHEUS_URL: http://prometheus:9090 + + +############################ +# Prometheus Configuration # +############################ +prometheus: + enabled: false # â‘ + rbac: + create: false + alertmanager: + enabled: false + prometheus-node-exporter: + enabled: false + kubeStateMetrics: + enabled: false + prometheus-pushgateway: + enabled: false + configmapReload: + prometheus: + enabled: false + + extraScrapeConfigs: | + - job_name: 'spring-actuator' + metrics_path: '/actuator/prometheus' + scrape_interval: 5s + static_configs: + - targets: [ '{{ .Release.Name }}-irs-helm:4004' ] + + - job_name: 'minio-actuator' + metrics_path: /minio/v2/metrics/cluster + static_configs: + - targets: [ '{{ .Release.Name }}-minio:9000' ] + + +######################### +# Grafana Configuration # +######################### +grafana: + enabled: false # â‘ + rbac: + create: false + persistence: + enabled: false + + user: # +``` + +1. Use this to enable or disable the monitoring components + +#### Values explained + +##### irs-url + +The hostname where the IRS will be made available. + +##### digital-twin-registry-url + +The URL of the Digital Twin Registry. The IRS uses this service to fetch AAS shells. + +##### semantics-hub-url + +The URL of the SemanticsHub. The IRS uses this service to fetch aspect schemas for payload validation. + +##### bpdm-url + +The URL of the BPDM service. The IRS uses this service to fetch business partner information based on BPNs. + +##### keycloak-token-uri + +The URL of the Keycloak token API. Used by the IRS for token creation to authenticate with other services. + +##### keycloak-jwkset-uri + +The URL of the Keycloak JWK Set. Used by the IRS to validate tokens when the IRS API is called. + +##### grafana-url + +The hostname where Grafana will be made available. + +##### edc-controlplane-endpoint-data + +The EDC consumer controlplane endpoint URL for data management, including the protocol. +If left empty, this defaults to the internal endpoint of the controlplane provided by the irs-edc-consumer Helm chart. + +#### Semantic Model Provisioning + +The IRS can retrieve semantic models in two ways: + +1. via the Semantic Hub, if you provide the URL +2. via local schema files + +If you activate both features, IRS will first try to resolve the models via the Hub and use the +local models as a fallback. + +If you want to use local schema files, you need to provide them directly in the `values.yaml` file. Use the param `semanticsHub.localModels` to specify a map of all the local schemas. +The **key** of each entry is the `Base64` encoded URN of the model. The **value** is the `Base64` encoded content of the schema file itself. The entries will then be mounted into the IRS container and used on demand. For reference, see the example comment in the default `values.yaml`. + +### EDC consumer configuration + +If you want to provide your own EDC consumer, add the following entries to your values.yaml: + +```yaml +############################## +# EDC Postgres Configuration # +############################## +postgresql: + auth: + username: edc + database: edc + postgresPassword: + password: + +################################## +# EDC Controlplane Configuration # +################################## +edc-controlplane: + ingresses: + - enabled: true + hostname: "" + annotations: + nginx.ingress.kubernetes.io/ssl-passthrough: "false" + nginx.ingress.kubernetes.io/backend-protocol: "HTTP" + nginx.ingress.kubernetes.io/force-ssl-redirect: "true" + endpoints: + - protocol + className: "" + tls: + - hosts: + - "" + secretName: tls-secret + certManager: + issuer: "" + clusterIssuer: "" + + edc: + receiver: + callback: + url: "http://{{ .Release.Name }}-irs-helm:8181/internal/endpoint-data-reference" # IRS EDC callback URL, e.g. http://app-irs-helm:8181/internal/endpoint-data-reference + postgresql: + user: edc + password: + transfer: + proxy: + token: + verifier: + publickey: + alias: + signer: + privatekey: + alias: + api: + auth: + key: "" + controlplane: + url: "https://" + dataplane: + url: "https://" + configuration: + properties: |- + edc.oauth.client.id= + edc.oauth.private.key.alias= + edc.oauth.provider.jwks.url= + edc.oauth.certificate.alias= + edc.oauth.token.url= + edc.vault.hashicorp.url= + edc.vault.hashicorp.token= + edc.vault.hashicorp.api.secret.path= + edc.data.encryption.keys.alias= + edc.data.encryption.algorithm=NONE + +############################### +# EDC Dataplane Configuration # +############################### +edc-dataplane: + edc: + api: + auth: + key: "" + ## Ingress declaration to expose the network service. + ingresses: + - enabled: true + hostname: "" + annotations: + nginx.ingress.kubernetes.io/ssl-passthrough: "false" + nginx.ingress.kubernetes.io/backend-protocol: "HTTP" + nginx.ingress.kubernetes.io/force-ssl-redirect: "true" + endpoints: + - public + className: "nginx" + tls: + - hosts: + - "" + secretName: tls-secret + certManager: + issuer: "" + clusterIssuer: "" + + configuration: + properties: |- + edc.oauth.client.id= + edc.oauth.private.key.alias= + edc.oauth.provider.audience=idsc:IDS_CONNECTORS_ALL + edc.oauth.provider.jwks.url= + edc.oauth.certificate.alias= + edc.oauth.token.url= + edc.vault.hashicorp.url= + edc.vault.hashicorp.token= + edc.vault.hashicorp.api.secret.path= +``` + +#### Values explained + +EDC requires a DAPS instance to function correctly. For more information on this, please refer to the [DAPS](https://github.com/catenax-ng/product-DAPS) or the [EDC](https://github.com/catenax-ng/product-edc) documentation. + +##### controlplane-url + +The hostname where the EDC consumer controlplane will be made available. + +##### dataplane-url + +The hostname where the EDC consumer dataplane will be made available. + +##### vault-url + +The base URL of the Vault instance. +EDC requires a running instance of HashiCorp Vault to store the DAPS certificate and private key. + +##### vault-secret-store-path + +The path to the secret store in Vault where the DAPS certificate and key can be found. + +Example: /v1/team-name + +##### daps-certificate-name + +The name of the DAPS certificate in the Vault. + +Example: irs-daps-certificate + +##### daps-privatekey-name + +The name of the DAPS private key in the Vault. + +Example: irs-daps-private-key + +##### daps-client-id + +The DAPS client ID. + +##### daps-jwks-url + +The URL of the DAPS JWK Set. + +Example: + +##### daps-token-url + +The URL of the DAPS token API. + +Example: + +### Secrets + +This is a list of all secrets used in the deployment. + +**⚠️ WARNING**\ +Keep the values for these settings safe and do not publish them! + +#### postgres-admin-password + +Database password for the **postgres** user. To be defined by you. + +#### postgres-password + +Database password for the application user (default username: **edc**). To be defined by you. + +#### keycloak-client-id + +Client ID for Keycloak. Request this from your Keycloak operator. + +#### keycloak-client-secret + +Client secret for Keycloak. Request this from your Keycloak operator. + +#### minio-username + +Login username for Minio. To be defined by you. + +#### minio-password + +Login password for Minio. To be defined by you. + +#### edc-api-key + +An API key for the EDC API. To be defined by you. + +#### vault-token + +The access token for the HashiCorp Vault API. + +#### grafana-username + +Login username for Grafana. To be defined by you. + +#### grafana-password + +Login password for Grafana. To be defined by you. + +## Troubleshooting + +### Proxy support + +If you are using an HTTP(S) proxy for outgoing connections, you need to configure the IRS to use it. + +```bash +JAVA_TOOL_OPTIONS=-Dhttps.proxyHost=X.X.X.X -Dhttps.proxyPort=XXXX +``` + +You might need to specify both `http` and `https` options, dependending on your configuration. + +If your proxy is requiring authentication, you can use the `.proxyUser` and `.proxyPassword` properties in addition. + +### Troubleshooting FAQ + +#### Minio + +##### Error: "The specified bucket does not exist" + +IRS tries to read data from or write to the Minio storage, but no bucket exists. This can happen if Minio is running without a persistent volume and restarts, thus losing all data. +It can also happen if the persistent volume claim is deleted / recreated. + +**Proposed solution steps:** + +1. Make sure Minio is configured and running correctly. +2. Restart the IRS - this will recreate the missing bucket automatically. + +#### Different Job model versions maintenance + +Currently, the IRS only supports one version of the Job model at a time. This means that if Job model is changed, old models stored in minio will no longer be supported and returned from IRS endpoints. The IRS application will work as usual, old versions of Job can stay in the minio and don’t need to be removed - the IRS will simply ignore them. If you want to clear the minio from old models - the only way to achieve that is to delete them all and register a new Jobs. diff --git a/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Documentation/arc42.md b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Documentation/arc42.md new file mode 100644 index 00000000000..da38b1af9e6 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Documentation/arc42.md @@ -0,0 +1,883 @@ +--- +id: irs_arc42 +title: Architecture documentation (arc42) + +description: 'Architecture documentation (arc42)' +sidebar_position: 3 +--- + + +![Datachain kit banner](@site/static/img/DataChainKitIcon.png) + +### Data Chain KIT + +## Introduction and goals + +This chapter gives you an overview about the goals of the service, +in which context the service runs and which stakeholders are involved. + +## Requirements overview + +### What is the Item Relationship Service? + +The IRS is a: + +* Functional federated component +* API endpoint to retrieve the tree structures in a recursive way, which data assets are distributed throughout the Catena-X network +* Reference implementation +* Data chain provider + +### Substantial Features + +* provide a top-down BoM asBuilt tree structure along the submodel "AssemblyPartRelationship" +* usage of EDC consumer for communicating with the Catena-X network +* functionality of IRS provider will be handled by providers submodel servers +* federated IRS service +* 'asBuild' BoM of serialized components +* provides endpoints for submodel-descriptors + +## Quality goals + +**❗ IMPORTANT**\ +The following table entries define overall IRS quality goals. The order of the topics do not resolve in a priority of the quality goals. + +| Quality goal | Motivation and description | +| --- | --- | +| running reference application | The IRS is built to traverse a distributed data chain across the automotive Industry. The goal for the IRS release 1 scope is to build a running solution to test the functionality of building a BoM as built of serialized components. | +| multiple async job orchestration | The IRS is built to access multiple endpoints parallel. Since the for the Endpoint it is not clear yet how long a request will take to respond. The Service is built to handle multiple asynchronous requests. | +| cloud agnostic solution | The IRS is built as reference architecture and able to run on different cloud solutions. It uses helm charts, terraform and a abstracts the storage, so that it can easily be integrated on different systems. | +| base security measures | The IRS is built with a base set of security features. | +| application reliability | The IRS architecture is set up so that the costumers can rely on reliable data chains | + +## Architecture constraints + +### Technical Constraints + +| Name | Description | +| --- | --- | +| Cloud Agnostic Architecture approach | IRS provides a reference application/implementation which is deployable on any cloud ecosystem. There is no vendor lock to any cloud vendor. | +| Spring Boot and the Spring framework is used as underlying framework for Java development. | Spring Boot and Framework is used to build an easy and production-grade based application which could be deployed without any further infrastructure components. Orchestrating application components and integrating with other libraries/frameworks. | +| Lombok | Lombok for generating boilerplate code. Keeping code concise increases quality and maintainability. | +| Kubernetes is used for Container Orchestration | Kubernetes as container orchestration system used for software deployment, scaling and management of the IRS application. This supports our software infrastructure and ensures efficient management and scalability of the IRS reference application. | +| Docker Container are used to provide a microservice oriented architecture | Deployment made on reliable production ready images. Avoiding repetitive, mundane configuration tasks for container orchestration. | +| Docker Compose is used to define and tune multi container application based on docker container technologies. | Docker container to develop independently of the underlying OS. | + +### Organizational Constraints + +| Name | Description | Comment | +| --- | --- | --- | +| CX-Services | Provide IRS as a C-X Shared Data Service. | | +| App Marketplace & API Connection | IRS Application has to be accessible for the user in the App Marketplace. | App Marketplace & API Connection | +| Federal Ministry for Economic Affairs and Energy (BMWi) promotion | The Federal Ministry for Economic Affairs and Energy (BMWi) promotes the project and provides funds for the project. | | +| Technology Readiness Level (TRL) for products developed within the CX Consortia | As IRS is a reference implementation, the Technology Readiness Level (TRL) must not be above TRL 8. | | +| Operational Readiness for Release 1 has to be fulfilled | Minimum requirements for release 1 has to be archived. Later on, the Operational Readiness for Release has to be fulfilled accordingly to the requirements of the C-X consortia. | | + +### Political constraints + +| Name | Description | +| --- | --- | +| Open Source | FOSS licenses approved by the eclipse foundation has to be used. It could represent the initial set that the CX community agrees on to regulate the content contribution under FOSS licenses. | +| Apache License 2.0 | Apache License 2.0 is one of the approved licenses which should be used to respect and guarantee Intellectual property (IP). | +| Java OpenJDK Version JDK >= 11 | IRS provides an open source application standard. OpenJDK is used, which is licensed under GNU General Public License (GNU GPL) Version 2. | + +### Development conventions + +| Name | Description | +| --- | --- | +| Architecture documentation | Architectural documentation of IRS reference application/implementation according to ARC42 template. | +| Coding guidelines | We follow the Google Java Style Guide. That is ensured by using the unified code formatter in the team and enforcing the style via Maven and Checkstyle / PMD. | +| Executable Bundle provided over the App Marketplace | As IRS is available in the App Marketplace, the application should be provided in one executable bundle. | +| Module structure | The entire build is driven from a Maven file, itself run from a single Dockerfile. | +| Code Analysis, Linting and Code Coverage | Consistent style increases readability and maintainability of the code base. Hence, we use analyzers to enforce consistency and style rules. We enforce the code style and rules in the CI to avoid merging code that does not comply with standards. | + +#### Code analysis, linting and code coverage + +| Tool | Scope | Rule | Configuration (via files / annotations) | +| --- | --- | --- | --- | +| Tidy | Enforce Maven POM Code Convention | Fail build on untidy pom.xml | N/A | +| SpotBugs | Static analysis to look for bugs in Java code. Successor of popular FindBugs tool | Fail build on violations | ci/spotbugs-excludes.xml @SuppressFBWarnings(...) | +| FindSecBugs | SpotBugs plugin adding security bugs coverage | Fail build on violations | N/A | +| Checkstyle | Enforce coding standard | Fail build on violations | ci/checkstyle-suppressions.xml @SuppressWarnings("checkstyle:XXX") | +| PMD | Source code analyzer to finds common programming flaws | Fail build on violations | ci/pmd-rules.xml @SuppressWarnings("PMD.XXX") | +| JaCoCo | Test coverage | Fail build on coverage < 80% | pom.xml @ExcludeFromCodeCoverageGeneratedReport | +| Veracode | - Scan source code for vulnerabilities (SAST) - Scan dependencies for known vulnerabilities (SCA) - Check used licenses (FOSS Licenses) | | | +| Dependabot | Automated dependency updates built into GitHub. Provided pull requests on dependency updates. | Any dependency update generates a pull request automatically. | .github/dependabot.yml | +| CodeQl | Discover vulnerabilities across a codebase. | | .github/workflows/codeql.yml | + +## System scope and context + +The IRS acts as a middleware between consumers and manufacturers. This section describes the environment of IRS. Who are its users, and with which other systems does it interact with. + +## Business context + +![arc42_000](https://eclipse-tractusx.github.io/item-relationship-service/docs/assets/arc42/arc42_000.png) + +### Consumer + +The IRS API is being consumed by the dismantler dashboard and other parties which are part of the Catena-X network. They need to provide valid credentials issued by the Catena-X IAM. Additionally, they must provide a base global asset identifier to retrieve information for as well as configuration details for the view on that information. + +### Catena-X network + +The IRS retrieves data from the Catena-X network (using the necessary infrastructure, see Technical Context), aggregates it and provides it back to the consumers. This connection is mandatory. If the Catena-X services are unavailable, the IRS cannot perform any work. + +As of now, the IRS uses its own IAM credentials to gather the required data. This might be changed to use the consumer credentials in the future. + +## Technical context + +![arc42_001](https://eclipse-tractusx.github.io/item-relationship-service/docs/assets/arc42/arc42_001.png) + +### Component overview + +#### IRS-API + +We provide a REST API that can be consumed by any system registered in the Catena-X Keycloak, e.g. the Dismantler Dashboard. The development of such a consumer service is not part of the IRS application. Each system that acts as a client to the Restful application IRS can be used instead, if it supports any REST call of the designed REST endpoints in the REST Controller of the IRS application. For communication, the transport protocol HTTP(S) should be established. + +In order to consume the Restful application IRS, the security aspect should be taken in consideration. IRS is a Spring Boot based application and is secured with the OpenID connector provider Keycloak and the OAuth2. This means for the consumers (users) that they need to authenticate themselves in order to be authorized to get access to the IRS. They generate a bearer token that they get from Keycloak and attach it to the HTTP header parameter Authorization. Certainly, both a consumer and the IRS should use the same configured Keycloak Realm. + +#### Registry API + +The IRS acts as a consumer of the component Asset Administration Shell Registry. The IRS contains a Restful client (REST template) that build a REST call to the mentioned Digital Twin Registry API based on its known URL (the AAS registry URL is configured in the IRS Restful API). The request contains the given "globalAssetId" by the consumer. Like described in the above section, the security aspect is required in order to achieve a REST call against the AAS Registry. As a response, the IRS gets the corresponding asset administration shell descriptor. The last one contains a list of submodel descriptors which can be filtered by the aspect type entered by the consumer. An aspect type like AssemblyPartRelationship, SerialPartTypization etc. And as mentioned above, the transport protocol HTTP(S) is used for the REST call communication. + +#### EDC API + +The integrated EDC client in the IRS is responsible for creating restful requests to the component EDC. The IRS application builds from the retrieved AAS Descriptor (see previous section) the corresponding submodel endpoint URLs, negotiates an EDC contract and sends via the submodel REST client requests to the EDC. The EDC responds with the corresponding submodel data. + +## Solution strategy + +### Introduction + +| Quality goal | Matching approaches in the solution | +| --- | --- | +| application reliability | - only data source is the Catena-X network, data is fetched directly from the data owner - IRS can be hosted decentralized by every participant by being an open source reference implementation | +| base security measures | - API protection using OAuth2.0/OIDC - automatic static and dynamic code analysis tools as part of the pipeline | +| cloud agnostic solution | - IRS is provided as a Docker image - Helm charts assist in deploying the application in any Kubernetes environment | +| multiple async job orchestration | - Separate job executor decouples data requests from the job status API - Multiple jobs with multiple transfer requests each can be handled in parallel, depending on the deployment resources | +| running reference application | - Working application can be used as reference by anyone due to open source publishing | + +### Technology + +The IRS is developed using Java and the Spring Boot framework. This choice was made due to the technical knowledge of the team and the widespread support of the framework. + +Hosting the application is done using Docker and Kubernetes, which is widely used and vendor-independent regarding the hosting provider (e.g. AWS, Google Cloud, Azure, ...). + +Inter-service communication is done using HTTP REST. This is the standard method in the Catena-X landscape and makes the IRS API easy to use for any third party client. + +For persistence, blob storage was chosen as the payloads retrieved for each job vary for every aspect and the format can be unknown to the application, as it’s just being tunneled through to the client. + +### Structure + +The IRS consists of 4 main components: + +1. the REST API to view and control Jobs +2. the asynchronous job processing engine +3. the job and payload persistence +4. the AAS connector + +The REST API classes are separated from the application logic and can be replaced by a different interface easily. The actual entrypoint into the application logic are the *Service classes. + +The job processing engine handles execution of the data requests for each job. It uses the AAS connector to retrieve the data and stores it into the persistence. The actual implementation of the persistence is decoupled from the logical representation and can be replaced easily as well. + +## Building block view + +## Whitebox overall system + +The interfaces show how the components interact with each other and which interfaces the IRS is providing. + +### Component diagram + +![arc42_002](https://eclipse-tractusx.github.io/item-relationship-service/docs/assets/arc42/arc42_002.png) + +### Component description + +| Components | Description | +| --- | --- | +| IRSApiConsumer | Proxy for any consumer of the IRS api. | +| IRS | The IRS consumes relationship information across the CX-Network and builds the graph view. Within this Documentation, the focus lies on the IRS | +| AAS Proxy | The AAS Proxy is a System, which enables the consumer to simplify the communication with other CX Partners. | +| EDC Consumer | The EDC Consumer Component is there to fulfill the GAIA-X and IDSA-data sovereignty principles. The EDC Consumer consists out of a control plane and a data plane. | +| EDC Provider | The EDC Provider Component connects with EDC Consumer component and forms the end point for the actual exchange of data. It handles automatic contract negotiation and the subsequent exchange of data assets for connected applications. | +| Submodel Server | The Submodel Server offers endpoints for requesting the Submodel aspects. | +| IAM/DAPS | DAPS as central Identity Provider | + +## Level 1 + +### Component diagram + +![arc42_003](https://eclipse-tractusx.github.io/item-relationship-service/docs/assets/arc42/arc42_003.png) + +### Component description + +| Components | Description | +| --- | --- | +| **IRS** | The IRS builds a digital representation of a product (digital twin) and the relationships of items the product consists of in a hierarchical structure. The result is an item graph in which each node represents a digital item of the product - this graph is called "Item Graph". | +| **IRS API** | The **IRS API** is the Interface over which the Data Consumer is communicating. | +| **IrsController** | The **IrsController** provides an REST Interface for retrieving IRS processed data and job details of the current item graph retrieval process. | +| **IrsItemGraphQueryService** | The **IrsItemGraphQueryService** implements the REST Interface of the IrsController. | +| **JobOrchestrator** | The **JobOrchestrator** is a component which manages (start, end, cancel, resume) the jobs which execute the item graph retrieval process. | +| **RecursiveJobHandler** | The **RecursiveJobHandler** handles the job execution recursively until a given abort criteria is reached or the complete item graph is build. | +| **TransferProcessManager** | The TransferProcessManager handles the outgoing requests to the AASProxy. 1. Initiation of the job and preparation of the stream of **DataRequests** 2. **RecursiveJobHandler** requesting for AAS via the Digital Twin registry. 3. Analyzing the structure of the AAS response by collecting the AssemblyPartRelationship Aspects 4. Requesting for SubmodelEndpoints for given AssemblyPartRelationship children 5. Recursively iteration over step 2-4 until an abort criterion is reached. 6. Assembles the complete item graph | +| **BlobStore** | The BlobStore is the database where the relationships and tombstones are stored for a requested item. | +| **JobStore** | The JobStore is the database where the jobs with the information about the requested item are stored. | +| **AASProxy** | The AASProxy is the interface to the EDC Network. It provides an interface for the Asset Administration Shells and for the Submodels. | + +## Level 2 + +### IRS controller + +The IRS REST controller to provide a RESTful web service. + +#### Component diagram + +![arc42_004](https://eclipse-tractusx.github.io/item-relationship-service/docs/assets/arc42/arc42_004.png) + +#### Component description + +| Components | Description | +| --- | --- | +| IrsController | Application REST controller. | +| IrsItemGraphQueryService | Service for retrieving item graph. | +| JobOrchestrator | Orchestrator service for recursive MultiTransferJobs that potentially comprise multiple transfers. | +| JobStore | Spring configuration for job-related beans. | +| BlobstorePersistence | Interface for storing data blobs. | + +### RecursiveJobHandler + +The **RecursiveJobHandler** component provide the logic to build jobs with recursive logic to retrieve items over the complete C-X network and assembles the partial results into a single item graph result. + +#### Component diagram + +![arc42_005](https://eclipse-tractusx.github.io/item-relationship-service/docs/assets/arc42/arc42_005.png) + +#### Component description + +| Components | Description | +| --- | --- | +| AASRecursiveJobHandler | Recursive job handler for AAS data | +| TreeRecursiveLogic | Retrieves item graphs from potentially multiple calls to IRS API behind multiple EDC Providers, and assembles their outputs into one overall item graph. | +| ItemTreesAssembler | Assembles multiple partial item graphs into one overall item graph. | +| BlobPersistence | Interface for storing data blobs. | + +### TransferProcessManagment + +The TransferProcessManager creates executions and provides them to the executor service. Each execution contains HTTP requests to the asset administration shell registry and to the submodel interface. + +#### Component diagram + +![arc42_006](https://eclipse-tractusx.github.io/item-relationship-service/docs/assets/arc42/arc42_006.png) + +#### Component description + +| Components | Description | +| --- | --- | +| TransferProcessManager | The TransferProcessManager manages the requests to the EDC and DigitalTwinRegistry. | +| DigitalTwinRegistryFacade | The DigitalTwinRegistryFacade calls the DigitalTwinRegistry to retrieve data form the AAS registry and transforms the response to internal data models. | +| SubmodelFacade | The SubmodelFacade calls the EDC to retrieve data from the submodel server and transforms the response to internal data models. | +| BlobStore | The BlobStore is the database where the relationships and tombstones are stored for a requested item. | +| DigitalTwinRegistry | The DigitalTwinRegistry is the central database of registered assets. | +| ExecutorService | The ExecutorService enables the simultaneous execution of requests of transfer processes. | + +## IRS API + +### References + +The Swagger documentation can be found in the local deployment of the reference application. More information can be found in the GitHub repository: + +Since we cannot rely on synchronous responses regarding the requests of submodel endpoints, we designed the IRS in a way that it will handle the job management of requesting all needed endpoints in order to build a BoM tree. + +### IRS interaction diagram + +![arc42_007](https://eclipse-tractusx.github.io/item-relationship-service/docs/assets/arc42/arc42_007.png) + +## Runtime view + +This section covers the main processes of the IRS and explains how data is transfered and processed when a job is executed. + +## Overall + +This section describes the overall flow of the IRS + +![arc42_008](https://eclipse-tractusx.github.io/item-relationship-service/docs/assets/arc42/arc42_008.png) + +### Submodel + +This section describes how the IRS fetches submodel payload. + +![arc42_009](https://eclipse-tractusx.github.io/item-relationship-service/docs/assets/arc42/arc42_009.png) + +### Job orchestration flow + +This section describes the job orchestration in IRS. + +![arc42_010](https://eclipse-tractusx.github.io/item-relationship-service/docs/assets/arc42/arc42_010.png) + +## Scenario 1: Create job + +This section describes what happens when user creates a new job. + +![arc42_011](https://eclipse-tractusx.github.io/item-relationship-service/docs/assets/arc42/arc42_011.png) + +### Overview + +If a job is registered via the IRS API, it will be persisted (with its parameters) in the JobStore, where it can be retrieved by further calls and processes. +Then, the starting item ID is extracted, and a new transfer process is handed to the ExecutorService, which will process it asynchronously (see Scenario 2: Job Execution). + +In the meantime, the JobOrchestrator returns a response to the API caller, which contains the UUID of the new job. +This UUID can then be used by the caller to retrieve information about the job via the API. +The input provided by the caller determines how the job will operate (starting point, recursion depth, aspect filter, ...). + +## Scenario 2: Job execution + +This section describes how a job is asynchronously executed inside the IRS. + +![arc42_012](https://eclipse-tractusx.github.io/item-relationship-service/docs/assets/arc42/arc42_012.png) + +### Overview + +After a job has been created (see Scenario 1: Create Job), the first transfer containing the root item ID is passed to the ExecutorService. The transfer is then started asynchronously and retrieves the necessary information from the Catena-X network, first by fetching the AAS information from the DigitalTwin registry and then calling the SubmodelProviders for the submodel payload. + +At least the aspect AssemblyPartRelationship is required for the tree to be built. If the customer that started the job provided more aspects to be fetched, they will be retrieved here too. +The result of each transfer is stored in the BlobStore. + +After the transfer process has finished, any subsequent child IDs will be extracted and new transfer processes will be scheduled for those via the ExecutorService. This cycle repeats until all leafs were reached, the specified max depth has been reached, or the job was canceled externally. + +As soon as all transfers are finished, the results will be combined and stored in the BlobStore again. The job itself will be marked as completed. + +## Scenario 3: Request for JobResponse + +![arc42_013](https://eclipse-tractusx.github.io/item-relationship-service/docs/assets/arc42/arc42_013.png) + +### Overview + +When a user requests job details, the IRS looks up the jobId in the persistent job store. If the job exists, it will proceed to fetch the job details and prepare a response object. +Only if the job is in state "COMPLETED" or if the caller has set the parameter "includePartialResults" to true, the IRS will fetch the payload data for the job (relationships, AAS shells and submodels, if applicable) and attach it to the response object. + +This will then be passed to the caller. + +## Scenario 4: Cancel job execution + +![arc42_014](https://eclipse-tractusx.github.io/item-relationship-service/docs/assets/arc42/arc42_014.png) + +### Overview + +When a user wants to cancel a job execution, the IRS will lookup that job in the persistent job store and transition it to the CANCELED state, if it exists. If a job is canceled, no further requests to the Catena-X network will be performed. + +Afterwards, the IRS will return the updated job details of the canceled job to the user. + +## Deployment view + +The deployment view shows the IRS application on ArgoCD, which is a continuous delivery tool for Kubernetes. Kubernetes manifests are specified using Helm charts. Helm is a package manager for Kubernetes. IRS is developed in a cloud-agnostic manner, so the application could be installed in any cloud infrastructure (on-premises, hybrid, or public cloud infrastructure). + +![arc42_015](https://eclipse-tractusx.github.io/item-relationship-service/docs/assets/arc42/arc42_015.png) + +### Operator + +Manual preparation is required to initially set up the ArgoCD apps and the credentials in the HashiCorp Vault. This is done by the IRS system operator. + +### ArgoCD + +Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. See + +### Vault + +HashiCorp Vault stores credentials, which are picked up by ArgoCD to deploy them to the application. + +**⚠️ WARNING**\ +Every secret information needed at runtime must be stored here and must never be part of the IRS Helm charts + +### GitHub + +GitHub contains the application source code as well as the Helm charts used for deployment. +The IRS Helm charts can be found here: + +### GitHub Container Registry (GHCR) + +When the IRS is built by GitHub Action workflows, the final image is pushed to the GHCR, where it can be picked up for deployment. + +### Kubernetes + +The kubernetes cluster manages the underlying hardware that is used to run the applications defined in the Helm charts. + +### Local deployment + +For information on how to run the application locally, please check the README documentation in GitHub: + +### View Levels + +## Level 0 - Cluster overview + +### Isolated environment + +The isolated environment contains the IRS as well as all surrounding services. + +![arc42_016](https://eclipse-tractusx.github.io/item-relationship-service/docs/assets/arc42/arc42_016.png) + +### Development environment + +The development environment contains the IRS as well as the essential surrounding services, excluding the external IAM. + +![arc42_017](https://eclipse-tractusx.github.io/item-relationship-service/docs/assets/arc42/arc42_017.png) + +### Integrated environment + +The integrated environment contains the IRS and is integrated with the rest of the Catena-X network. + +![arc42_018](https://eclipse-tractusx.github.io/item-relationship-service/docs/assets/arc42/arc42_018.png) + +## Level 1 - IRS application + +This section focuses only on the IRS itself, detached from its neighbors. It shows the resources deployed in Kubernetes for the IRS. + +![arc42_019](https://eclipse-tractusx.github.io/item-relationship-service/docs/assets/arc42/arc42_019.png) + +### Pod + +This is the actual IRS Docker image which runs as a container. The ports are only available internally and can be opened up with the Service. + +### Secrets + +The secret information (e.g. connection credentials) is stored here and provided to the Pod at runtime. + +### Service + +The service resource opens up selected ports of the Pod so that other applications in the same cluster can access it or to be used by the Ingress. + +### Ingress + +The ingress uses a reverse proxy to provide specified Service ports to the internet under a specified URL. This make the IRS API publicly available. + +## Cross-cutting concepts + +## Domain concepts + +### Domain entity model + +![arc42_020](https://eclipse-tractusx.github.io/item-relationship-service/docs/assets/arc42/arc42_020.png) + +### Domain model + +![arc42_021](https://eclipse-tractusx.github.io/item-relationship-service/docs/assets/arc42/arc42_021.png) + +### API Model + +For detailed information about the API model, please refer to the [API specification](https://eclipse-tractusx.github.io/item-relationship-service/docs/api-specification/api-specification.html). + +### JobStatus + +A job can be in one of the following states: + +| State | Description | +| --- | --- | +| UNSAVED | The job was created, but not yet stored by the system. | +| INITIAL | The job was stored by the system and is now queued for processing. | +| IN_PROGRESS | The job is currently being processed. | +| TRANSFERS_FINISHED | All transfers for the job have been finished, and it is now being finalized. | +| COMPLETED | The job has completed. See the job response for details on the data. | +| ERROR | The job could not be processed correctly by the IRS due to a technical problem. | + +![arc42_022](https://eclipse-tractusx.github.io/item-relationship-service/docs/assets/arc42/arc42_022.png) + +### Job Store Datamodel + +![arc42_023](https://eclipse-tractusx.github.io/item-relationship-service/docs/assets/arc42/arc42_023.png) + +### Job Response Datamodel + +![arc42_024](https://eclipse-tractusx.github.io/item-relationship-service/docs/assets/arc42/arc42_024.png) + +```json +{ + "job": { + "jobID": "e5347c88-a921-11ec-b909-0242ac120002", + "globalAssetId": "6c311d29-5753-46d4-b32c-19b918ea93b0", + "jobStatus": "Finished", + "createdOn": "2022-02-03T14:48:54.709Z", + "startedOn" : "2022-02-03T14:48:54.709Z", + "lastModifiedOn": "2022-02-03T14:48:54.709Z", + "jobFinished": "2022-02-03T14:48:54.709Z", + "requestURL": "https://api.server.test/api/../", + "owner": "", + "summary": { + "asyncFetchedItems": { + "queued": 0, + "running": 0, + "complete": 0, + "failed": 0 + }}, + "queryParameter": { + "bomLifecycle" : "asBuilt", + "aspect" : ["SerialPartTypization", "Contact"], + "depth": 4, + "direction": "downward" + }, + "exception": { + "exception": "IrsTimeoutException", + "errorDetail": "Timeout while requesting Digital Registry.", + "exceptionDate" : "2022-02-03T14:48:54.709Z", + "statusCode" : "404" + } + }, + "relationships": [ + { + "catenaXId": "d9bec1c6-e47c-4d18-ba41-0a5fe8b7f447", + "childItem": { + "quantity": { + "quantityNumber": 1, + "measurementUnit": { + "datatypeURI": "urn:bamm:io.openmanufacturing:meta-model:1.0.0#piece", + "lexicalValue": "piece" + } + }, + "lifecycleContext": "asBuilt", + "assembledOn": "2022-02-03T14:48:54.709Z", + "lastModifiedOn": "2022-02-03T14:48:54.709Z", + "childCatenaXId": "a45a2246-f6e1-42da-b47d-5c3b58ed62e9" + } + } + ], + "shells": [ + { + "description": [ + { + "language": "en", + "text": "The shell for a vehicle" + } + ], + "globalAssetId": { + "value": [ + "a45a2246-f6e1-42da-b47d-5c3b58ed62e9" + ] + }, + "idShort": "future concept x", + "identification": "882fc530-b69b-4707-95f6-5dbc5e9baaa8", + "specificAssetIds": [ + { + "key": "engineserialid", + "value": "12309481209312" + } + ], + "submodelDescriptors": [ + { + "description": [ + { + "language": "en", + "text": "Provides base vehicle information" + } + ], + "idShort": "vehicle base details", + "identification": "4a738a24-b7d8-4989-9cd6-387772f40565", + "semanticId": { + "value": [ + "urn:bamm:com.catenax.vehicle:0.1.1" + ] + }, + "endpoints": [ + { + "interface": "HTTP", + "protocolInformation": { + "endpointAddress": "https://catena-x.net/vehicle/basedetails/", + "endpointProtocol": "HTTPS", + "endpointProtocolVersion": "1.0" + } + } + ] + }, + { + "description": [ + { + "language": "en", + "text": "Provides base vehicle information" + } + ], + "idShort": "vehicle part details", + "identification": "dae4d249-6d66-4818-b576-bf52f3b9ae90", + "semanticId": { + "value": [ + "urn:bamm:com.catenax.vehicle:0.1.1#PartDetails" + ] + }, + "endpoints": [ + { + "interface": "HTTP", + "protocolInformation": { + "endpointAddress": "https://catena-x.net/vehicle/partdetails/", + "endpointProtocol": "HTTPS", + "endpointProtocolVersion": "1.0" + } + } + ] + } + ] + } + ] + } +@endjson +``` + +## Safety and security concepts + +### Authentication / Authorization + +#### IRS API + +The IRS is secured using OAuth2.0 / Open ID Connect. Every request to the IRS API requires a valid bearer token. +JWT token should also contain two fields: + +* 'view irs' role inside resource_access claim, +* bpn claim which is equal to the configuration value from 'API_ALLOWED_BPN' property + +#### IRS as DTR client + +The IRS acts as a client for the Digital Twin Registry (DTR), which is also secured using OAuth2.0 / Open ID Connect. The IRS uses client credentials to authenticate requests to the DTR. Due to this, the IRS account needs to have access to every item in the DTR, unrelated to the permissions of the account calling the IRS API. + +#### IRS as EDC client + +The IRS accesses the Catena-X network via the EDC consumer connector. This component requires authentication via a DAPS certificate, which was provided to the IRS via the network authority. + +The DAPS certificate identifies the IRS and is used to acquire access permissions for the data transferred via EDC. + +### Credentials + +Credentials must never be stored in Git! + +## Architecture and design patterns + +### Dependency inversion + +For the IRS, we utilize the dependency inversion mechanisms provided by Spring Boot as much as possible. + +The principle says: + +High-level modules should not import anything from low-level modules. Both should depend on abstractions (e.g., interfaces). +Abstractions should not depend on details. Details (concrete implementations) should depend on abstractions. + +Adhering to this, we define clear interfaces between the different domains (e.g. job orchestration and AAS communication) in the IRS and let dependencies be injected by the framework. This improves testability of the classes as well. + +### Hexagonal architecture + +The hexagonal architecture divides a system into several loosely-coupled interchangeable components, such as the application core, the database, the user interface, test scripts and interfaces with other systems. This approach is an alternative to the traditional layered architecture. + +For the IRS, this means decoupling the application logic from components like the BLOB store, the REST API controllers or the AAS client connection. With an interface between the parts (so-called port), it is easy to switch to other implementations, e.g. if you want to change the persistence implementation. No changes to the application logic will be necessary. + +![arc42_025](https://eclipse-tractusx.github.io/item-relationship-service/docs/assets/arc42/arc42_025.png) + +## "Under-the-hood" concepts + +### Persistency + +The IRS stores two types of data in a persistent way: + +* Job metadata +* Job payloads, e.g. AAS shells or submodel data + +All of this is data is stored in an object store. The currently used implementation is Minio (Amazon S3 compatible). +This reduces the complexity in storing and retrieving data. There also is no predefined model for the data, every document can be stored as it is. +The downside of this approach is lack of query functionality, as we can only search through the keys of the entries but not based on the value data. +In the future, another approach or an additional way to to index the data might be required. + +To let the data survive system restarts, Minio needs to use a persistent volume for the data storage. A default configuration for this is provided in the Helm charts. + +### Transaction handling + +There currently is no transaction management in the IRS. + +### Session handling + +There is no session handling in the IRS, access is solely based on bearer tokens, the API is stateless. + +### Communication and integration + +All interfaces to other systems are using RESTful calls over HTTP(S). Where central authentication is required, a common Keycloak instance is used. + +For outgoing calls, the Spring RestTemplate mechanism is used and separate RestTemplates are created for the different ways of authentication. + +For incoming calls, we utilize the Spring REST Controller mechanism, annotating the interfaces accordingly and also documenting the endpoints using OpenAPI annotations. + +### Exception and error handling + +There are two types of potential errors in the IRS: + +#### Technical errors + +Technical errors occur when there is a problem with the application itself, its configuration or directly connected infrastructure, e.g. the Minio persistence. Usually, the application cannot solve these problems by itself and requires some external support (manual work or automated recovery mechanisms, e.g. Kubernetes liveness probes). + +These errors are printed mainly to the application log and are relevant for the healthchecks. + +#### Functional errors + +Functional errors occur when there is a problem with the data that is being processed or external systems are unavailable and data cannot be sent / fetched as required for the process. While the system might not be able to provide the required function at that moment, it may work with a different dataset or as soon as the external systems recover. + +These errors are reported in the Job response and do not directly affect application health. + +#### Rules for exception handling + +##### Throw or log, don't do both + +When catching an exception, either log the exception and handle the problem or rethrow it, so it can be handled at a higher level of the code. By doing both, an exception might be written to the log multiple times, which can be confusing. + +##### Write own base exceptions for (internal) interfaces + +By defining a common (checked) base exception for an interface, the caller is forced to handle potential errors, but can keep the logic simple. On the other hand, you still have the possibility to derive various, meaningful exceptions for different error cases, which can then be thrown via the API. + +Of course, when using only RuntimeExceptions, this is not necessary - but those can be overlooked quite easily, so be careful there. + +##### Central fallback exception handler + +There will always be some exception that cannot be handled inside of the code correctly - or it may just have been unforeseen. A central fallback exception handler is required so all problems are visible in the log and the API always returns meaningful responses. In some cases, this is as simple as a HTTP 500. + +##### Dont expose too much exception details over API + +It’s good to inform the user, why their request did not work, but only if they can do something about it (HTTP 4xx). So in case of application problems, you should not expose details of the problem to the caller. This way, we avoid opening potential attack vectors. + +### Parallelization and threading + +The heart of the IRS is the parallel execution of planned jobs. As almost each job requires multiple calls to various endpoints, those are done in parallel as well to reduce the total execution time for each job. + +Tasks execution is orchestrated by the JobOrchestrator class. It utilizes a cental ExecutorService, which manages the number of threads and schedules new Task as they come in. + +### Plausibility checks and validation + +Data validation happens at two points: + +* IRS API: the data sent by the client is validated to match the model defined in the IRS. If the validation fails, the IRS sends a HTTP 400 response and indicates the problem to the caller. +* Submodel payload: each time a submodel payload is requested from via EDC, the data is validated against the model defined in the SemanticHub for the matching aspect type. + +### Caching + +The IRS caches data provided externally to avoid unnecessary requests and reduce execution time. + +Caching is implemented for the following services: + +#### BPDM + +Whenever a BPN is resolved via BPDM, the partner name is cached on IRS side, as this data does not change. + +#### Semantics Hub + +Whenever a semantic model schema is requested from the Semantic Hub, it is stored locally until the cache is evicted (configurable). The IRS can preload configured schema models on startup to reduce on demand call times. + +Additionally, models can be deployed with the system as a backup to the real Semantic Hub service. + +## Development concepts + +### Build, test, deploy + +The IRS is built using Maven and utilizes all the standard concepts of it. Test execution is part of the build process and a minimum test coverage of 80% is enforced. + +The project setup contains a multi-module Maven build. Commonly used classes (like the IRS data model) should be extracted into a separate submodule and reused across the project. However, this is not a "one-size-fits-all" solution. New submodules should be created with care and require a review by the team. + +The Maven build alone only leads up to the JAR artifact of the IRS. Do create Docker images, the Docker build feature is used. This copies all resources into a builder image, builds the software and creates a final Docker image at the end that can then be deployed. + +Although the Docker image can be deployed in various ways, the standard solution are the provided Helm charts, which describe the required components as well. + +### Code generation + +There are two methods of code generation in the IRS: + +#### Lombok + +The Lombok library is heavily used to generate boilerplate code (like Constructors, Getters, Setters, Builders...). +This way, code can be written faster and this boilerplate code is excluded from test coverage, which keeps the test base lean. + +#### Swagger / OpenAPI + +The API uses OpenAPI annotations to describe the endpoints with all necessary information. The annotations are then used to automatically generate the OpenAPI specification file, which can be viewed in the Swagger UI that is deployed with the application. + +The generated OpenAPI specification file is automatically compared to a fixed, stored version of it to avoid unwanted changes of the API. + +### Migration + +There currently is no data migration mechanism for the IRS. +In case the model of the persisted data (Jobs) changes, data is dropped and Jobs will need to be recreated. + +### Configurability + +The IRS utilizes the configuration mechanism provided by Spring Boot. Configuration properties can be defined in the file `src/main/resources/application.yml` + +For local testing purposes, there is an additional configuration file called `application-local.yml`. Values can be overriden there to support the local dev environment. + +Other profiles should be avoided. Instead, any value that might need to change in a runtime environment must be overridable using environment variables. The operator must have total control over the configuration of the IRS. + +## Operational concepts + +### Administration + +#### Configuration + +The IRS can be configured using two mechanisms: + +##### application.yml + +If you build the IRS yourself, you can modify the application.yml config that is shipped with the IRS. This file contains all possible config entries for the application. +Once the Docker image has been built, these values can only be overwritten using the Spring external config mechanism (see e.g. by mounting a config file in the right path or using environment variables. + +##### Helm Chart + +The most relevant config properties are exposed as environment variables and must be set in the Helm chart so the application can run at all. Check the IRS Helm chart in Git for all available variables. + +### Disaster-Recovery + +#### Ephemeral components + +All components in the IRS deployment not listed in the persistent components section below are considered ephemeral and are easily replaced in a disaster scenario. +All deployment components are described using Helm charts, which can be used to restore the deployment with the Docker images. +Should the Docker images go missing, they can be restored by executing the build pipelines for the corresponding version tag of the component. + +#### Persistent components + +These components utilize data persistence, which needs to be backed up separately by the operator. + +* **Minio persistent volume**: Contains the stored Job information. In case of data loss, Jobs can be started again to retrieve the data from the network. +* **Prometheus persistent volume**: Contains the monitoring data of the IRS. In case of data loss, no analysis can be done for past timeframes. +* **Vault secrets**: In case of data loss, the credentials stored in the Vault need to be recreated manually. See the deployment view for an overview. + +### Scaling + +If the number of consumers raises, the IRS can be scaled up by using more resources for the Deployment Pod. Those resources can be used to utilize more parallel threads to handle Job execution. + +### Clustering + +The IRS can run in clustered mode, as each running job is only present in one pod at a time. +Note: as soon as a resume feature is implemented, this needs to be addressed here. + +### Logging + +Logs are being written directly to stdout and are picked up by the cluster management. + +### Monitoring + +The application can be monitored using Prometheus and Grafana. Both systems are defined in the Helm charts with a default setup. +A number of Grafana dashboards are deployed automatically, to display data about: + +* Pod / JVM resources +* API metrics +* Functional information about IRS Jobs + +## Quality requirements + +The quality scenarios in this section depict the fundamental quality goals as well as other required quality properties. They allow the evaluation of decision alternatives. + +* **Quality attribute**: A characteristic of software, or a generic term applying to quality factors, quality subfactors, or metric values. +* **Quality factor**: A management-oriented attribute of software that contributes to its quality. +* **Quality subfactor**: A decomposition of a quality factor or quality subfactor to its technical components. +* **Metric value**: A metric output or an element that is from the range of a metric. +* **Software quality metric**: A function whose inputs are software data and whose output is a single numerical value that can be interpreted as the degree to which software possesses a given attribute that affects its quality. + +**Source**: IEEE standard 1061 "Standard for a Software Quality Metrics Methodology" + +### List of requirements + +This section will be filled soon. + +## Glossary + +| Term | Description | +| --- | --- | +| AAS | Asset Administration Shell (Industry 4.0) | +| Aspect servers (submodel endpoints) | Companies participating in the interorganizational data exchange provides their data over aspect servers. The so called "submodel-descriptors" in the AAS shells are pointing to these AspectServers which provide the data-assets of the participating these companies in Catena-X. | +| BoM | Bill of Materials | +| Edge | see Traversal Aspect | +| IRS | Item Relationship Service | +| Item Graph | The result returned via the IRS. This corresponds to a tree structure in which each node represents a part of a virtual asset. | +| MTPDC | Formerly known Service Name: Multi Tier Parts Data Chain | +| PRS | Formerly known Service Name: Parts Relationship Name | +| Traversal Aspect | aka Edge: Aspect which the IRS uses for traversal through the data chain. Identified by a parent-child or a child-parent relationship. Samples: SingleLevelBomAsPlanned, AssemblyPartRelationship and SingleLevelUsageAsBuilt | diff --git a/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Software Development View/Job Api/cancel-batch-order.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Software Development View/Job Api/cancel-batch-order.api.mdx new file mode 100644 index 00000000000..690c82f726f --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Software Development View/Job Api/cancel-batch-order.api.mdx @@ -0,0 +1,66 @@ +--- +id: cancel-batch-order +title: "Cancel a batch order for a given orderId." +description: "Cancel a batch order for a given orderId." +sidebar_label: "Cancel a batch order for a given orderId." +hide_title: true +hide_table_of_contents: true +api: {"description":"Cancel a batch order for a given orderId.","operationId":"cancelBatchOrder","parameters":[{"description":"Id of the order.","example":"6c311d29-5753-46d4-b32c-19b918ea93b0","in":"path","name":"orderId","required":true,"schema":{"type":"string","format":"uuid","maxLength":36,"minLength":36}}],"responses":{"200":{"content":{"application/json":{"examples":{"complete":{"value":{"batchChecksum":1,"batches":[{"batchId":"f253718e-a270-4367-901b-9d50d9bd8462","batchNumber":1,"batchProcessingState":"PARTIAL","batchUrl":"https://../irs/orders/f253718e-a270-4367-901b-9d50d9bd8462/batches/f253718e-a270-4367-901b-9d50d9bd8462","jobsInBatchChecksum":1}],"orderId":"f253718e-a270-4367-901b-9d50d9bd8462","state":"COMPLETED"}}},"schema":{"type":"object","additionalProperties":false,"description":"BatchOrderAck Payload Response.","properties":{"batchChecksum":{"type":"integer","format":"int32","description":"Expected number of batches in order."},"batches":{"type":"array","description":"Array of batches.","items":{"type":"object","additionalProperties":false,"description":"Batch model.","properties":{"batchId":{"type":"string","format":"uuid","description":"Id of the batch.","maxLength":36,"minLength":36,"pattern":"/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i"},"batchNumber":{"type":"integer","format":"int32","description":"Sequential number begins with first (1.) batch."},"batchProcessingState":{"type":"string","description":"The state of the batch.","enum":["INITIALIZED","COMPLETED","PROCESSING","PARTIAL","ERROR"]},"batchTotal":{"type":"integer","format":"int32","description":"The total number of batches."},"completedOn":{"type":"string","format":"date-time"},"jobs":{"type":"array","description":"Array of jobs.","items":{"type":"object","additionalProperties":false,"properties":{"completedOn":{"type":"string","format":"date-time"},"id":{"type":"string","format":"uuid"},"startedOn":{"type":"string","format":"date-time"},"state":{"type":"string","enum":["UNSAVED","INITIAL","RUNNING","TRANSFERS_FINISHED","COMPLETED","CANCELED","ERROR"]}}},"maxItems":2147483647},"jobsInBatchChecksum":{"type":"integer","format":"int32","description":"Expected number of jobs in batch."},"orderId":{"type":"string","format":"uuid","description":"Id of the order.","maxLength":36,"minLength":36,"pattern":"/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i"},"startedOn":{"type":"string","format":"date-time"},"totalJobs":{"type":"integer","format":"int32","description":"Total amount of jobs inside the order."}}},"maxItems":2147483647},"orderId":{"type":"string","format":"uuid","description":"Id of the order.","maxLength":36,"minLength":36,"pattern":"/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i"},"state":{"type":"string","description":"The state of the order.","enum":["INITIALIZED","COMPLETED","PROCESSING","PARTIAL","ERROR"]}}}}},"description":"Cancel a batch order for a given orderId."},"400":{"content":{"application/json":{"examples":{"error":{"value":{"error":"Bad request","messages":["BadRequestException"],"statusCode":"400 BAD_REQUEST"}}},"schema":{"type":"object","additionalProperties":false,"description":"Error response.","properties":{"error":{"type":"string","description":"Error."},"messages":{"type":"array","description":"List of error messages.","items":{"type":"string"},"maxItems":2147483647},"statusCode":{"type":"string","description":"Error code.","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 EARLY_HINTS","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}}},"description":"Return Batch Order failed."},"401":{"content":{"application/json":{"examples":{"error":{"value":{"error":"Unauthorized","messages":["UnauthorizedException"],"statusCode":"401 UNAUTHORIZED"}}},"schema":{"type":"object","additionalProperties":false,"description":"Error response.","properties":{"error":{"type":"string","description":"Error."},"messages":{"type":"array","description":"List of error messages.","items":{"type":"string"},"maxItems":2147483647},"statusCode":{"type":"string","description":"Error code.","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 EARLY_HINTS","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}}},"description":"No valid authentication credentials."},"403":{"content":{"application/json":{"examples":{"error":{"value":{"error":"Forbidden","messages":["ForbiddenException"],"statusCode":"403 FORBIDDEN"}}},"schema":{"type":"object","additionalProperties":false,"description":"Error response.","properties":{"error":{"type":"string","description":"Error."},"messages":{"type":"array","description":"List of error messages.","items":{"type":"string"},"maxItems":2147483647},"statusCode":{"type":"string","description":"Error code.","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 EARLY_HINTS","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}}},"description":"Authorization refused by server."},"404":{"content":{"application/json":{"examples":{"error":{"value":{"error":"Not found","messages":["NotFoundException"],"statusCode":"404 NOT_FOUND"}}},"schema":{"type":"object","additionalProperties":false,"description":"Error response.","properties":{"error":{"type":"string","description":"Error."},"messages":{"type":"array","description":"List of error messages.","items":{"type":"string"},"maxItems":2147483647},"statusCode":{"type":"string","description":"Error code.","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 EARLY_HINTS","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}}},"description":"Batch Order with the requested orderId not found."}},"security":[{"oAuth2":["profile email"]}],"tags":["Item Relationship Service"],"method":"put","path":"/irs/orders/{orderId}","servers":[{"url":"http://localhost:8080"}],"securitySchemes":{"oAuth2":{"flows":{"clientCredentials":{"scopes":{"profile email":""},"tokenUrl":"https://localhost"}},"type":"oauth2"}},"info":{"description":"The API of the Item Relationship Service (IRS) for retrieving item graphs along the value chain of CATENA-X partners.","title":"IRS API","version":"2.0"},"postman":{"name":"Cancel a batch order for a given orderId.","description":{"content":"Cancel a batch order for a given orderId.","type":"text/plain"},"url":{"path":["irs","orders",":orderId"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) Id of the order.","type":"text/plain"},"type":"any","value":"","key":"orderId"}]},"header":[{"key":"Accept","value":"application/json"}],"method":"PUT","auth":{"type":"oauth2","oauth2":[]}}} +sidebar_class_name: "put api-method" +info_path: docs-kits/kits/Data Chain Kit/Software Development View/Job Api/irs-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Cancel a batch order for a given orderId. + + + +Cancel a batch order for a given orderId. + +
Path Parameters
+ +Cancel a batch order for a given orderId. + +
Schema
    batches object[]
    + +**Possible values:** `<= 2147483647` + +
    + +Array of batches. + +
    = 36 characters` and `<= 36 characters`, Value must match regular expression `/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i`"} defaultValue={undefined}>
    jobs object[]
    + +**Possible values:** `<= 2147483647` + +
    + +Array of jobs. + +
    = 36 characters` and `<= 36 characters`, Value must match regular expression `/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i`"} defaultValue={undefined}>
    = 36 characters` and `<= 36 characters`, Value must match regular expression `/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i`"} defaultValue={undefined}>
+ +Return Batch Order failed. + +
Schema
+ +No valid authentication credentials. + +
Schema
+ +Authorization refused by server. + +
Schema
+ +Batch Order with the requested orderId not found. + +
Schema
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Software Development View/Job Api/cancel-job-by-job-id.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Software Development View/Job Api/cancel-job-by-job-id.api.mdx new file mode 100644 index 00000000000..61208afcc46 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Software Development View/Job Api/cancel-job-by-job-id.api.mdx @@ -0,0 +1,70 @@ +--- +id: cancel-job-by-job-id +title: "Cancel job for requested jobId." +description: "Cancel job for requested jobId." +sidebar_label: "Cancel job for requested jobId." +hide_title: true +hide_table_of_contents: true +api: {"description":"Cancel job for requested jobId.","operationId":"cancelJobByJobId","parameters":[{"description":"Id of the job.","example":"6c311d29-5753-46d4-b32c-19b918ea93b0","in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid","maxLength":36,"minLength":36}}],"responses":{"200":{"content":{"application/json":{"examples":{"complete":{"value":{"completedOn":"2022-02-03T14:48:54.709Z","globalAssetId":"urn:uuid:6c311d29-5753-46d4-b32c-19b918ea93b0","id":"6c311d29-5753-46d4-b32c-19b918ea93b0","lastModifiedOn":"2022-02-03T14:48:54.709Z","startedOn":"2022-02-03T14:48:54.709Z","state":"CANCELED"}}},"schema":{"type":"object","additionalProperties":false,"description":"Executable unit with meta information and item graph result.","properties":{"completedOn":{"type":"string","format":"date-time"},"createdOn":{"type":"string","format":"date-time"},"exception":{"type":"object","additionalProperties":false,"description":"Job error details.","properties":{"errorDetail":{"type":"string","description":"Detailed exception information.","maxLength":4000},"exception":{"type":"string","description":"Exception name.","maxLength":100},"exceptionDate":{"type":"string","format":"date-time","description":"Datetime error occurs."}}},"globalAssetId":{"type":"string","description":"Part global unique id in the format urn:uuid:uuid4.","example":"urn:uuid:6c311d29-5753-46d4-b32c-19b918ea93b0","maxLength":45,"minLength":45,"pattern":"^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}$"},"id":{"type":"string","format":"uuid","description":"Id of the job.","maxLength":36,"minLength":36,"pattern":"/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i"},"lastModifiedOn":{"type":"string","format":"date-time"},"owner":{"type":"string","description":"The IRS api consumer."},"parameter":{"type":"object","additionalProperties":false,"description":"Job parameter of job processing.","properties":{"aspects":{"type":"string"},"bomLifecycle":{"type":"string","description":"The lifecycle context in which the child part was assembled into the parent part.","enum":["asBuilt","asPlanned"]},"callbackUrl":{"type":"string"},"collectAspects":{"type":"boolean"},"depth":{"type":"integer","format":"int32","maximum":2147483647,"minimum":0},"direction":{"type":"string","description":"Item graph traversal direction.","enum":["upward","downward"]},"lookupBPNs":{"type":"boolean"}}},"startedOn":{"type":"string","format":"date-time"},"state":{"type":"string","enum":["UNSAVED","INITIAL","RUNNING","TRANSFERS_FINISHED","COMPLETED","CANCELED","ERROR"]},"summary":{"type":"object","additionalProperties":false,"description":"Summary of the job with statistics of the job processing.","properties":{"asyncFetchedItems":{"type":"object","additionalProperties":false,"description":"Statistics of job execution.","properties":{"completed":{"type":"integer","format":"int32","description":"Number of completed item transfers.","maximum":2147483647,"minimum":0},"failed":{"type":"integer","format":"int32","description":"Number of failed item transfers.","maximum":2147483647,"minimum":0},"running":{"type":"integer","format":"int32","description":"Number of running item transfers.","maximum":2147483647,"minimum":0}}},"bpnLookups":{"type":"object","additionalProperties":false,"description":"Statistics of job execution.","properties":{"completed":{"type":"integer","format":"int32","description":"Number of completed item transfers.","maximum":2147483647,"minimum":0},"failed":{"type":"integer","format":"int32","description":"Number of failed item transfers.","maximum":2147483647,"minimum":0},"running":{"type":"integer","format":"int32","description":"Number of running item transfers.","maximum":2147483647,"minimum":0}}}}}},"required":["globalAssetId","id","state"]}}},"description":"Job with requested jobId canceled."},"400":{"content":{"application/json":{"examples":{"error":{"value":{"error":"Bad request","messages":["BadRequestException"],"statusCode":"400 BAD_REQUEST"}}},"schema":{"type":"object","additionalProperties":false,"description":"Error response.","properties":{"error":{"type":"string","description":"Error."},"messages":{"type":"array","description":"List of error messages.","items":{"type":"string"},"maxItems":2147483647},"statusCode":{"type":"string","description":"Error code.","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 EARLY_HINTS","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}}},"description":"Cancel job failed."},"401":{"content":{"application/json":{"examples":{"error":{"value":{"error":"Unauthorized","messages":["UnauthorizedException"],"statusCode":"401 UNAUTHORIZED"}}},"schema":{"type":"object","additionalProperties":false,"description":"Error response.","properties":{"error":{"type":"string","description":"Error."},"messages":{"type":"array","description":"List of error messages.","items":{"type":"string"},"maxItems":2147483647},"statusCode":{"type":"string","description":"Error code.","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 EARLY_HINTS","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}}},"description":"No valid authentication credentials."},"403":{"content":{"application/json":{"examples":{"error":{"value":{"error":"Forbidden","messages":["ForbiddenException"],"statusCode":"403 FORBIDDEN"}}},"schema":{"type":"object","additionalProperties":false,"description":"Error response.","properties":{"error":{"type":"string","description":"Error."},"messages":{"type":"array","description":"List of error messages.","items":{"type":"string"},"maxItems":2147483647},"statusCode":{"type":"string","description":"Error code.","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 EARLY_HINTS","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}}},"description":"Authorization refused by server."},"404":{"content":{"application/json":{"examples":{"error":{"value":{"error":"Not found","messages":["NotFoundException"],"statusCode":"404 NOT_FOUND"}}},"schema":{"type":"object","additionalProperties":false,"description":"Error response.","properties":{"error":{"type":"string","description":"Error."},"messages":{"type":"array","description":"List of error messages.","items":{"type":"string"},"maxItems":2147483647},"statusCode":{"type":"string","description":"Error code.","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 EARLY_HINTS","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}}},"description":"Job for requested jobId not found."}},"security":[{"oAuth2":["profile email"]}],"tags":["Item Relationship Service"],"method":"put","path":"/irs/jobs/{id}","servers":[{"url":"http://localhost:8080"}],"securitySchemes":{"oAuth2":{"flows":{"clientCredentials":{"scopes":{"profile email":""},"tokenUrl":"https://localhost"}},"type":"oauth2"}},"info":{"description":"The API of the Item Relationship Service (IRS) for retrieving item graphs along the value chain of CATENA-X partners.","title":"IRS API","version":"2.0"},"postman":{"name":"Cancel job for requested jobId.","description":{"content":"Cancel job for requested jobId.","type":"text/plain"},"url":{"path":["irs","jobs",":id"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) Id of the job.","type":"text/plain"},"type":"any","value":"","key":"id"}]},"header":[{"key":"Accept","value":"application/json"}],"method":"PUT","auth":{"type":"oauth2","oauth2":[]}}} +sidebar_class_name: "put api-method" +info_path: docs-kits/kits/Data Chain Kit/Software Development View/Job Api/irs-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Cancel job for requested jobId. + + + +Cancel job for requested jobId. + +
Path Parameters
+ +Job with requested jobId canceled. + +
Schema
    exception object
    + +Job error details. + +
    = 45 characters` and `<= 45 characters`, Value must match regular expression `^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}$`"} defaultValue={undefined}>= 36 characters` and `<= 36 characters`, Value must match regular expression `/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i`"} defaultValue={undefined}>
    parameter object
    + +Job parameter of job processing. + +
    summary object
    + +Summary of the job with statistics of the job processing. + +
    asyncFetchedItems object
    + +Statistics of job execution. + +
    bpnLookups object
    + +Statistics of job execution. + +
+ +Cancel job failed. + +
Schema
+ +No valid authentication credentials. + +
Schema
+ +Authorization refused by server. + +
Schema
+ +Job for requested jobId not found. + +
Schema
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Software Development View/Job Api/get-all-aspect-models.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Software Development View/Job Api/get-all-aspect-models.api.mdx new file mode 100644 index 00000000000..ef29eea466c --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Software Development View/Job Api/get-all-aspect-models.api.mdx @@ -0,0 +1,42 @@ +--- +id: get-all-aspect-models +title: "Get all available aspect models from semantic hub or local models." +description: "Get all available aspect models from semantic hub or local models." +sidebar_label: "Get all available aspect models from semantic hub or local models." +hide_title: true +hide_table_of_contents: true +api: {"description":"Get all available aspect models from semantic hub or local models.","operationId":"getAllAspectModels","responses":{"200":{"content":{"application/json":{"examples":{"complete":{"value":{"lastUpdated":"2023-02-13T08:18:11.990659500Z","models":[{"urn":"urn:bamm:io.catenax.assembly_part_relationship:1.1.1#AssemblyPartRelationship","name":"AssemblyPartRelationship","status":"RELEASED","type":"BAMM","version":"1.1.1"},{"urn":"urn:bamm:io.catenax.serial_part_typization:1.1.0#SerialPartTypization","name":"SerialPartTypization","status":"RELEASED","type":"BAMM","version":"1.1.0"}]}}},"schema":{"type":"object","additionalProperties":false,"properties":{"lastUpdated":{"type":"string"},"models":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string"},"status":{"type":"string"},"type":{"type":"string"},"urn":{"type":"string"},"version":{"type":"string"}}}}}}}},"description":"Returns all available aspect models."},"401":{"content":{"application/json":{"examples":{"error":{"value":{"error":"Unauthorized","messages":["UnauthorizedException"],"statusCode":"401 UNAUTHORIZED"}}},"schema":{"type":"object","additionalProperties":false,"description":"Error response.","properties":{"error":{"type":"string","description":"Error."},"messages":{"type":"array","description":"List of error messages.","items":{"type":"string"},"maxItems":2147483647},"statusCode":{"type":"string","description":"Error code.","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 EARLY_HINTS","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}}},"description":"No valid authentication credentials."},"403":{"content":{"application/json":{"examples":{"error":{"value":{"error":"Forbidden","messages":["ForbiddenException"],"statusCode":"403 FORBIDDEN"}}},"schema":{"type":"object","additionalProperties":false,"description":"Error response.","properties":{"error":{"type":"string","description":"Error."},"messages":{"type":"array","description":"List of error messages.","items":{"type":"string"},"maxItems":2147483647},"statusCode":{"type":"string","description":"Error code.","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 EARLY_HINTS","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}}},"description":"Authorization refused by server."}},"security":[{"oAuth2":["profile email"]}],"tags":["Aspect Models"],"method":"get","path":"/irs/aspectmodels","servers":[{"url":"http://localhost:8080"}],"securitySchemes":{"oAuth2":{"flows":{"clientCredentials":{"scopes":{"profile email":""},"tokenUrl":"https://localhost"}},"type":"oauth2"}},"info":{"description":"The API of the Item Relationship Service (IRS) for retrieving item graphs along the value chain of CATENA-X partners.","title":"IRS API","version":"2.0"},"postman":{"name":"Get all available aspect models from semantic hub or local models.","description":{"content":"Get all available aspect models from semantic hub or local models.","type":"text/plain"},"url":{"path":["irs","aspectmodels"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","auth":{"type":"oauth2","oauth2":[]}}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/Data Chain Kit/Software Development View/Job Api/irs-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Get all available aspect models from semantic hub or local models. + + + +Get all available aspect models from semantic hub or local models. + +
+ +Returns all available aspect models. + +
Schema
    models object[]
+ +No valid authentication credentials. + +
Schema
+ +Authorization refused by server. + +
Schema
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Software Development View/Job Api/get-batch-order.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Software Development View/Job Api/get-batch-order.api.mdx new file mode 100644 index 00000000000..dce10243886 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Software Development View/Job Api/get-batch-order.api.mdx @@ -0,0 +1,66 @@ +--- +id: get-batch-order +title: "Get a batch order for a given orderId." +description: "Get a batch order for a given orderId." +sidebar_label: "Get a batch order for a given orderId." +hide_title: true +hide_table_of_contents: true +api: {"description":"Get a batch order for a given orderId.","operationId":"getBatchOrder","parameters":[{"description":"Id of the order.","example":"6c311d29-5753-46d4-b32c-19b918ea93b0","in":"path","name":"orderId","required":true,"schema":{"type":"string","format":"uuid","maxLength":36,"minLength":36}}],"responses":{"200":{"content":{"application/json":{"examples":{"complete":{"value":{"batchChecksum":1,"batches":[{"batchId":"f253718e-a270-4367-901b-9d50d9bd8462","batchNumber":1,"batchProcessingState":"PARTIAL","batchUrl":"https://../irs/orders/f253718e-a270-4367-901b-9d50d9bd8462/batches/f253718e-a270-4367-901b-9d50d9bd8462","jobsInBatchChecksum":1}],"orderId":"f253718e-a270-4367-901b-9d50d9bd8462","state":"COMPLETED"}}},"schema":{"type":"object","additionalProperties":false,"description":"BatchOrderAck Payload Response.","properties":{"batchChecksum":{"type":"integer","format":"int32","description":"Expected number of batches in order."},"batches":{"type":"array","description":"Array of batches.","items":{"type":"object","additionalProperties":false,"description":"Batch model.","properties":{"batchId":{"type":"string","format":"uuid","description":"Id of the batch.","maxLength":36,"minLength":36,"pattern":"/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i"},"batchNumber":{"type":"integer","format":"int32","description":"Sequential number begins with first (1.) batch."},"batchProcessingState":{"type":"string","description":"The state of the batch.","enum":["INITIALIZED","COMPLETED","PROCESSING","PARTIAL","ERROR"]},"batchTotal":{"type":"integer","format":"int32","description":"The total number of batches."},"completedOn":{"type":"string","format":"date-time"},"jobs":{"type":"array","description":"Array of jobs.","items":{"type":"object","additionalProperties":false,"properties":{"completedOn":{"type":"string","format":"date-time"},"id":{"type":"string","format":"uuid"},"startedOn":{"type":"string","format":"date-time"},"state":{"type":"string","enum":["UNSAVED","INITIAL","RUNNING","TRANSFERS_FINISHED","COMPLETED","CANCELED","ERROR"]}}},"maxItems":2147483647},"jobsInBatchChecksum":{"type":"integer","format":"int32","description":"Expected number of jobs in batch."},"orderId":{"type":"string","format":"uuid","description":"Id of the order.","maxLength":36,"minLength":36,"pattern":"/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i"},"startedOn":{"type":"string","format":"date-time"},"totalJobs":{"type":"integer","format":"int32","description":"Total amount of jobs inside the order."}}},"maxItems":2147483647},"orderId":{"type":"string","format":"uuid","description":"Id of the order.","maxLength":36,"minLength":36,"pattern":"/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i"},"state":{"type":"string","description":"The state of the order.","enum":["INITIALIZED","COMPLETED","PROCESSING","PARTIAL","ERROR"]}}}}},"description":"Get a batch order for a given orderId."},"400":{"content":{"application/json":{"examples":{"error":{"value":{"error":"Bad request","messages":["BadRequestException"],"statusCode":"400 BAD_REQUEST"}}},"schema":{"type":"object","additionalProperties":false,"description":"Error response.","properties":{"error":{"type":"string","description":"Error."},"messages":{"type":"array","description":"List of error messages.","items":{"type":"string"},"maxItems":2147483647},"statusCode":{"type":"string","description":"Error code.","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 EARLY_HINTS","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}}},"description":"Return Batch Order failed."},"401":{"content":{"application/json":{"examples":{"error":{"value":{"error":"Unauthorized","messages":["UnauthorizedException"],"statusCode":"401 UNAUTHORIZED"}}},"schema":{"type":"object","additionalProperties":false,"description":"Error response.","properties":{"error":{"type":"string","description":"Error."},"messages":{"type":"array","description":"List of error messages.","items":{"type":"string"},"maxItems":2147483647},"statusCode":{"type":"string","description":"Error code.","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 EARLY_HINTS","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}}},"description":"No valid authentication credentials."},"403":{"content":{"application/json":{"examples":{"error":{"value":{"error":"Forbidden","messages":["ForbiddenException"],"statusCode":"403 FORBIDDEN"}}},"schema":{"type":"object","additionalProperties":false,"description":"Error response.","properties":{"error":{"type":"string","description":"Error."},"messages":{"type":"array","description":"List of error messages.","items":{"type":"string"},"maxItems":2147483647},"statusCode":{"type":"string","description":"Error code.","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 EARLY_HINTS","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}}},"description":"Authorization refused by server."},"404":{"content":{"application/json":{"examples":{"error":{"value":{"error":"Not found","messages":["NotFoundException"],"statusCode":"404 NOT_FOUND"}}},"schema":{"type":"object","additionalProperties":false,"description":"Error response.","properties":{"error":{"type":"string","description":"Error."},"messages":{"type":"array","description":"List of error messages.","items":{"type":"string"},"maxItems":2147483647},"statusCode":{"type":"string","description":"Error code.","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 EARLY_HINTS","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}}},"description":"Batch Order with the requested orderId not found."}},"security":[{"oAuth2":["profile email"]}],"tags":["Item Relationship Service"],"method":"get","path":"/irs/orders/{orderId}","servers":[{"url":"http://localhost:8080"}],"securitySchemes":{"oAuth2":{"flows":{"clientCredentials":{"scopes":{"profile email":""},"tokenUrl":"https://localhost"}},"type":"oauth2"}},"info":{"description":"The API of the Item Relationship Service (IRS) for retrieving item graphs along the value chain of CATENA-X partners.","title":"IRS API","version":"2.0"},"postman":{"name":"Get a batch order for a given orderId.","description":{"content":"Get a batch order for a given orderId.","type":"text/plain"},"url":{"path":["irs","orders",":orderId"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) Id of the order.","type":"text/plain"},"type":"any","value":"","key":"orderId"}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","auth":{"type":"oauth2","oauth2":[]}}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/Data Chain Kit/Software Development View/Job Api/irs-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Get a batch order for a given orderId. + + + +Get a batch order for a given orderId. + +
Path Parameters
+ +Get a batch order for a given orderId. + +
Schema
    batches object[]
    + +**Possible values:** `<= 2147483647` + +
    + +Array of batches. + +
    = 36 characters` and `<= 36 characters`, Value must match regular expression `/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i`"} defaultValue={undefined}>
    jobs object[]
    + +**Possible values:** `<= 2147483647` + +
    + +Array of jobs. + +
    = 36 characters` and `<= 36 characters`, Value must match regular expression `/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i`"} defaultValue={undefined}>
    = 36 characters` and `<= 36 characters`, Value must match regular expression `/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i`"} defaultValue={undefined}>
+ +Return Batch Order failed. + +
Schema
+ +No valid authentication credentials. + +
Schema
+ +Authorization refused by server. + +
Schema
+ +Batch Order with the requested orderId not found. + +
Schema
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Software Development View/Job Api/get-batch.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Software Development View/Job Api/get-batch.api.mdx new file mode 100644 index 00000000000..0b56af79336 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Software Development View/Job Api/get-batch.api.mdx @@ -0,0 +1,58 @@ +--- +id: get-batch +title: "Get a batch with a given batchId for a given orderId." +description: "Get a batch with a given batchId for a given orderId." +sidebar_label: "Get a batch with a given batchId for a given orderId." +hide_title: true +hide_table_of_contents: true +api: {"description":"Get a batch with a given batchId for a given orderId.","operationId":"getBatch","parameters":[{"description":"Id of the order.","example":"6c311d29-5753-46d4-b32c-19b918ea93b0","in":"path","name":"orderId","required":true,"schema":{"type":"string","format":"uuid","maxLength":36,"minLength":36}},{"description":"Id of the batch.","example":"4bce40b8-64c7-41bf-9ca3-e9432c7fef98","in":"path","name":"batchId","required":true,"schema":{"type":"string","format":"uuid","maxLength":36,"minLength":36}}],"responses":{"200":{"content":{"application/json":{"examples":{"complete":{"value":{"batchId":"f253718e-a270-4367-901b-9d50d9bd8462","batchNumber":1,"batchProcessingState":"COMPLETED","batchTotal":1,"completedOn":"2022-02-03T14:48:54.709Z","jobs":[{"completedOn":"2022-02-03T14:48:54.709Z","id":"6c311d29-5753-46d4-b32c-19b918ea93b0","startedOn":"2022-02-03T14:48:54.709Z","state":"COMPLETED"}],"jobsInBatchChecksum":1,"orderId":"f253718e-a270-4367-901b-9d50d9bd8462","startedOn":"2022-02-03T14:48:54.709Z","totalJobs":1}}},"schema":{"type":"object","additionalProperties":false,"description":"Batch model.","properties":{"batchId":{"type":"string","format":"uuid","description":"Id of the batch.","maxLength":36,"minLength":36,"pattern":"/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i"},"batchNumber":{"type":"integer","format":"int32","description":"Sequential number begins with first (1.) batch."},"batchProcessingState":{"type":"string","description":"The state of the batch.","enum":["INITIALIZED","COMPLETED","PROCESSING","PARTIAL","ERROR"]},"batchTotal":{"type":"integer","format":"int32","description":"The total number of batches."},"completedOn":{"type":"string","format":"date-time"},"jobs":{"type":"array","description":"Array of jobs.","items":{"type":"object","additionalProperties":false,"properties":{"completedOn":{"type":"string","format":"date-time"},"id":{"type":"string","format":"uuid"},"startedOn":{"type":"string","format":"date-time"},"state":{"type":"string","enum":["UNSAVED","INITIAL","RUNNING","TRANSFERS_FINISHED","COMPLETED","CANCELED","ERROR"]}}},"maxItems":2147483647},"jobsInBatchChecksum":{"type":"integer","format":"int32","description":"Expected number of jobs in batch."},"orderId":{"type":"string","format":"uuid","description":"Id of the order.","maxLength":36,"minLength":36,"pattern":"/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i"},"startedOn":{"type":"string","format":"date-time"},"totalJobs":{"type":"integer","format":"int32","description":"Total amount of jobs inside the order."}}}}},"description":"Get a batch with a given batchId for a given orderId."},"400":{"content":{"application/json":{"examples":{"error":{"value":{"error":"Bad request","messages":["BadRequestException"],"statusCode":"400 BAD_REQUEST"}}},"schema":{"type":"object","additionalProperties":false,"description":"Error response.","properties":{"error":{"type":"string","description":"Error."},"messages":{"type":"array","description":"List of error messages.","items":{"type":"string"},"maxItems":2147483647},"statusCode":{"type":"string","description":"Error code.","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 EARLY_HINTS","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}}},"description":"Return batch failed."},"401":{"content":{"application/json":{"examples":{"error":{"value":{"error":"Unauthorized","messages":["UnauthorizedException"],"statusCode":"401 UNAUTHORIZED"}}},"schema":{"type":"object","additionalProperties":false,"description":"Error response.","properties":{"error":{"type":"string","description":"Error."},"messages":{"type":"array","description":"List of error messages.","items":{"type":"string"},"maxItems":2147483647},"statusCode":{"type":"string","description":"Error code.","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 EARLY_HINTS","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}}},"description":"No valid authentication credentials."},"403":{"content":{"application/json":{"examples":{"error":{"value":{"error":"Forbidden","messages":["ForbiddenException"],"statusCode":"403 FORBIDDEN"}}},"schema":{"type":"object","additionalProperties":false,"description":"Error response.","properties":{"error":{"type":"string","description":"Error."},"messages":{"type":"array","description":"List of error messages.","items":{"type":"string"},"maxItems":2147483647},"statusCode":{"type":"string","description":"Error code.","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 EARLY_HINTS","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}}},"description":"Authorization refused by server."},"404":{"content":{"application/json":{"examples":{"error":{"value":{"error":"Not found","messages":["NotFoundException"],"statusCode":"404 NOT_FOUND"}}},"schema":{"type":"object","additionalProperties":false,"description":"Error response.","properties":{"error":{"type":"string","description":"Error."},"messages":{"type":"array","description":"List of error messages.","items":{"type":"string"},"maxItems":2147483647},"statusCode":{"type":"string","description":"Error code.","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 EARLY_HINTS","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}}},"description":"Batch with the requested orderId and batchId not found."}},"security":[{"oAuth2":["profile email"]}],"tags":["Item Relationship Service"],"method":"get","path":"/irs/orders/{orderId}/batches/{batchId}","servers":[{"url":"http://localhost:8080"}],"securitySchemes":{"oAuth2":{"flows":{"clientCredentials":{"scopes":{"profile email":""},"tokenUrl":"https://localhost"}},"type":"oauth2"}},"info":{"description":"The API of the Item Relationship Service (IRS) for retrieving item graphs along the value chain of CATENA-X partners.","title":"IRS API","version":"2.0"},"postman":{"name":"Get a batch with a given batchId for a given orderId.","description":{"content":"Get a batch with a given batchId for a given orderId.","type":"text/plain"},"url":{"path":["irs","orders",":orderId","batches",":batchId"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) Id of the order.","type":"text/plain"},"type":"any","value":"","key":"orderId"},{"disabled":false,"description":{"content":"(Required) Id of the batch.","type":"text/plain"},"type":"any","value":"","key":"batchId"}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","auth":{"type":"oauth2","oauth2":[]}}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/Data Chain Kit/Software Development View/Job Api/irs-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Get a batch with a given batchId for a given orderId. + + + +Get a batch with a given batchId for a given orderId. + +
Path Parameters
+ +Get a batch with a given batchId for a given orderId. + +
Schema
    = 36 characters` and `<= 36 characters`, Value must match regular expression `/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i`"} defaultValue={undefined}>
    jobs object[]
    + +**Possible values:** `<= 2147483647` + +
    + +Array of jobs. + +
    = 36 characters` and `<= 36 characters`, Value must match regular expression `/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i`"} defaultValue={undefined}>
+ +Return batch failed. + +
Schema
+ +No valid authentication credentials. + +
Schema
+ +Authorization refused by server. + +
Schema
+ +Batch with the requested orderId and batchId not found. + +
Schema
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Software Development View/Job Api/get-bpn-investigation.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Software Development View/Job Api/get-bpn-investigation.api.mdx new file mode 100644 index 00000000000..04a84ee20fb --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Software Development View/Job Api/get-bpn-investigation.api.mdx @@ -0,0 +1,142 @@ +--- +id: get-bpn-investigation +title: "Return job with additional supplyChainImpacted information." +description: "Return job with additional supplyChainImpacted information." +sidebar_label: "Return job with additional supplyChainImpacted information." +hide_title: true +hide_table_of_contents: true +api: {"description":"Return job with additional supplyChainImpacted information.","operationId":"getBPNInvestigation","parameters":[{"description":"Id of the job.","example":"6c311d29-5753-46d4-b32c-19b918ea93b0","in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"content":{"application/json":{"examples":{"complete":{"value":{"bpns":[{"manufacturerId":"BPNL00000003AYRE","manufacturerName":"OEM A"}],"job":{"completedOn":"2022-02-03T14:48:54.709Z","createdOn":"2022-02-03T14:48:54.709Z","exception":{"errorDetail":"Timeout while requesting Digital Registry","exception":"IrsTimeoutException","exceptionDate":"2022-02-03T14:48:54.709Z"},"globalAssetId":"urn:uuid:6c311d29-5753-46d4-b32c-19b918ea93b0","id":"e5347c88-a921-11ec-b909-0242ac120002","lastModifiedOn":"2022-02-03T14:48:54.709Z","owner":"","parameter":{"aspects":["SerialPartTypization","AddressAspect"],"bomLifecycle":"asBuilt","collectAspects":false,"depth":1,"direction":"downward","lookupBPNs":false},"startedOn":"2022-02-03T14:48:54.709Z","state":"COMPLETED","summary":{"asyncFetchedItems":{"completed":0,"failed":0,"running":0}}},"relationships":[{"catenaXId":"urn:uuid:d9bec1c6-e47c-4d18-ba41-0a5fe8b7f447","linkedItem":{"assembledOn":"2022-02-03T14:48:54.709Z","childCatenaXId":"urn:uuid:a45a2246-f6e1-42da-b47d-5c3b58ed62e9","lastModifiedOn":"2022-02-03T14:48:54.709Z","lifecycleContext":"asBuilt","quantity":{"measurementUnit":{"datatypeURI":"urn:bamm:io.openmanufacturing:meta-model:1.0.0#piece","lexicalValue":"piece"},"quantityNumber":1}}}],"shells":[{"description":[{"language":"en","text":"The shell for a vehicle"}],"globalAssetId":{"value":["urn:uuid:a45a2246-f6e1-42da-b47d-5c3b58ed62e9"]},"idShort":"future concept x","identification":"882fc530-b69b-4707-95f6-5dbc5e9baaa8","specificAssetIds":[{"key":"engineserialid","value":"12309481209312"}],"submodelDescriptors":[{"description":[{"language":"en","text":"Provides base vehicle information"}],"endpoints":[{"interface":"HTTP","protocolInformation":{"endpointAddress":"https://catena-x.net/vehicle/basedetails/","endpointProtocol":"HTTPS","endpointProtocolVersion":"1.0"}}],"idShort":"vehicle base details","identification":"4a738a24-b7d8-4989-9cd6-387772f40565","semanticId":{"value":["urn:bamm:com.catenax.vehicle:0.1.1"]}},{"description":[{"language":"en","text":"Provides base vehicle information"}],"endpoints":[{"interface":"HTTP","protocolInformation":{"endpointAddress":"https://catena-x.net/vehicle/partdetails/","endpointProtocol":"HTTPS","endpointProtocolVersion":"1.0"}}],"idShort":"vehicle part details","identification":"dae4d249-6d66-4818-b576-bf52f3b9ae90","semanticId":{"value":["urn:bamm:com.catenax.vehicle:0.1.1#PartDetails"]}}]}],"submodels":[{"aspectType":"urn:bamm:io.catenax.assembly_part_relationship:1.0.0","identification":"urn:uuid:fc784d2a-5506-4e61-8e34-21600f8cdeff","payload":{"catenaXId":"urn:uuid:d9bec1c6-e47c-4d18-ba41-0a5fe8b7f447","childParts":[{"createdOn":"2022-02-03T14:48:54.709Z","childCatenaXId":"urn:uuid:d9bec1c6-e47c-4d18-ba41-0a5fe8b7f447","lastModifiedOn":"2022-02-03T14:48:54.709Z","lifecycleContext":"AsBuilt","quantity":{"measurementUnit":{"datatypeURI":"urn:bamm:io.openmanufacturing:meta-model:1.0.0#piece","lexicalValue":"piece"},"quantityNumber":1}}]}}],"tombstones":[{"catenaXId":"urn:uuid:6c311d29-5753-46d4-b32c-19b918ea93b0","endpointURL":"https://catena-x.net/vehicle/partdetails/","processingError":{"errorDetail":"Details to reason of Failure","lastAttempt":"2022-02-03T14:48:54.709Z","processStep":"SchemaValidation","retryCounter":0}}]}}},"schema":{"type":"object","additionalProperties":false,"description":"Container for a job with item graph.","properties":{"bpns":{"type":"array","description":"Collection of bpn mappings","items":{"type":"object","additionalProperties":false,"description":"Business partner id with name","properties":{"manufacturerId":{"type":"string"},"manufacturerName":{"type":"string"}}},"maxItems":2147483647,"uniqueItems":true},"job":{"type":"object","additionalProperties":false,"description":"Executable unit with meta information and item graph result.","properties":{"completedOn":{"type":"string","format":"date-time"},"createdOn":{"type":"string","format":"date-time"},"exception":{"type":"object","additionalProperties":false,"description":"Job error details.","properties":{"errorDetail":{"type":"string","description":"Detailed exception information.","maxLength":4000},"exception":{"type":"string","description":"Exception name.","maxLength":100},"exceptionDate":{"type":"string","format":"date-time","description":"Datetime error occurs."}}},"globalAssetId":{"type":"string","description":"Part global unique id in the format urn:uuid:uuid4.","example":"urn:uuid:6c311d29-5753-46d4-b32c-19b918ea93b0","maxLength":45,"minLength":45,"pattern":"^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}$"},"id":{"type":"string","format":"uuid","description":"Id of the job.","maxLength":36,"minLength":36,"pattern":"/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i"},"lastModifiedOn":{"type":"string","format":"date-time"},"owner":{"type":"string","description":"The IRS api consumer."},"parameter":{"type":"object","additionalProperties":false,"description":"Job parameter of job processing.","properties":{"aspects":{"type":"string"},"bomLifecycle":{"type":"string","description":"The lifecycle context in which the child part was assembled into the parent part.","enum":["asBuilt","asPlanned"]},"callbackUrl":{"type":"string"},"collectAspects":{"type":"boolean"},"depth":{"type":"integer","format":"int32","maximum":2147483647,"minimum":0},"direction":{"type":"string","description":"Item graph traversal direction.","enum":["upward","downward"]},"lookupBPNs":{"type":"boolean"}}},"startedOn":{"type":"string","format":"date-time"},"state":{"type":"string","enum":["UNSAVED","INITIAL","RUNNING","TRANSFERS_FINISHED","COMPLETED","CANCELED","ERROR"]},"summary":{"type":"object","additionalProperties":false,"description":"Summary of the job with statistics of the job processing.","properties":{"asyncFetchedItems":{"type":"object","additionalProperties":false,"description":"Statistics of job execution.","properties":{"completed":{"type":"integer","format":"int32","description":"Number of completed item transfers.","maximum":2147483647,"minimum":0},"failed":{"type":"integer","format":"int32","description":"Number of failed item transfers.","maximum":2147483647,"minimum":0},"running":{"type":"integer","format":"int32","description":"Number of running item transfers.","maximum":2147483647,"minimum":0}}},"bpnLookups":{"type":"object","additionalProperties":false,"description":"Statistics of job execution.","properties":{"completed":{"type":"integer","format":"int32","description":"Number of completed item transfers.","maximum":2147483647,"minimum":0},"failed":{"type":"integer","format":"int32","description":"Number of failed item transfers.","maximum":2147483647,"minimum":0},"running":{"type":"integer","format":"int32","description":"Number of running item transfers.","maximum":2147483647,"minimum":0}}}}}},"required":["globalAssetId","id","state"]},"relationships":{"type":"array","description":"Relationships between parent and child items.","items":{"type":"object","additionalProperties":false,"description":"Relationships between parent and child items.","properties":{"aspectType":{"type":"string"},"catenaXId":{"type":"string","description":"CATENA-X global asset id in the format urn:uuid:uuid4.","example":"urn:uuid:6c311d29-5753-46d4-b32c-19b918ea93b0","maxLength":45,"minLength":45,"pattern":"^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}$"},"linkedItem":{"type":"object","additionalProperties":false,"description":"Set of child parts the parent object is assembled by (one structural level down).","properties":{"assembledOn":{"type":"string","format":"date-time","description":"Datetime of assembly."},"childCatenaXId":{"type":"string","description":"CatenaX child global asset id in the format urn:uuid:uuid4.","example":"urn:uuid:6c311d29-5753-46d4-b32c-19b918ea93b0","maxLength":45,"minLength":45,"pattern":"^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}$"},"lastModifiedOn":{"type":"string","format":"date-time","description":"Last datetime item was modified."},"lifecycleContext":{"type":"string","description":"The lifecycle context in which the child part was assembled into the parent part.","enum":["asBuilt","asPlanned"]},"quantity":{"type":"object","additionalProperties":false,"description":"Quantity component.","properties":{"measurementUnit":{"type":"object","additionalProperties":false,"properties":{"datatypeURI":{"type":"string"},"lexicalValue":{"type":"string"}}},"quantityNumber":{"type":"number","format":"double","maximum":2147483647,"minimum":0}}}}}}},"maxItems":2147483647},"shells":{"type":"array","description":"AAS shells.","items":{"type":"object","additionalProperties":false,"description":"AAS shells.","properties":{"administration":{"type":"object","additionalProperties":false,"properties":{"revision":{"type":"string"},"version":{"type":"string"}}},"description":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"language":{"type":"string"},"text":{"type":"string"}}},"maxItems":2147483647},"globalAssetId":{"type":"object","additionalProperties":false,"properties":{"value":{"type":"array","items":{"type":"string"},"maxItems":2147483647}}},"idShort":{"type":"string"},"identification":{"type":"string"},"specificAssetIds":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"key":{"type":"string"},"semanticId":{"type":"object","additionalProperties":false,"properties":{"value":{"type":"array","items":{"type":"string"},"maxItems":2147483647}}},"subjectId":{"type":"object","additionalProperties":false,"properties":{"value":{"type":"array","items":{"type":"string"},"maxItems":2147483647}}},"value":{"type":"string"}}},"maxItems":2147483647},"submodelDescriptors":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"administration":{"type":"object","additionalProperties":false,"properties":{"revision":{"type":"string"},"version":{"type":"string"}}},"description":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"language":{"type":"string"},"text":{"type":"string"}}},"maxItems":2147483647},"endpoints":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"interface":{"type":"string"},"protocolInformation":{"type":"object","additionalProperties":false,"properties":{"endpointAddress":{"type":"string"},"endpointProtocol":{"type":"string"},"endpointProtocolVersion":{"type":"string"},"subprotocol":{"type":"string"},"subprotocolBody":{"type":"string"},"subprotocolBodyEncoding":{"type":"string"}}}}},"maxItems":2147483647},"idShort":{"type":"string"},"identification":{"type":"string"},"semanticId":{"type":"object","additionalProperties":false,"properties":{"value":{"type":"array","items":{"type":"string"},"maxItems":2147483647}}}}},"maxItems":2147483647}}},"maxItems":2147483647},"submodels":{"type":"array","description":"Collection of requested Submodels","items":{"type":"object","additionalProperties":false,"description":"Submodel with identification of SubmodelDescriptor, aspect type and payload as String","properties":{"aspectType":{"type":"string"},"identification":{"type":"string"},"payload":{"type":"object","additionalProperties":{"type":"object"}}}},"maxItems":2147483647},"tombstones":{"type":"array","description":"Collection of not resolvable endpoints as tombstones. Including cause of error and endpoint URL.","items":{"type":"object","additionalProperties":false,"description":"Tombstone with information about request failure","properties":{"catenaXId":{"type":"string","description":"CATENA-X global asset id in the format urn:uuid:uuid4.","example":"urn:uuid:6c311d29-5753-46d4-b32c-19b918ea93b0","maxLength":45,"minLength":45,"pattern":"^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}$"},"endpointURL":{"type":"string"},"processingError":{"type":"object","additionalProperties":false,"properties":{"errorDetail":{"type":"string"},"lastAttempt":{"type":"string","format":"date-time"},"processStep":{"type":"string","enum":["SubmodelRequest","DigitalTwinRequest","SchemaValidation","SchemaRequest","BpdmRequest","BpdmValidation","UsagePolicyValidation"]},"retryCounter":{"type":"integer","format":"int32","maximum":2147483647,"minimum":0}}}}},"maxItems":2147483647}}}}},"description":"Return job with item graph for the requested id."},"400":{"content":{"application/json":{"examples":{"error":{"value":{"error":"Bad request","messages":["BadRequestException"],"statusCode":"400 BAD_REQUEST"}}},"schema":{"type":"object","additionalProperties":false,"description":"Error response.","properties":{"error":{"type":"string","description":"Error."},"messages":{"type":"array","description":"List of error messages.","items":{"type":"string"},"maxItems":2147483647},"statusCode":{"type":"string","description":"Error code.","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 EARLY_HINTS","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}}},"description":"Return job failed."},"401":{"content":{"application/json":{"examples":{"error":{"value":{"error":"Unauthorized","messages":["UnauthorizedException"],"statusCode":"401 UNAUTHORIZED"}}},"schema":{"type":"object","additionalProperties":false,"description":"Error response.","properties":{"error":{"type":"string","description":"Error."},"messages":{"type":"array","description":"List of error messages.","items":{"type":"string"},"maxItems":2147483647},"statusCode":{"type":"string","description":"Error code.","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 EARLY_HINTS","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}}},"description":"No valid authentication credentials."},"403":{"content":{"application/json":{"examples":{"error":{"value":{"error":"Forbidden","messages":["ForbiddenException"],"statusCode":"403 FORBIDDEN"}}},"schema":{"type":"object","additionalProperties":false,"description":"Error response.","properties":{"error":{"type":"string","description":"Error."},"messages":{"type":"array","description":"List of error messages.","items":{"type":"string"},"maxItems":2147483647},"statusCode":{"type":"string","description":"Error code.","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 EARLY_HINTS","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}}},"description":"Authorization refused by server."},"404":{"content":{"application/json":{"examples":{"error":{"value":{"error":"Not found","messages":["NotFoundException"],"statusCode":"404 NOT_FOUND"}}},"schema":{"type":"object","additionalProperties":false,"description":"Error response.","properties":{"error":{"type":"string","description":"Error."},"messages":{"type":"array","description":"List of error messages.","items":{"type":"string"},"maxItems":2147483647},"statusCode":{"type":"string","description":"Error code.","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 EARLY_HINTS","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}}},"description":"Job with the requested jobId not found."}},"security":[{"oAuth2":["profile email"]}],"tags":["Environmental- and Social Standards"],"method":"get","path":"/ess/bpn/investigations/{id}","servers":[{"url":"http://localhost:8080"}],"securitySchemes":{"oAuth2":{"flows":{"clientCredentials":{"scopes":{"profile email":""},"tokenUrl":"https://localhost"}},"type":"oauth2"}},"info":{"description":"The API of the Item Relationship Service (IRS) for retrieving item graphs along the value chain of CATENA-X partners.","title":"IRS API","version":"2.0"},"postman":{"name":"Return job with additional supplyChainImpacted information.","description":{"content":"Return job with additional supplyChainImpacted information.","type":"text/plain"},"url":{"path":["ess","bpn","investigations",":id"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) Id of the job.","type":"text/plain"},"type":"any","value":"","key":"id"}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","auth":{"type":"oauth2","oauth2":[]}}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/Data Chain Kit/Software Development View/Job Api/irs-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Return job with additional supplyChainImpacted information. + + + +Return job with additional supplyChainImpacted information. + +
Path Parameters
+ +Return job with item graph for the requested id. + +
Schema
    bpns object[]
    + +**Possible values:** `<= 2147483647` + +
    + +Collection of bpn mappings + +
    job object
    + +Executable unit with meta information and item graph result. + +
    exception object
    + +Job error details. + +
    = 45 characters` and `<= 45 characters`, Value must match regular expression `^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}$`"} defaultValue={undefined}>= 36 characters` and `<= 36 characters`, Value must match regular expression `/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i`"} defaultValue={undefined}>
    parameter object
    + +Job parameter of job processing. + +
    summary object
    + +Summary of the job with statistics of the job processing. + +
    asyncFetchedItems object
    + +Statistics of job execution. + +
    bpnLookups object
    + +Statistics of job execution. + +
    relationships object[]
    + +**Possible values:** `<= 2147483647` + +
    + +Relationships between parent and child items. + +
    = 45 characters` and `<= 45 characters`, Value must match regular expression `^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}$`"} defaultValue={undefined}>
    linkedItem object
    + +Set of child parts the parent object is assembled by (one structural level down). + +
    = 45 characters` and `<= 45 characters`, Value must match regular expression `^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}$`"} defaultValue={undefined}>
    quantity object
    + +Quantity component. + +
    measurementUnit object
    shells object[]
    + +**Possible values:** `<= 2147483647` + +
    + +AAS shells. + +
    administration object
    description object[]
    + +**Possible values:** `<= 2147483647` + +
    globalAssetId object
    specificAssetIds object[]
    + +**Possible values:** `<= 2147483647` + +
    semanticId object
    subjectId object
    submodelDescriptors object[]
    + +**Possible values:** `<= 2147483647` + +
    administration object
    description object[]
    + +**Possible values:** `<= 2147483647` + +
    endpoints object[]
    + +**Possible values:** `<= 2147483647` + +
    protocolInformation object
    semanticId object
    submodels object[]
    + +**Possible values:** `<= 2147483647` + +
    + +Collection of requested Submodels + +
    payload object
  • property name* object
  • tombstones object[]
    + +**Possible values:** `<= 2147483647` + +
    + +Collection of not resolvable endpoints as tombstones. Including cause of error and endpoint URL. + +
    = 45 characters` and `<= 45 characters`, Value must match regular expression `^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}$`"} defaultValue={undefined}>
    processingError object
+ +Return job failed. + +
Schema
+ +No valid authentication credentials. + +
Schema
+ +Authorization refused by server. + +
Schema
+ +Job with the requested jobId not found. + +
Schema
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Software Development View/Job Api/get-job-for-job-id.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Software Development View/Job Api/get-job-for-job-id.api.mdx new file mode 100644 index 00000000000..39db9ce2f3d --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Software Development View/Job Api/get-job-for-job-id.api.mdx @@ -0,0 +1,238 @@ +--- +id: get-job-for-job-id +title: "Return job with optional item graph result for requested id." +description: "Return job with optional item graph result for requested id." +sidebar_label: "Return job with optional item graph result for requested id." +hide_title: true +hide_table_of_contents: true +api: {"description":"Return job with optional item graph result for requested id.","operationId":"getJobForJobId","parameters":[{"description":"Id of the job.","example":"6c311d29-5753-46d4-b32c-19b918ea93b0","in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid","maxLength":36,"minLength":36}},{"description":" Return job with current processed item graph. Return job with item graph if job is in state , otherwise job.","in":"query","name":"returnUncompletedJob","required":false,"schema":{"type":"boolean","default":true}}],"responses":{"200":{"content":{"application/json":{"examples":{"complete":{"value":{"bpns":[{"manufacturerId":"BPNL00000003AYRE","manufacturerName":"OEM A"}],"job":{"completedOn":"2022-02-03T14:48:54.709Z","createdOn":"2022-02-03T14:48:54.709Z","exception":{"errorDetail":"Timeout while requesting Digital Registry","exception":"IrsTimeoutException","exceptionDate":"2022-02-03T14:48:54.709Z"},"globalAssetId":"urn:uuid:6c311d29-5753-46d4-b32c-19b918ea93b0","id":"e5347c88-a921-11ec-b909-0242ac120002","lastModifiedOn":"2022-02-03T14:48:54.709Z","owner":"","parameter":{"aspects":["SerialPartTypization","AddressAspect"],"bomLifecycle":"asBuilt","collectAspects":false,"depth":1,"direction":"downward","lookupBPNs":false},"startedOn":"2022-02-03T14:48:54.709Z","state":"COMPLETED","summary":{"asyncFetchedItems":{"completed":0,"failed":0,"running":0}}},"relationships":[{"catenaXId":"urn:uuid:d9bec1c6-e47c-4d18-ba41-0a5fe8b7f447","linkedItem":{"assembledOn":"2022-02-03T14:48:54.709Z","childCatenaXId":"urn:uuid:a45a2246-f6e1-42da-b47d-5c3b58ed62e9","lastModifiedOn":"2022-02-03T14:48:54.709Z","lifecycleContext":"asBuilt","quantity":{"measurementUnit":{"datatypeURI":"urn:bamm:io.openmanufacturing:meta-model:1.0.0#piece","lexicalValue":"piece"},"quantityNumber":1}}}],"shells":[{"description":[{"language":"en","text":"The shell for a vehicle"}],"globalAssetId":{"value":["urn:uuid:a45a2246-f6e1-42da-b47d-5c3b58ed62e9"]},"idShort":"future concept x","identification":"882fc530-b69b-4707-95f6-5dbc5e9baaa8","specificAssetIds":[{"key":"engineserialid","value":"12309481209312"}],"submodelDescriptors":[{"description":[{"language":"en","text":"Provides base vehicle information"}],"endpoints":[{"interface":"HTTP","protocolInformation":{"endpointAddress":"https://catena-x.net/vehicle/basedetails/","endpointProtocol":"HTTPS","endpointProtocolVersion":"1.0"}}],"idShort":"vehicle base details","identification":"4a738a24-b7d8-4989-9cd6-387772f40565","semanticId":{"value":["urn:bamm:com.catenax.vehicle:0.1.1"]}},{"description":[{"language":"en","text":"Provides base vehicle information"}],"endpoints":[{"interface":"HTTP","protocolInformation":{"endpointAddress":"https://catena-x.net/vehicle/partdetails/","endpointProtocol":"HTTPS","endpointProtocolVersion":"1.0"}}],"idShort":"vehicle part details","identification":"dae4d249-6d66-4818-b576-bf52f3b9ae90","semanticId":{"value":["urn:bamm:com.catenax.vehicle:0.1.1#PartDetails"]}}]}],"submodels":[{"aspectType":"urn:bamm:io.catenax.assembly_part_relationship:1.0.0","identification":"urn:uuid:fc784d2a-5506-4e61-8e34-21600f8cdeff","payload":{"catenaXId":"urn:uuid:d9bec1c6-e47c-4d18-ba41-0a5fe8b7f447","childParts":[{"createdOn":"2022-02-03T14:48:54.709Z","childCatenaXId":"urn:uuid:d9bec1c6-e47c-4d18-ba41-0a5fe8b7f447","lastModifiedOn":"2022-02-03T14:48:54.709Z","lifecycleContext":"AsBuilt","quantity":{"measurementUnit":{"datatypeURI":"urn:bamm:io.openmanufacturing:meta-model:1.0.0#piece","lexicalValue":"piece"},"quantityNumber":1}}]}}],"tombstones":[{"catenaXId":"urn:uuid:6c311d29-5753-46d4-b32c-19b918ea93b0","endpointURL":"https://catena-x.net/vehicle/partdetails/","processingError":{"errorDetail":"Details to reason of Failure","lastAttempt":"2022-02-03T14:48:54.709Z","processStep":"SchemaValidation","retryCounter":0}}]}}},"schema":{"type":"object","additionalProperties":false,"description":"Container for a job with item graph.","properties":{"bpns":{"type":"array","description":"Collection of bpn mappings","items":{"type":"object","additionalProperties":false,"description":"Business partner id with name","properties":{"manufacturerId":{"type":"string"},"manufacturerName":{"type":"string"}}},"maxItems":2147483647,"uniqueItems":true},"job":{"type":"object","additionalProperties":false,"description":"Executable unit with meta information and item graph result.","properties":{"completedOn":{"type":"string","format":"date-time"},"createdOn":{"type":"string","format":"date-time"},"exception":{"type":"object","additionalProperties":false,"description":"Job error details.","properties":{"errorDetail":{"type":"string","description":"Detailed exception information.","maxLength":4000},"exception":{"type":"string","description":"Exception name.","maxLength":100},"exceptionDate":{"type":"string","format":"date-time","description":"Datetime error occurs."}}},"globalAssetId":{"type":"string","description":"Part global unique id in the format urn:uuid:uuid4.","example":"urn:uuid:6c311d29-5753-46d4-b32c-19b918ea93b0","maxLength":45,"minLength":45,"pattern":"^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}$"},"id":{"type":"string","format":"uuid","description":"Id of the job.","maxLength":36,"minLength":36,"pattern":"/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i"},"lastModifiedOn":{"type":"string","format":"date-time"},"owner":{"type":"string","description":"The IRS api consumer."},"parameter":{"type":"object","additionalProperties":false,"description":"Job parameter of job processing.","properties":{"aspects":{"type":"string"},"bomLifecycle":{"type":"string","description":"The lifecycle context in which the child part was assembled into the parent part.","enum":["asBuilt","asPlanned"]},"callbackUrl":{"type":"string"},"collectAspects":{"type":"boolean"},"depth":{"type":"integer","format":"int32","maximum":2147483647,"minimum":0},"direction":{"type":"string","description":"Item graph traversal direction.","enum":["upward","downward"]},"lookupBPNs":{"type":"boolean"}}},"startedOn":{"type":"string","format":"date-time"},"state":{"type":"string","enum":["UNSAVED","INITIAL","RUNNING","TRANSFERS_FINISHED","COMPLETED","CANCELED","ERROR"]},"summary":{"type":"object","additionalProperties":false,"description":"Summary of the job with statistics of the job processing.","properties":{"asyncFetchedItems":{"type":"object","additionalProperties":false,"description":"Statistics of job execution.","properties":{"completed":{"type":"integer","format":"int32","description":"Number of completed item transfers.","maximum":2147483647,"minimum":0},"failed":{"type":"integer","format":"int32","description":"Number of failed item transfers.","maximum":2147483647,"minimum":0},"running":{"type":"integer","format":"int32","description":"Number of running item transfers.","maximum":2147483647,"minimum":0}}},"bpnLookups":{"type":"object","additionalProperties":false,"description":"Statistics of job execution.","properties":{"completed":{"type":"integer","format":"int32","description":"Number of completed item transfers.","maximum":2147483647,"minimum":0},"failed":{"type":"integer","format":"int32","description":"Number of failed item transfers.","maximum":2147483647,"minimum":0},"running":{"type":"integer","format":"int32","description":"Number of running item transfers.","maximum":2147483647,"minimum":0}}}}}},"required":["globalAssetId","id","state"]},"relationships":{"type":"array","description":"Relationships between parent and child items.","items":{"type":"object","additionalProperties":false,"description":"Relationships between parent and child items.","properties":{"aspectType":{"type":"string"},"catenaXId":{"type":"string","description":"CATENA-X global asset id in the format urn:uuid:uuid4.","example":"urn:uuid:6c311d29-5753-46d4-b32c-19b918ea93b0","maxLength":45,"minLength":45,"pattern":"^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}$"},"linkedItem":{"type":"object","additionalProperties":false,"description":"Set of child parts the parent object is assembled by (one structural level down).","properties":{"assembledOn":{"type":"string","format":"date-time","description":"Datetime of assembly."},"childCatenaXId":{"type":"string","description":"CatenaX child global asset id in the format urn:uuid:uuid4.","example":"urn:uuid:6c311d29-5753-46d4-b32c-19b918ea93b0","maxLength":45,"minLength":45,"pattern":"^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}$"},"lastModifiedOn":{"type":"string","format":"date-time","description":"Last datetime item was modified."},"lifecycleContext":{"type":"string","description":"The lifecycle context in which the child part was assembled into the parent part.","enum":["asBuilt","asPlanned"]},"quantity":{"type":"object","additionalProperties":false,"description":"Quantity component.","properties":{"measurementUnit":{"type":"object","additionalProperties":false,"properties":{"datatypeURI":{"type":"string"},"lexicalValue":{"type":"string"}}},"quantityNumber":{"type":"number","format":"double","maximum":2147483647,"minimum":0}}}}}}},"maxItems":2147483647},"shells":{"type":"array","description":"AAS shells.","items":{"type":"object","additionalProperties":false,"description":"AAS shells.","properties":{"administration":{"type":"object","additionalProperties":false,"properties":{"revision":{"type":"string"},"version":{"type":"string"}}},"description":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"language":{"type":"string"},"text":{"type":"string"}}},"maxItems":2147483647},"globalAssetId":{"type":"object","additionalProperties":false,"properties":{"value":{"type":"array","items":{"type":"string"},"maxItems":2147483647}}},"idShort":{"type":"string"},"identification":{"type":"string"},"specificAssetIds":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"key":{"type":"string"},"semanticId":{"type":"object","additionalProperties":false,"properties":{"value":{"type":"array","items":{"type":"string"},"maxItems":2147483647}}},"subjectId":{"type":"object","additionalProperties":false,"properties":{"value":{"type":"array","items":{"type":"string"},"maxItems":2147483647}}},"value":{"type":"string"}}},"maxItems":2147483647},"submodelDescriptors":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"administration":{"type":"object","additionalProperties":false,"properties":{"revision":{"type":"string"},"version":{"type":"string"}}},"description":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"language":{"type":"string"},"text":{"type":"string"}}},"maxItems":2147483647},"endpoints":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"interface":{"type":"string"},"protocolInformation":{"type":"object","additionalProperties":false,"properties":{"endpointAddress":{"type":"string"},"endpointProtocol":{"type":"string"},"endpointProtocolVersion":{"type":"string"},"subprotocol":{"type":"string"},"subprotocolBody":{"type":"string"},"subprotocolBodyEncoding":{"type":"string"}}}}},"maxItems":2147483647},"idShort":{"type":"string"},"identification":{"type":"string"},"semanticId":{"type":"object","additionalProperties":false,"properties":{"value":{"type":"array","items":{"type":"string"},"maxItems":2147483647}}}}},"maxItems":2147483647}}},"maxItems":2147483647},"submodels":{"type":"array","description":"Collection of requested Submodels","items":{"type":"object","additionalProperties":false,"description":"Submodel with identification of SubmodelDescriptor, aspect type and payload as String","properties":{"aspectType":{"type":"string"},"identification":{"type":"string"},"payload":{"type":"object","additionalProperties":{"type":"object"}}}},"maxItems":2147483647},"tombstones":{"type":"array","description":"Collection of not resolvable endpoints as tombstones. Including cause of error and endpoint URL.","items":{"type":"object","additionalProperties":false,"description":"Tombstone with information about request failure","properties":{"catenaXId":{"type":"string","description":"CATENA-X global asset id in the format urn:uuid:uuid4.","example":"urn:uuid:6c311d29-5753-46d4-b32c-19b918ea93b0","maxLength":45,"minLength":45,"pattern":"^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}$"},"endpointURL":{"type":"string"},"processingError":{"type":"object","additionalProperties":false,"properties":{"errorDetail":{"type":"string"},"lastAttempt":{"type":"string","format":"date-time"},"processStep":{"type":"string","enum":["SubmodelRequest","DigitalTwinRequest","SchemaValidation","SchemaRequest","BpdmRequest","BpdmValidation","UsagePolicyValidation"]},"retryCounter":{"type":"integer","format":"int32","maximum":2147483647,"minimum":0}}}}},"maxItems":2147483647}}}}},"description":"Return job with item graph for the requested id."},"206":{"content":{"application/json":{"examples":{"complete":{"value":{"bpns":[],"job":{"completedOn":"2022-02-03T14:48:54.709Z","createdOn":"2022-02-03T14:48:54.709Z","exception":{"errorDetail":"Timeout while requesting Digital Registry","exception":"IrsTimeoutException","exceptionDate":"2022-02-03T14:48:54.709Z"},"globalAssetId":"urn:uuid:6c311d29-5753-46d4-b32c-19b918ea93b0","id":"e5347c88-a921-11ec-b909-0242ac120002","lastModifiedOn":"2022-02-03T14:48:54.709Z","owner":"","parameter":{"aspects":["SerialPartTypization","AddressAspect"],"bomLifecycle":"asBuilt","collectAspects":false,"depth":1,"direction":"downward","lookupBPNs":false},"startedOn":"2022-02-03T14:48:54.709Z","state":"RUNNING","summary":{"asyncFetchedItems":{"completed":0,"failed":0,"running":0}}},"relationships":[],"submodels":[],"tombstones":[]}}},"schema":{"type":"object","additionalProperties":false,"description":"Container for a job with item graph.","properties":{"bpns":{"type":"array","description":"Collection of bpn mappings","items":{"type":"object","additionalProperties":false,"description":"Business partner id with name","properties":{"manufacturerId":{"type":"string"},"manufacturerName":{"type":"string"}}},"maxItems":2147483647,"uniqueItems":true},"job":{"type":"object","additionalProperties":false,"description":"Executable unit with meta information and item graph result.","properties":{"completedOn":{"type":"string","format":"date-time"},"createdOn":{"type":"string","format":"date-time"},"exception":{"type":"object","additionalProperties":false,"description":"Job error details.","properties":{"errorDetail":{"type":"string","description":"Detailed exception information.","maxLength":4000},"exception":{"type":"string","description":"Exception name.","maxLength":100},"exceptionDate":{"type":"string","format":"date-time","description":"Datetime error occurs."}}},"globalAssetId":{"type":"string","description":"Part global unique id in the format urn:uuid:uuid4.","example":"urn:uuid:6c311d29-5753-46d4-b32c-19b918ea93b0","maxLength":45,"minLength":45,"pattern":"^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}$"},"id":{"type":"string","format":"uuid","description":"Id of the job.","maxLength":36,"minLength":36,"pattern":"/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i"},"lastModifiedOn":{"type":"string","format":"date-time"},"owner":{"type":"string","description":"The IRS api consumer."},"parameter":{"type":"object","additionalProperties":false,"description":"Job parameter of job processing.","properties":{"aspects":{"type":"string"},"bomLifecycle":{"type":"string","description":"The lifecycle context in which the child part was assembled into the parent part.","enum":["asBuilt","asPlanned"]},"callbackUrl":{"type":"string"},"collectAspects":{"type":"boolean"},"depth":{"type":"integer","format":"int32","maximum":2147483647,"minimum":0},"direction":{"type":"string","description":"Item graph traversal direction.","enum":["upward","downward"]},"lookupBPNs":{"type":"boolean"}}},"startedOn":{"type":"string","format":"date-time"},"state":{"type":"string","enum":["UNSAVED","INITIAL","RUNNING","TRANSFERS_FINISHED","COMPLETED","CANCELED","ERROR"]},"summary":{"type":"object","additionalProperties":false,"description":"Summary of the job with statistics of the job processing.","properties":{"asyncFetchedItems":{"type":"object","additionalProperties":false,"description":"Statistics of job execution.","properties":{"completed":{"type":"integer","format":"int32","description":"Number of completed item transfers.","maximum":2147483647,"minimum":0},"failed":{"type":"integer","format":"int32","description":"Number of failed item transfers.","maximum":2147483647,"minimum":0},"running":{"type":"integer","format":"int32","description":"Number of running item transfers.","maximum":2147483647,"minimum":0}}},"bpnLookups":{"type":"object","additionalProperties":false,"description":"Statistics of job execution.","properties":{"completed":{"type":"integer","format":"int32","description":"Number of completed item transfers.","maximum":2147483647,"minimum":0},"failed":{"type":"integer","format":"int32","description":"Number of failed item transfers.","maximum":2147483647,"minimum":0},"running":{"type":"integer","format":"int32","description":"Number of running item transfers.","maximum":2147483647,"minimum":0}}}}}},"required":["globalAssetId","id","state"]},"relationships":{"type":"array","description":"Relationships between parent and child items.","items":{"type":"object","additionalProperties":false,"description":"Relationships between parent and child items.","properties":{"aspectType":{"type":"string"},"catenaXId":{"type":"string","description":"CATENA-X global asset id in the format urn:uuid:uuid4.","example":"urn:uuid:6c311d29-5753-46d4-b32c-19b918ea93b0","maxLength":45,"minLength":45,"pattern":"^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}$"},"linkedItem":{"type":"object","additionalProperties":false,"description":"Set of child parts the parent object is assembled by (one structural level down).","properties":{"assembledOn":{"type":"string","format":"date-time","description":"Datetime of assembly."},"childCatenaXId":{"type":"string","description":"CatenaX child global asset id in the format urn:uuid:uuid4.","example":"urn:uuid:6c311d29-5753-46d4-b32c-19b918ea93b0","maxLength":45,"minLength":45,"pattern":"^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}$"},"lastModifiedOn":{"type":"string","format":"date-time","description":"Last datetime item was modified."},"lifecycleContext":{"type":"string","description":"The lifecycle context in which the child part was assembled into the parent part.","enum":["asBuilt","asPlanned"]},"quantity":{"type":"object","additionalProperties":false,"description":"Quantity component.","properties":{"measurementUnit":{"type":"object","additionalProperties":false,"properties":{"datatypeURI":{"type":"string"},"lexicalValue":{"type":"string"}}},"quantityNumber":{"type":"number","format":"double","maximum":2147483647,"minimum":0}}}}}}},"maxItems":2147483647},"shells":{"type":"array","description":"AAS shells.","items":{"type":"object","additionalProperties":false,"description":"AAS shells.","properties":{"administration":{"type":"object","additionalProperties":false,"properties":{"revision":{"type":"string"},"version":{"type":"string"}}},"description":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"language":{"type":"string"},"text":{"type":"string"}}},"maxItems":2147483647},"globalAssetId":{"type":"object","additionalProperties":false,"properties":{"value":{"type":"array","items":{"type":"string"},"maxItems":2147483647}}},"idShort":{"type":"string"},"identification":{"type":"string"},"specificAssetIds":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"key":{"type":"string"},"semanticId":{"type":"object","additionalProperties":false,"properties":{"value":{"type":"array","items":{"type":"string"},"maxItems":2147483647}}},"subjectId":{"type":"object","additionalProperties":false,"properties":{"value":{"type":"array","items":{"type":"string"},"maxItems":2147483647}}},"value":{"type":"string"}}},"maxItems":2147483647},"submodelDescriptors":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"administration":{"type":"object","additionalProperties":false,"properties":{"revision":{"type":"string"},"version":{"type":"string"}}},"description":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"language":{"type":"string"},"text":{"type":"string"}}},"maxItems":2147483647},"endpoints":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"interface":{"type":"string"},"protocolInformation":{"type":"object","additionalProperties":false,"properties":{"endpointAddress":{"type":"string"},"endpointProtocol":{"type":"string"},"endpointProtocolVersion":{"type":"string"},"subprotocol":{"type":"string"},"subprotocolBody":{"type":"string"},"subprotocolBodyEncoding":{"type":"string"}}}}},"maxItems":2147483647},"idShort":{"type":"string"},"identification":{"type":"string"},"semanticId":{"type":"object","additionalProperties":false,"properties":{"value":{"type":"array","items":{"type":"string"},"maxItems":2147483647}}}}},"maxItems":2147483647}}},"maxItems":2147483647},"submodels":{"type":"array","description":"Collection of requested Submodels","items":{"type":"object","additionalProperties":false,"description":"Submodel with identification of SubmodelDescriptor, aspect type and payload as String","properties":{"aspectType":{"type":"string"},"identification":{"type":"string"},"payload":{"type":"object","additionalProperties":{"type":"object"}}}},"maxItems":2147483647},"tombstones":{"type":"array","description":"Collection of not resolvable endpoints as tombstones. Including cause of error and endpoint URL.","items":{"type":"object","additionalProperties":false,"description":"Tombstone with information about request failure","properties":{"catenaXId":{"type":"string","description":"CATENA-X global asset id in the format urn:uuid:uuid4.","example":"urn:uuid:6c311d29-5753-46d4-b32c-19b918ea93b0","maxLength":45,"minLength":45,"pattern":"^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}$"},"endpointURL":{"type":"string"},"processingError":{"type":"object","additionalProperties":false,"properties":{"errorDetail":{"type":"string"},"lastAttempt":{"type":"string","format":"date-time"},"processStep":{"type":"string","enum":["SubmodelRequest","DigitalTwinRequest","SchemaValidation","SchemaRequest","BpdmRequest","BpdmValidation","UsagePolicyValidation"]},"retryCounter":{"type":"integer","format":"int32","maximum":2147483647,"minimum":0}}}}},"maxItems":2147483647}}}}},"description":"Return job with current processed item graph for the requested id."},"400":{"content":{"application/json":{"examples":{"error":{"value":{"error":"Bad request","messages":["BadRequestException"],"statusCode":"400 BAD_REQUEST"}}},"schema":{"type":"object","additionalProperties":false,"description":"Error response.","properties":{"error":{"type":"string","description":"Error."},"messages":{"type":"array","description":"List of error messages.","items":{"type":"string"},"maxItems":2147483647},"statusCode":{"type":"string","description":"Error code.","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 EARLY_HINTS","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}}},"description":"Return job failed."},"401":{"content":{"application/json":{"examples":{"error":{"value":{"error":"Unauthorized","messages":["UnauthorizedException"],"statusCode":"401 UNAUTHORIZED"}}},"schema":{"type":"object","additionalProperties":false,"description":"Error response.","properties":{"error":{"type":"string","description":"Error."},"messages":{"type":"array","description":"List of error messages.","items":{"type":"string"},"maxItems":2147483647},"statusCode":{"type":"string","description":"Error code.","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 EARLY_HINTS","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}}},"description":"No valid authentication credentials."},"403":{"content":{"application/json":{"examples":{"error":{"value":{"error":"Forbidden","messages":["ForbiddenException"],"statusCode":"403 FORBIDDEN"}}},"schema":{"type":"object","additionalProperties":false,"description":"Error response.","properties":{"error":{"type":"string","description":"Error."},"messages":{"type":"array","description":"List of error messages.","items":{"type":"string"},"maxItems":2147483647},"statusCode":{"type":"string","description":"Error code.","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 EARLY_HINTS","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}}},"description":"Authorization refused by server."},"404":{"content":{"application/json":{"examples":{"error":{"value":{"error":"Not found","messages":["NotFoundException"],"statusCode":"404 NOT_FOUND"}}},"schema":{"type":"object","additionalProperties":false,"description":"Error response.","properties":{"error":{"type":"string","description":"Error."},"messages":{"type":"array","description":"List of error messages.","items":{"type":"string"},"maxItems":2147483647},"statusCode":{"type":"string","description":"Error code.","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 EARLY_HINTS","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}}},"description":"Job with the requested jobId not found."}},"security":[{"oAuth2":["profile email"]}],"tags":["Item Relationship Service"],"method":"get","path":"/irs/jobs/{id}","servers":[{"url":"http://localhost:8080"}],"securitySchemes":{"oAuth2":{"flows":{"clientCredentials":{"scopes":{"profile email":""},"tokenUrl":"https://localhost"}},"type":"oauth2"}},"info":{"description":"The API of the Item Relationship Service (IRS) for retrieving item graphs along the value chain of CATENA-X partners.","title":"IRS API","version":"2.0"},"postman":{"name":"Return job with optional item graph result for requested id.","description":{"content":"Return job with optional item graph result for requested id.","type":"text/plain"},"url":{"path":["irs","jobs",":id"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"description":{"content":" Return job with current processed item graph. Return job with item graph if job is in state , otherwise job.","type":"text/plain"},"key":"returnUncompletedJob","value":""}],"variable":[{"disabled":false,"description":{"content":"(Required) Id of the job.","type":"text/plain"},"type":"any","value":"","key":"id"}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","auth":{"type":"oauth2","oauth2":[]}}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/Data Chain Kit/Software Development View/Job Api/irs-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Return job with optional item graph result for requested id. + + + +Return job with optional item graph result for requested id. + +
Path Parameters
Query Parameters
    Return job with current processed item graph. Return job with item graph if job is in state , otherwise job.","in":"query","name":"returnUncompletedJob","required":false,"schema":{"type":"boolean","default":true}}}>
+ +Return job with item graph for the requested id. + +
Schema
    bpns object[]
    + +**Possible values:** `<= 2147483647` + +
    + +Collection of bpn mappings + +
    job object
    + +Executable unit with meta information and item graph result. + +
    exception object
    + +Job error details. + +
    = 45 characters` and `<= 45 characters`, Value must match regular expression `^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}$`"} defaultValue={undefined}>= 36 characters` and `<= 36 characters`, Value must match regular expression `/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i`"} defaultValue={undefined}>
    parameter object
    + +Job parameter of job processing. + +
    summary object
    + +Summary of the job with statistics of the job processing. + +
    asyncFetchedItems object
    + +Statistics of job execution. + +
    bpnLookups object
    + +Statistics of job execution. + +
    relationships object[]
    + +**Possible values:** `<= 2147483647` + +
    + +Relationships between parent and child items. + +
    = 45 characters` and `<= 45 characters`, Value must match regular expression `^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}$`"} defaultValue={undefined}>
    linkedItem object
    + +Set of child parts the parent object is assembled by (one structural level down). + +
    = 45 characters` and `<= 45 characters`, Value must match regular expression `^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}$`"} defaultValue={undefined}>
    quantity object
    + +Quantity component. + +
    measurementUnit object
    shells object[]
    + +**Possible values:** `<= 2147483647` + +
    + +AAS shells. + +
    administration object
    description object[]
    + +**Possible values:** `<= 2147483647` + +
    globalAssetId object
    specificAssetIds object[]
    + +**Possible values:** `<= 2147483647` + +
    semanticId object
    subjectId object
    submodelDescriptors object[]
    + +**Possible values:** `<= 2147483647` + +
    administration object
    description object[]
    + +**Possible values:** `<= 2147483647` + +
    endpoints object[]
    + +**Possible values:** `<= 2147483647` + +
    protocolInformation object
    semanticId object
    submodels object[]
    + +**Possible values:** `<= 2147483647` + +
    + +Collection of requested Submodels + +
    payload object
  • property name* object
  • tombstones object[]
    + +**Possible values:** `<= 2147483647` + +
    + +Collection of not resolvable endpoints as tombstones. Including cause of error and endpoint URL. + +
    = 45 characters` and `<= 45 characters`, Value must match regular expression `^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}$`"} defaultValue={undefined}>
    processingError object
+ +Return job with current processed item graph for the requested id. + +
Schema
    bpns object[]
    + +**Possible values:** `<= 2147483647` + +
    + +Collection of bpn mappings + +
    job object
    + +Executable unit with meta information and item graph result. + +
    exception object
    + +Job error details. + +
    = 45 characters` and `<= 45 characters`, Value must match regular expression `^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}$`"} defaultValue={undefined}>= 36 characters` and `<= 36 characters`, Value must match regular expression `/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i`"} defaultValue={undefined}>
    parameter object
    + +Job parameter of job processing. + +
    summary object
    + +Summary of the job with statistics of the job processing. + +
    asyncFetchedItems object
    + +Statistics of job execution. + +
    bpnLookups object
    + +Statistics of job execution. + +
    relationships object[]
    + +**Possible values:** `<= 2147483647` + +
    + +Relationships between parent and child items. + +
    = 45 characters` and `<= 45 characters`, Value must match regular expression `^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}$`"} defaultValue={undefined}>
    linkedItem object
    + +Set of child parts the parent object is assembled by (one structural level down). + +
    = 45 characters` and `<= 45 characters`, Value must match regular expression `^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}$`"} defaultValue={undefined}>
    quantity object
    + +Quantity component. + +
    measurementUnit object
    shells object[]
    + +**Possible values:** `<= 2147483647` + +
    + +AAS shells. + +
    administration object
    description object[]
    + +**Possible values:** `<= 2147483647` + +
    globalAssetId object
    specificAssetIds object[]
    + +**Possible values:** `<= 2147483647` + +
    semanticId object
    subjectId object
    submodelDescriptors object[]
    + +**Possible values:** `<= 2147483647` + +
    administration object
    description object[]
    + +**Possible values:** `<= 2147483647` + +
    endpoints object[]
    + +**Possible values:** `<= 2147483647` + +
    protocolInformation object
    semanticId object
    submodels object[]
    + +**Possible values:** `<= 2147483647` + +
    + +Collection of requested Submodels + +
    payload object
  • property name* object
  • tombstones object[]
    + +**Possible values:** `<= 2147483647` + +
    + +Collection of not resolvable endpoints as tombstones. Including cause of error and endpoint URL. + +
    = 45 characters` and `<= 45 characters`, Value must match regular expression `^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}$`"} defaultValue={undefined}>
    processingError object
+ +Return job failed. + +
Schema
+ +No valid authentication credentials. + +
Schema
+ +Authorization refused by server. + +
Schema
+ +Job with the requested jobId not found. + +
Schema
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Software Development View/Job Api/get-jobs-by-job-states.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Software Development View/Job Api/get-jobs-by-job-states.api.mdx new file mode 100644 index 00000000000..0232e3c6e3f --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Software Development View/Job Api/get-jobs-by-job-states.api.mdx @@ -0,0 +1,46 @@ +--- +id: get-jobs-by-job-states +title: "Returns paginated jobs with state and execution times." +description: "Returns paginated jobs with state and execution times." +sidebar_label: "Returns paginated jobs with state and execution times." +hide_title: true +hide_table_of_contents: true +api: {"description":"Returns paginated jobs with state and execution times.","operationId":"getJobsByJobStates","parameters":[{"description":"Requested job states.","explode":false,"in":"query","name":"states","required":false,"schema":{"type":"array","items":{"type":"string","enum":["UNSAVED","INITIAL","RUNNING","TRANSFERS_FINISHED","COMPLETED","CANCELED","ERROR"]},"maxItems":2147483647}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","schema":{"type":"integer","default":0}},{"description":"The size of the page to be returned","in":"query","name":"size","schema":{"type":"integer","default":20}},{"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","in":"query","name":"sort","schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"content":{"application/json":{"examples":{"complete":{"value":{"content":[{"completedOn":"2022-02-03T14:48:54.709Z","id":"6c311d29-5753-46d4-b32c-19b918ea93b0","startedOn":"2022-02-03T14:48:54.709Z","state":"COMPLETED"}],"pageCount":1,"pageNumber":0,"pageSize":10,"totalElements":1}}},"schema":{"type":"object","additionalProperties":false,"properties":{"content":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"completedOn":{"type":"string","format":"date-time"},"id":{"type":"string","format":"uuid"},"startedOn":{"type":"string","format":"date-time"},"state":{"type":"string","enum":["UNSAVED","INITIAL","RUNNING","TRANSFERS_FINISHED","COMPLETED","CANCELED","ERROR"]}}}},"pageCount":{"type":"integer","format":"int32"},"pageNumber":{"type":"integer","format":"int32"},"pageSize":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int32"}}}}},"description":"Paginated list of jobs with state and execution times for requested job states."},"400":{"content":{"application/json":{"examples":{"error":{"value":{"error":"Bad request","messages":["BadRequestException"],"statusCode":"400 BAD_REQUEST"}}},"schema":{"type":"object","additionalProperties":false,"description":"Error response.","properties":{"error":{"type":"string","description":"Error."},"messages":{"type":"array","description":"List of error messages.","items":{"type":"string"},"maxItems":2147483647},"statusCode":{"type":"string","description":"Error code.","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 EARLY_HINTS","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}}},"description":"Return jobs for requested job states failed."},"401":{"content":{"application/json":{"examples":{"error":{"value":{"error":"Unauthorized","messages":["UnauthorizedException"],"statusCode":"401 UNAUTHORIZED"}}},"schema":{"type":"object","additionalProperties":false,"description":"Error response.","properties":{"error":{"type":"string","description":"Error."},"messages":{"type":"array","description":"List of error messages.","items":{"type":"string"},"maxItems":2147483647},"statusCode":{"type":"string","description":"Error code.","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 EARLY_HINTS","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}}},"description":"No valid authentication credentials."},"403":{"content":{"application/json":{"examples":{"error":{"value":{"error":"Forbidden","messages":["ForbiddenException"],"statusCode":"403 FORBIDDEN"}}},"schema":{"type":"object","additionalProperties":false,"description":"Error response.","properties":{"error":{"type":"string","description":"Error."},"messages":{"type":"array","description":"List of error messages.","items":{"type":"string"},"maxItems":2147483647},"statusCode":{"type":"string","description":"Error code.","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 EARLY_HINTS","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}}},"description":"Authorization refused by server."}},"security":[{"oAuth2":["profile email"]}],"tags":["Item Relationship Service"],"method":"get","path":"/irs/jobs","servers":[{"url":"http://localhost:8080"}],"securitySchemes":{"oAuth2":{"flows":{"clientCredentials":{"scopes":{"profile email":""},"tokenUrl":"https://localhost"}},"type":"oauth2"}},"info":{"description":"The API of the Item Relationship Service (IRS) for retrieving item graphs along the value chain of CATENA-X partners.","title":"IRS API","version":"2.0"},"postman":{"name":"Returns paginated jobs with state and execution times.","description":{"content":"Returns paginated jobs with state and execution times.","type":"text/plain"},"url":{"path":["irs","jobs"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"description":{"content":"Requested job states.","type":"text/plain"},"key":"states","value":""},{"disabled":false,"description":{"content":"Zero-based page index (0..N)","type":"text/plain"},"key":"page","value":""},{"disabled":false,"description":{"content":"The size of the page to be returned","type":"text/plain"},"key":"size","value":""},{"disabled":false,"description":{"content":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","type":"text/plain"},"key":"sort","value":""}],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","auth":{"type":"oauth2","oauth2":[]}}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/Data Chain Kit/Software Development View/Job Api/irs-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Returns paginated jobs with state and execution times. + + + +Returns paginated jobs with state and execution times. + +
Query Parameters
+ +Paginated list of jobs with state and execution times for requested job states. + +
Schema
    content object[]
+ +Return jobs for requested job states failed. + +
Schema
+ +No valid authentication credentials. + +
Schema
+ +Authorization refused by server. + +
Schema
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Software Development View/Job Api/irs-api.info.mdx b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Software Development View/Job Api/irs-api.info.mdx new file mode 100644 index 00000000000..6c253a8234b --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Software Development View/Job Api/irs-api.info.mdx @@ -0,0 +1,25 @@ +--- +id: irs-api +title: "IRS API" +description: "The API of the Item Relationship Service (IRS) for retrieving item graphs along the value chain of CATENA-X partners." +sidebar_label: Introduction +sidebar_position: 0 +hide_title: true +custom_edit_url: null +--- + +import ApiLogo from "@theme/ApiLogo"; +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; +import Export from "@theme/ApiDemoPanel/Export"; + +Version: 2.0 + +# IRS API + + + +The API of the Item Relationship Service (IRS) for retrieving item graphs along the value chain of CATENA-X partners. + +

Authentication

Security Scheme Type:oauth2
clientCredentials OAuth Flow:

Token URL: https://localhost

Scopes:
  • profile email:
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Software Development View/Job Api/receive-edc-notification.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Software Development View/Job Api/receive-edc-notification.api.mdx new file mode 100644 index 00000000000..f6c7fc32643 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Software Development View/Job Api/receive-edc-notification.api.mdx @@ -0,0 +1,42 @@ +--- +id: receive-edc-notification +title: "Accepts notifications sent via EDC." +description: "Accepts notifications via EDC. Notifications are filtered by their type and processed accordingly." +sidebar_label: "Accepts notifications sent via EDC." +hide_title: true +hide_table_of_contents: true +api: {"description":"Accepts notifications via EDC. Notifications are filtered by their type and processed accordingly.","operationId":"receiveEdcNotification","requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"content":{"type":"object","additionalProperties":{"type":"object"}},"header":{"type":"object","additionalProperties":false,"description":"EDC notification header information","properties":{"notificationId":{"type":"string"},"notificationType":{"type":"string"},"originalNotificationId":{"type":"string"},"recipientBpn":{"type":"string"},"replyAssetId":{"type":"string"},"replyAssetSubPath":{"type":"string"},"senderBpn":{"type":"string"},"senderEdc":{"type":"string"}},"required":["notificationId","notificationType","recipientBpn","senderBpn"]}},"required":["content","header"]}}},"required":true},"responses":{"200":{"description":"Notification received successfully."},"400":{"content":{"application/json":{"examples":{"error":{"value":{"error":"Bad request","messages":["BadRequestException"],"statusCode":"400 BAD_REQUEST"}}},"schema":{"type":"object","additionalProperties":false,"description":"Error response.","properties":{"error":{"type":"string","description":"Error."},"messages":{"type":"array","description":"List of error messages.","items":{"type":"string"},"maxItems":2147483647},"statusCode":{"type":"string","description":"Error code.","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 EARLY_HINTS","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}}},"description":"Notification malformed."}},"tags":["Environmental- and Social Standards"],"method":"post","path":"/ess/notification/receive","servers":[{"url":"http://localhost:8080"}],"security":[{"oAuth2":["profile email"]}],"securitySchemes":{"oAuth2":{"flows":{"clientCredentials":{"scopes":{"profile email":""},"tokenUrl":"https://localhost"}},"type":"oauth2"}},"jsonRequestBodyExample":{"content":{},"header":{"notificationId":"string","notificationType":"string","originalNotificationId":"string","recipientBpn":"string","replyAssetId":"string","replyAssetSubPath":"string","senderBpn":"string","senderEdc":"string"}},"info":{"description":"The API of the Item Relationship Service (IRS) for retrieving item graphs along the value chain of CATENA-X partners.","title":"IRS API","version":"2.0"},"postman":{"name":"Accepts notifications sent via EDC.","description":{"content":"Accepts notifications via EDC. Notifications are filtered by their type and processed accordingly.","type":"text/plain"},"url":{"path":["ess","notification","receive"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/Data Chain Kit/Software Development View/Job Api/irs-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Accepts notifications sent via EDC. + + + +Accepts notifications via EDC. Notifications are filtered by their type and processed accordingly. + +
Request Body required
    content object required
  • property name* object
  • header object required
    + +EDC notification header information + +
+ +Notification received successfully. + +
+ +Notification malformed. + +
Schema
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Software Development View/Job Api/register-bpn-investigation.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Software Development View/Job Api/register-bpn-investigation.api.mdx new file mode 100644 index 00000000000..677d992d508 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Software Development View/Job Api/register-bpn-investigation.api.mdx @@ -0,0 +1,46 @@ +--- +id: register-bpn-investigation +title: "Registers an IRS job to start an investigation if a given bpn is contained in a part chain of a given globalAssetId." +description: "Registers an IRS job to start an investigation if a given bpn is contained in a part chain of a given globalAssetId." +sidebar_label: "Registers an IRS job to start an investigation if a given bpn is contained in a part chain of a given globalAssetId." +hide_title: true +hide_table_of_contents: true +api: {"description":"Registers an IRS job to start an investigation if a given bpn is contained in a part chain of a given globalAssetId.","operationId":"registerBPNInvestigation","requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"description":"The requested job definition.","properties":{"bomLifecycle":{"type":"string","description":"The lifecycle context in which the child part was assembled into the parent part.","enum":["asBuilt","asPlanned"]},"callbackUrl":{"type":"string","description":"Callback url to notify requestor when job processing is finished. There are two uri variable placeholders that can be used: jobId and jobState.","example":"https://hostname.com/callback?jobId={jobId}&jobState={jobState}"},"globalAssetId":{"type":"string","description":"Id of global asset.","example":"urn:uuid:6c311d29-5753-46d4-b32c-19b918ea93b0","maxLength":45,"minLength":45,"pattern":"^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}$"},"incidentBpns":{"type":"array","items":{"type":"string"},"maxItems":2147483647}},"required":["globalAssetId","incidentBpns"]}}},"required":true},"responses":{"201":{"content":{"application/json":{"examples":{"complete":{"value":{"id":"6c311d29-5753-46d4-b32c-19b918ea93b0"}}},"schema":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","format":"uuid","description":"Id of the job.","maxLength":36,"minLength":36,"pattern":"/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i"}}}}},"description":"Returns id of registered job."},"400":{"content":{"application/json":{"examples":{"error":{"value":{"error":"Bad request","messages":["BadRequestException"],"statusCode":"400 BAD_REQUEST"}}},"schema":{"type":"object","additionalProperties":false,"description":"Error response.","properties":{"error":{"type":"string","description":"Error."},"messages":{"type":"array","description":"List of error messages.","items":{"type":"string"},"maxItems":2147483647},"statusCode":{"type":"string","description":"Error code.","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 EARLY_HINTS","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}}},"description":"Job registration failed."},"401":{"content":{"application/json":{"examples":{"error":{"value":{"error":"Unauthorized","messages":["UnauthorizedException"],"statusCode":"401 UNAUTHORIZED"}}},"schema":{"type":"object","additionalProperties":false,"description":"Error response.","properties":{"error":{"type":"string","description":"Error."},"messages":{"type":"array","description":"List of error messages.","items":{"type":"string"},"maxItems":2147483647},"statusCode":{"type":"string","description":"Error code.","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 EARLY_HINTS","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}}},"description":"No valid authentication credentials."},"403":{"content":{"application/json":{"examples":{"error":{"value":{"error":"Forbidden","messages":["ForbiddenException"],"statusCode":"403 FORBIDDEN"}}},"schema":{"type":"object","additionalProperties":false,"description":"Error response.","properties":{"error":{"type":"string","description":"Error."},"messages":{"type":"array","description":"List of error messages.","items":{"type":"string"},"maxItems":2147483647},"statusCode":{"type":"string","description":"Error code.","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 EARLY_HINTS","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}}},"description":"Authorization refused by server."}},"security":[{"oAuth2":["profile email"]}],"tags":["Environmental- and Social Standards"],"method":"post","path":"/ess/bpn/investigations","servers":[{"url":"http://localhost:8080"}],"securitySchemes":{"oAuth2":{"flows":{"clientCredentials":{"scopes":{"profile email":""},"tokenUrl":"https://localhost"}},"type":"oauth2"}},"jsonRequestBodyExample":{"bomLifecycle":"asBuilt","callbackUrl":"https://hostname.com/callback?jobId={jobId}&jobState={jobState}","globalAssetId":"urn:uuid:6c311d29-5753-46d4-b32c-19b918ea93b0","incidentBpns":["string"]},"info":{"description":"The API of the Item Relationship Service (IRS) for retrieving item graphs along the value chain of CATENA-X partners.","title":"IRS API","version":"2.0"},"postman":{"name":"Registers an IRS job to start an investigation if a given bpn is contained in a part chain of a given globalAssetId.","description":{"content":"Registers an IRS job to start an investigation if a given bpn is contained in a part chain of a given globalAssetId.","type":"text/plain"},"url":{"path":["ess","bpn","investigations"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}},"auth":{"type":"oauth2","oauth2":[]}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/Data Chain Kit/Software Development View/Job Api/irs-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Registers an IRS job to start an investigation if a given bpn is contained in a part chain of a given globalAssetId. + + + +Registers an IRS job to start an investigation if a given bpn is contained in a part chain of a given globalAssetId. + +
Request Body required
    = 45 characters` and `<= 45 characters`, Value must match regular expression `^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}$`"} defaultValue={undefined}>
+ +Returns id of registered job. + +
Schema
    = 36 characters` and `<= 36 characters`, Value must match regular expression `/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i`"} defaultValue={undefined}>
+ +Job registration failed. + +
Schema
+ +No valid authentication credentials. + +
Schema
+ +Authorization refused by server. + +
Schema
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Software Development View/Job Api/register-job-for-global-asset-id.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Software Development View/Job Api/register-job-for-global-asset-id.api.mdx new file mode 100644 index 00000000000..b24de18dd6d --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Software Development View/Job Api/register-job-for-global-asset-id.api.mdx @@ -0,0 +1,46 @@ +--- +id: register-job-for-global-asset-id +title: "Register an IRS job to retrieve an item graph for given {globalAssetId}." +description: "Register an IRS job to retrieve an item graph for given {globalAssetId}." +sidebar_label: "Register an IRS job to retrieve an item graph for given {globalAssetId}." +hide_title: true +hide_table_of_contents: true +api: {"description":"Register an IRS job to retrieve an item graph for given {globalAssetId}.","operationId":"registerJobForGlobalAssetId","requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"description":"The requested job definition.","properties":{"aspects":{"type":"array","items":{"type":"string"},"maxItems":2147483647},"bomLifecycle":{"type":"string","description":"The lifecycle context in which the child part was assembled into the parent part.","enum":["asBuilt","asPlanned"]},"callbackUrl":{"type":"string","description":"Callback url to notify requestor when job processing is finished. There are two uri variable placeholders that can be used: id and state.","example":"https://hostname.com/callback?id={id}&state={state}"},"collectAspects":{"type":"boolean","description":"Flag to specify whether aspects should be requested and collected. Default is false."},"depth":{"type":"integer","format":"int32","description":"Max depth of the item graph returned. If no depth is set item graph with max depth is returned.","maximum":100,"minimum":1},"direction":{"type":"string","default":"downward","description":"Item graph traversal direction.","enum":["upward","downward"]},"globalAssetId":{"type":"string","description":"Id of global asset.","example":"urn:uuid:6c311d29-5753-46d4-b32c-19b918ea93b0","maxLength":45,"minLength":45,"pattern":"^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}$"},"lookupBPNs":{"type":"boolean","description":"Flag to specify whether BPNs should be collected and resolved via the configured BPDM URL. Default is false."}},"required":["globalAssetId"]}}},"required":true},"responses":{"201":{"content":{"application/json":{"examples":{"complete":{"value":{"id":"6c311d29-5753-46d4-b32c-19b918ea93b0"}}},"schema":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","format":"uuid","description":"Id of the job.","maxLength":36,"minLength":36,"pattern":"/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i"}}}}},"description":"Returns id of registered job."},"400":{"content":{"application/json":{"examples":{"error":{"value":{"error":"Bad request","messages":["BadRequestException"],"statusCode":"400 BAD_REQUEST"}}},"schema":{"type":"object","additionalProperties":false,"description":"Error response.","properties":{"error":{"type":"string","description":"Error."},"messages":{"type":"array","description":"List of error messages.","items":{"type":"string"},"maxItems":2147483647},"statusCode":{"type":"string","description":"Error code.","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 EARLY_HINTS","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}}},"description":"Job registration failed."},"401":{"content":{"application/json":{"examples":{"error":{"value":{"error":"Unauthorized","messages":["UnauthorizedException"],"statusCode":"401 UNAUTHORIZED"}}},"schema":{"type":"object","additionalProperties":false,"description":"Error response.","properties":{"error":{"type":"string","description":"Error."},"messages":{"type":"array","description":"List of error messages.","items":{"type":"string"},"maxItems":2147483647},"statusCode":{"type":"string","description":"Error code.","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 EARLY_HINTS","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}}},"description":"No valid authentication credentials."},"403":{"content":{"application/json":{"examples":{"error":{"value":{"error":"Forbidden","messages":["ForbiddenException"],"statusCode":"403 FORBIDDEN"}}},"schema":{"type":"object","additionalProperties":false,"description":"Error response.","properties":{"error":{"type":"string","description":"Error."},"messages":{"type":"array","description":"List of error messages.","items":{"type":"string"},"maxItems":2147483647},"statusCode":{"type":"string","description":"Error code.","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 EARLY_HINTS","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}}},"description":"Authorization refused by server."}},"security":[{"oAuth2":["profile email"]}],"tags":["Item Relationship Service"],"method":"post","path":"/irs/jobs","servers":[{"url":"http://localhost:8080"}],"securitySchemes":{"oAuth2":{"flows":{"clientCredentials":{"scopes":{"profile email":""},"tokenUrl":"https://localhost"}},"type":"oauth2"}},"jsonRequestBodyExample":{"aspects":["string"],"bomLifecycle":"asBuilt","callbackUrl":"https://hostname.com/callback?id={id}&state={state}","collectAspects":true,"depth":0,"direction":"downward","globalAssetId":"urn:uuid:6c311d29-5753-46d4-b32c-19b918ea93b0","lookupBPNs":true},"info":{"description":"The API of the Item Relationship Service (IRS) for retrieving item graphs along the value chain of CATENA-X partners.","title":"IRS API","version":"2.0"},"postman":{"name":"Register an IRS job to retrieve an item graph for given {globalAssetId}.","description":{"content":"Register an IRS job to retrieve an item graph for given {globalAssetId}.","type":"text/plain"},"url":{"path":["irs","jobs"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}},"auth":{"type":"oauth2","oauth2":[]}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/Data Chain Kit/Software Development View/Job Api/irs-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Register an IRS job to retrieve an item graph for given {globalAssetId}. + + + +Register an IRS job to retrieve an item graph for given {globalAssetId}. + +
Request Body required
    = 1` and `<= 100`"} defaultValue={undefined}>= 45 characters` and `<= 45 characters`, Value must match regular expression `^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}$`"} defaultValue={undefined}>
+ +Returns id of registered job. + +
Schema
    = 36 characters` and `<= 36 characters`, Value must match regular expression `/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i`"} defaultValue={undefined}>
+ +Job registration failed. + +
Schema
+ +No valid authentication credentials. + +
Schema
+ +Authorization refused by server. + +
Schema
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Software Development View/Job Api/register-order.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Software Development View/Job Api/register-order.api.mdx new file mode 100644 index 00000000000..d48f33af0ae --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Software Development View/Job Api/register-order.api.mdx @@ -0,0 +1,46 @@ +--- +id: register-order +title: "Registers an IRS order with an array of {globalAssetIds}. Each globalAssetId will be processed in an IRS Job, grouped in batches." +description: "Registers an IRS order with an array of {globalAssetIds}. Each globalAssetId will be processed in an IRS Job, grouped in batches." +sidebar_label: "Registers an IRS order with an array of {globalAssetIds}. Each globalAssetId will be processed in an IRS Job, grouped in batches." +hide_title: true +hide_table_of_contents: true +api: {"description":"Registers an IRS order with an array of {globalAssetIds}. Each globalAssetId will be processed in an IRS Job, grouped in batches.","operationId":"registerOrder","requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"description":"Request body for registering a new Batch Order.","properties":{"aspects":{"type":"array","items":{"type":"string"},"maxItems":2147483647},"batchSize":{"type":"integer","format":"int32","default":20,"description":"Size of the batch.","maximum":100,"minimum":10},"batchStrategy":{"type":"string","description":"The strategy how the batch is processed internally in IRS.","enum":["PRESERVE_BATCH_JOB_ORDER","PRESERVE_JOB_ORDER","PRESERVE_BATCH_ORDER"]},"bomLifecycle":{"type":"string","description":"The lifecycle context in which the child part was assembled into the parent part.","enum":["asBuilt","asPlanned"]},"callbackUrl":{"type":"string","description":"Callback url to notify requestor when job processing is finished. There are four uri variable placeholders that can be used: orderId, batchId, orderState and batchState.","example":"https://hostname.com/callback?orderId={orderId}&batchId={batchId}&orderState={orderState}&batchState={batchState}"},"collectAspects":{"type":"boolean","description":"Flag to specify whether aspects should be requested and collected. Default is false."},"depth":{"type":"integer","format":"int32","description":"Max depth of the item graph returned. If no depth is set item graph with max depth is returned.","maximum":100,"minimum":1},"direction":{"type":"string","default":"downward","description":"Item graph traversal direction.","enum":["upward","downward"]},"globalAssetIds":{"type":"array","items":{"type":"string"},"maxItems":2147483647},"jobTimeout":{"type":"integer","format":"int32","default":3600,"description":"Timeout in seconds for each job processing inside the complete order.","maximum":7200,"minimum":60},"lookupBPNs":{"type":"boolean","description":"Flag to specify whether BPNs should be collected and resolved via the configured BPDM URL. Default is false."},"timeout":{"type":"integer","format":"int32","default":43200,"description":"Timeout in seconds for the complete batch order processing.","maximum":86400,"minimum":60}},"required":["globalAssetIds"]}}},"required":true},"responses":{"201":{"content":{"application/json":{"examples":{"complete":{"value":{"id":"6c311d29-5753-46d4-b32c-19b918ea93b0"}}},"schema":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","format":"uuid","description":"Id of the Batch Order."}}}}},"description":"Returns orderId of registered Batch order."},"400":{"content":{"application/json":{"examples":{"error":{"value":{"error":"Bad request","messages":["BadRequestException"],"statusCode":"400 BAD_REQUEST"}}},"schema":{"type":"object","additionalProperties":false,"description":"Error response.","properties":{"error":{"type":"string","description":"Error."},"messages":{"type":"array","description":"List of error messages.","items":{"type":"string"},"maxItems":2147483647},"statusCode":{"type":"string","description":"Error code.","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 EARLY_HINTS","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}}},"description":"Batch Order registration failed."},"401":{"content":{"application/json":{"examples":{"error":{"value":{"error":"Unauthorized","messages":["UnauthorizedException"],"statusCode":"401 UNAUTHORIZED"}}},"schema":{"type":"object","additionalProperties":false,"description":"Error response.","properties":{"error":{"type":"string","description":"Error."},"messages":{"type":"array","description":"List of error messages.","items":{"type":"string"},"maxItems":2147483647},"statusCode":{"type":"string","description":"Error code.","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 EARLY_HINTS","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}}},"description":"No valid authentication credentials."},"403":{"content":{"application/json":{"examples":{"error":{"value":{"error":"Forbidden","messages":["ForbiddenException"],"statusCode":"403 FORBIDDEN"}}},"schema":{"type":"object","additionalProperties":false,"description":"Error response.","properties":{"error":{"type":"string","description":"Error."},"messages":{"type":"array","description":"List of error messages.","items":{"type":"string"},"maxItems":2147483647},"statusCode":{"type":"string","description":"Error code.","enum":["100 CONTINUE","101 SWITCHING_PROTOCOLS","102 PROCESSING","103 EARLY_HINTS","103 CHECKPOINT","200 OK","201 CREATED","202 ACCEPTED","203 NON_AUTHORITATIVE_INFORMATION","204 NO_CONTENT","205 RESET_CONTENT","206 PARTIAL_CONTENT","207 MULTI_STATUS","208 ALREADY_REPORTED","226 IM_USED","300 MULTIPLE_CHOICES","301 MOVED_PERMANENTLY","302 FOUND","302 MOVED_TEMPORARILY","303 SEE_OTHER","304 NOT_MODIFIED","305 USE_PROXY","307 TEMPORARY_REDIRECT","308 PERMANENT_REDIRECT","400 BAD_REQUEST","401 UNAUTHORIZED","402 PAYMENT_REQUIRED","403 FORBIDDEN","404 NOT_FOUND","405 METHOD_NOT_ALLOWED","406 NOT_ACCEPTABLE","407 PROXY_AUTHENTICATION_REQUIRED","408 REQUEST_TIMEOUT","409 CONFLICT","410 GONE","411 LENGTH_REQUIRED","412 PRECONDITION_FAILED","413 PAYLOAD_TOO_LARGE","413 REQUEST_ENTITY_TOO_LARGE","414 URI_TOO_LONG","414 REQUEST_URI_TOO_LONG","415 UNSUPPORTED_MEDIA_TYPE","416 REQUESTED_RANGE_NOT_SATISFIABLE","417 EXPECTATION_FAILED","418 I_AM_A_TEAPOT","419 INSUFFICIENT_SPACE_ON_RESOURCE","420 METHOD_FAILURE","421 DESTINATION_LOCKED","422 UNPROCESSABLE_ENTITY","423 LOCKED","424 FAILED_DEPENDENCY","425 TOO_EARLY","426 UPGRADE_REQUIRED","428 PRECONDITION_REQUIRED","429 TOO_MANY_REQUESTS","431 REQUEST_HEADER_FIELDS_TOO_LARGE","451 UNAVAILABLE_FOR_LEGAL_REASONS","500 INTERNAL_SERVER_ERROR","501 NOT_IMPLEMENTED","502 BAD_GATEWAY","503 SERVICE_UNAVAILABLE","504 GATEWAY_TIMEOUT","505 HTTP_VERSION_NOT_SUPPORTED","506 VARIANT_ALSO_NEGOTIATES","507 INSUFFICIENT_STORAGE","508 LOOP_DETECTED","509 BANDWIDTH_LIMIT_EXCEEDED","510 NOT_EXTENDED","511 NETWORK_AUTHENTICATION_REQUIRED"]}}}}},"description":"Authorization refused by server."}},"security":[{"oAuth2":["profile email"]}],"tags":["Item Relationship Service"],"method":"post","path":"/irs/orders","servers":[{"url":"http://localhost:8080"}],"securitySchemes":{"oAuth2":{"flows":{"clientCredentials":{"scopes":{"profile email":""},"tokenUrl":"https://localhost"}},"type":"oauth2"}},"jsonRequestBodyExample":{"aspects":["string"],"batchSize":20,"batchStrategy":"PRESERVE_BATCH_JOB_ORDER","bomLifecycle":"asBuilt","callbackUrl":"https://hostname.com/callback?orderId={orderId}&batchId={batchId}&orderState={orderState}&batchState={batchState}","collectAspects":true,"depth":0,"direction":"downward","globalAssetIds":["string"],"jobTimeout":3600,"lookupBPNs":true,"timeout":43200},"info":{"description":"The API of the Item Relationship Service (IRS) for retrieving item graphs along the value chain of CATENA-X partners.","title":"IRS API","version":"2.0"},"postman":{"name":"Registers an IRS order with an array of {globalAssetIds}. Each globalAssetId will be processed in an IRS Job, grouped in batches.","description":{"content":"Registers an IRS order with an array of {globalAssetIds}. Each globalAssetId will be processed in an IRS Job, grouped in batches.","type":"text/plain"},"url":{"path":["irs","orders"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}},"auth":{"type":"oauth2","oauth2":[]}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/Data Chain Kit/Software Development View/Job Api/irs-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Registers an IRS order with an array of {globalAssetIds}. Each globalAssetId will be processed in an IRS Job, grouped in batches. + + + +Registers an IRS order with an array of {globalAssetIds}. Each globalAssetId will be processed in an IRS Job, grouped in batches. + +
Request Body required
    = 10` and `<= 100`"} defaultValue={20}>= 1` and `<= 100`"} defaultValue={undefined}>= 60` and `<= 7200`"} defaultValue={3600}>= 60` and `<= 86400`"} defaultValue={43200}>
+ +Returns orderId of registered Batch order. + +
Schema
+ +Batch Order registration failed. + +
Schema
+ +No valid authentication credentials. + +
Schema
+ +Authorization refused by server. + +
Schema
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Software Development View/Job Api/sidebar.js b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Software Development View/Job Api/sidebar.js new file mode 100644 index 00000000000..c072d04232a --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Software Development View/Job Api/sidebar.js @@ -0,0 +1 @@ +module.exports = [{"type":"doc","id":"kits/Data Chain Kit/Software Development View/Job Api/irs-api"},{"type":"category","label":"Environmental- and Social Standards","link":{"type":"generated-index","title":"Environmental- and Social Standards","slug":"/category/kits/Data Chain Kit/Software Development View/Job Api/environmental-and-social-standards"},"items":[{"type":"doc","id":"kits/Data Chain Kit/Software Development View/Job Api/register-bpn-investigation","label":"Registers an IRS job to start an investigation if a given bpn is contained in a part chain of a given globalAssetId.","className":"api-method post"},{"type":"doc","id":"kits/Data Chain Kit/Software Development View/Job Api/get-bpn-investigation","label":"Return job with additional supplyChainImpacted information.","className":"api-method get"},{"type":"doc","id":"kits/Data Chain Kit/Software Development View/Job Api/receive-edc-notification","label":"Accepts notifications sent via EDC.","className":"api-method post"}]},{"type":"category","label":"Item Relationship Service","link":{"type":"generated-index","title":"Item Relationship Service","slug":"/category/kits/Data Chain Kit/Software Development View/Job Api/item-relationship-service"},"items":[{"type":"doc","id":"kits/Data Chain Kit/Software Development View/Job Api/get-jobs-by-job-states","label":"Returns paginated jobs with state and execution times.","className":"api-method get"},{"type":"doc","id":"kits/Data Chain Kit/Software Development View/Job Api/register-job-for-global-asset-id","label":"Register an IRS job to retrieve an item graph for given {globalAssetId}.","className":"api-method post"},{"type":"doc","id":"kits/Data Chain Kit/Software Development View/Job Api/get-job-for-job-id","label":"Return job with optional item graph result for requested id.","className":"api-method get"},{"type":"doc","id":"kits/Data Chain Kit/Software Development View/Job Api/cancel-job-by-job-id","label":"Cancel job for requested jobId.","className":"api-method put"},{"type":"doc","id":"kits/Data Chain Kit/Software Development View/Job Api/register-order","label":"Registers an IRS order with an array of {globalAssetIds}. Each globalAssetId will be processed in an IRS Job, grouped in batches.","className":"api-method post"},{"type":"doc","id":"kits/Data Chain Kit/Software Development View/Job Api/get-batch-order","label":"Get a batch order for a given orderId.","className":"api-method get"},{"type":"doc","id":"kits/Data Chain Kit/Software Development View/Job Api/cancel-batch-order","label":"Cancel a batch order for a given orderId.","className":"api-method put"},{"type":"doc","id":"kits/Data Chain Kit/Software Development View/Job Api/get-batch","label":"Get a batch with a given batchId for a given orderId.","className":"api-method get"}]},{"type":"category","label":"Aspect Models","link":{"type":"generated-index","title":"Aspect Models","slug":"/category/kits/Data Chain Kit/Software Development View/Job Api/aspect-models"},"items":[{"type":"doc","id":"kits/Data Chain Kit/Software Development View/Job Api/get-all-aspect-models","label":"Get all available aspect models from semantic hub or local models.","className":"api-method get"}]}]; \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Software Development View/_category_.json b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Software Development View/_category_.json new file mode 100644 index 00000000000..e5c5b7565a3 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Software Development View/_category_.json @@ -0,0 +1,3 @@ +{ + "label": "Development View" +} diff --git a/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Software Development View/page_software-development-view.md b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Software Development View/page_software-development-view.md new file mode 100644 index 00000000000..8ac78963676 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Software Development View/page_software-development-view.md @@ -0,0 +1,23 @@ +--- +id: Specification +title: Specification +sidebar_position: 2 +--- + +![Datachain kit banner](@site/static/img/DataChainKitIcon.png) + +### Data Chain KIT + +## IRS REST API + +The IRS Rest API provides an easy to use Interface for applications to access cross company data chains. + +## IRS REST API Standard + +The IRS REST API is standardized through the Catena-X e.V. and can be found here: + +- [> CX-0005 Item Relationship Service API](https://catena-x.net/de/standard-library) + +Comming Soon: + +- CX-0045 Data Chain Template diff --git a/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Success Stories/page_ce_circularity_dashboard_story.md b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Success Stories/page_ce_circularity_dashboard_story.md new file mode 100644 index 00000000000..704aa69a6d9 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Success Stories/page_ce_circularity_dashboard_story.md @@ -0,0 +1,15 @@ +--- +id: Circularity Dashboard Sucess Story +title: Circularity Dashboard Sucess Story +description: 'Data Chain Kit' +sidebar_position: 1 +--- + +Due to the large number of producers and consumers, however, the implementation of the circular economy is challenging: Information on the individual lifecycles is mostly only available locally and therefore does not provide any meaningful assessment of reuse, recycling or remanufacturing. + +![success](@site/static/img/irs-circularity-dashboard-successstory.png) + +Therefore, the circularity dashboard, gives the user information about materials of the product and of all their composites. This is only possible, if participants of the supply chain, the direct manufactures of the composites of a vehicle are sharing information about the materials used. +The ability to access provided data in the Catena-X network could be done in two different ways. Way one is to handle each request separately, or use the IRS, which manages the retrieval of digital twins, checks and validates the results against the semantics and provides an easy-to-use API to interact with the decentral stored data. +In the SAP Industry Network for Automotive, circularity cockpit API specification and IRS implementation are serving as a reference. Thus, we were able to develop IRS functionality to best fit the SAP tech stack, which we decided to use for the circularity cockpit. +This enables us, to have a controlled access to distributed data in an interoperable setup to access data chains. To abstract the data consumption layer brings benefits in stability and resiliency to our application, because we could easily change to different providers or services of a IRS implementation. diff --git a/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Success Stories/page_trace-x_story.mdx b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Success Stories/page_trace-x_story.mdx new file mode 100644 index 00000000000..a3da45fc0ae --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Success Stories/page_trace-x_story.mdx @@ -0,0 +1,43 @@ +--- +id: Trace-X Sucess Story +title: Trace-X Sucess Story +description: 'Data Chain Kit' +sidebar_position: 1 +--- + +import Image from "@site/static/img/Group31.png" + + +
+

Trace-X

+
+

Trace-X empowers all companies from SMEs to large OEMs to participate in parts traceability with an Open-Source solution.

+ +![Trace-X-Screenshot](@site/static/img/Trace-X/Trace-X_App-mypartsview.png) + +The Open-Source Traceability application is developed within the Catena-X project and enables all companies to participate in Parts Traceability. +Trace-X offers capabilities to ingest data for serialized parts and batches as well as their child components. Within CX, we strive to establish a standardized, data-sovereign and interoperable exchange of traceability data along the value creation chain. + +The application gives an overview of the supplier network and the supply chain. A high level of transparency across the supplier network enables faster intervention based on recorded events in the supply chain. Additionally, automated massages regarding Quality related incidents. +All this saves' costs by seamlessly tracking parts as well as creates trust through clearly defined and secure data access by the companies and persons involved in the process. + +![success2](@site/static/img/IRS2.png) + +Applying and using the Item Relationship Service had the following benefits: + +* With the decision using the IRS we could speed our development of Trace-X through out the scope of their helm charts including a running service with test data. That alone was very benefitial to have a stable environment with data +* The IRS fulfills a high level of quality in code which provides a reliable service +* The deployment via helm charts has been built so that it can fit in existing architecture components through out configuration like the Digital Twin Registry, the EDC, Semantic Hub, Keycloack and others. This enabled Trace-X to configure the Service smoothly into the architecture of the application +* The IRS abstracts the communication with partners along the supply chain, that makes it easy to build business processes on that. It abstracts a technical level to a logical level to enhance the speed of implementation of a Software Provider +* The IRS with the standardized API provides a data interoperability level on data chains +* The Team behind the IRS is fast in implementing and adapting new features +
+
+ +![Trace-XScreenshot1](@site/static/img/Trace-X/01.png) +![Trace-XScreenshot2](@site/static/img/Trace-X/02.png) +![Trace-XScreenshot3](@site/static/img/Trace-X/03.png) +![Trace-XScreenshot4](@site/static/img/Trace-X/04.png) + diff --git a/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Success Stories/success_stories.mdx b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Success Stories/success_stories.mdx new file mode 100644 index 00000000000..5ddcd49d879 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/Success Stories/success_stories.mdx @@ -0,0 +1,10 @@ +--- +id: IRS Success Stories index +title: IRS Success Stories index +description: 'asdf' +sidebar_position: 3 +slug: /sidebar +--- + + +asdfasd \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/arc/page_documentation.md b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/arc/page_documentation.md new file mode 100644 index 00000000000..3502407f2fd --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/arc/page_documentation.md @@ -0,0 +1,14 @@ +--- +id: documentation +title: Documentation +description: 'Data Chain Kit' +sidebar_position: 3 +--- + +![Datachain kit banner](@site/static/img/doc-datachain_header-minified.png) + +## INCLUDE + +* [https://eclipse-tractusx.github.io/item-relationship-service/docs/](https://eclipse-tractusx.github.io/item-relationship-service/docs) + +Under the following you will find the documentation from the IRS diff --git a/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/page_adoption-view.md b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/page_adoption-view.md new file mode 100644 index 00000000000..bb141f2bfe2 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/page_adoption-view.md @@ -0,0 +1,293 @@ +--- +id: Adoption View Data Chain Kit +title: Adoption View +description: 'Data Chain Kit' +sidebar_position: 1 +--- + +![Datachain kit banner](@site/static/img/DataChainKitIcon.png) + +### Data Chain Kit + +## Vision & Mission + +### Vision + +DataChainKit brings valuable data chain information to your use-cases and services through connected data that can help Business Owner and Catena-X participants to be up-to-date and prepared. It's easy to use the DataChainKit with an Open Source Software package, which can easily deployed via HELM or docker-compose. The DataChainKit enables to apply business logic along a distributed data chains, for example aggregation of certificates along the value chain. Also, ad-hoc provisioning of continuous data chains across company boundaries for empowerment of use cases Circular Economy, Traceability, Quality and the European supply chain act. + +(#GreenIT#DataSovereignty#Interoperability#ConnectedData) + +### Mission + +The Data Chain KIT provides a reference implementation as functional federated component to handle ad-hoc data chains across n-tiers within the Catena-X network. To realize these data chains, the Data Chain Kit relies on data models of the Traceability use case and provides the federated data chains to customers or applications. Furthermore, the target picture of the IRS includes the enablement of new business areas by means of data chains along the value chain in the automotive industry. + +All described specifications in the KIT are based on Catena-X standards and refer to other Catena-X KITs like the Connector KIT (EDC) and Digital Twin Registry to ensure interoperability and data sovereignty according to IDSA and Gaia-X principles. + +### Customer Journey + +With the Data Chain KIT, we support the Catena-X customer journey for our adopters and solutions providers. + +There are few steps for your Customer Journey: +* Step 1: Inform yourself & take the decision to become part +* Step 2: Connect your company & teams to Catena-X. +* Step 3: Boost data readiness and governance +* Step 4: Adopt a data driven business process and create instant value +* Step 5: Utilize the full power of collaboration in your business team + + +## Business Value + +### IRS Iterative + +* Application and Service provider can reduce integrate or migrate due to one API specification +* The IRS Iterative API enables an easy interface for complex network tasks +* Potential to scale and optimize network traffic +* The IRS Iterative API is providing one Endpoint to access and collect widely distributed data +* The Data Chain Kit enables interoperability for Data Chains along the value chain to extend + +### IRS Recursive +* Application and Service provider can reduce integrate or migrate due to one API specification +* The IRS Recursive API enables an easy interface for complex network tasks +* The IRS Recursive API enables different use cases which collect insights over distributed data by not disclosing the supply chain +* The solution enables interoperability with other solutions along the value chain to extend + + +## Use Case + +### Environmental Social Responsibility (ESR) + +_Use Case for achieving compliance for Environmental Social Responsibility (ESR) for a component in the supply chain (multi-tier)_ + +In the use case, it was assumed that a company in the supply chain is considered "compliant" if that company can show the ISO 14001 certificate. Presenting means that either the company itself provides it as a data provider or deposits it in a certificate repository with a service provider. + +The benefit of the solution is to obtain an automated overview of the supply chain's compliance and to be able to check it again and again on a cyclical basis. The companies in the supply chain are not disclosed, which follows the Catena-X specifications. + +The decentralized implementation at Catena-X "traverses" from the OEM to the direct supplier and from the direct supplier to its next supplier and thus through the supply chain for a specific component. Each partner determines its direct supplier automatically via the parts list stored by it in Catena-X's Item Relationship Service (IRS). + +Aggregated information on the compliance of the upstream suppliers is returned to the OEM via each stage of the supply chain. From this, the OEM can finally read how many companies are compliant and how many are non-compliant in its supply chain for the component. + +The names of the suppliers further down the supply chain are not disclosed to follow the Catena-X data sovereignty principle one-up-one-down, but each intermediate level sees which of the direct suppliers are non-compliant and can act, so that perspectively the whole supply chain is assessed as compliant. + +### Environmental and Social Standards (ESS) Top-Down + +With the entry into force of the German Supply Chain Due Diligence Act as from January 1st, 2023, German companies are +obliged to implement the corresponding requirements of this law. In addition, the following European directives on this +subject have also been adopted: EU regulation 2018/858. This regulation is legally binding to all EU member states. + +This use-case facilitates the [IRS Recursive](#irs-recursive-1) approach and enables data providers to provide the BoM +as planned aspect models via the Catena-X defined solution +stack (i.e. EDC). The BoM as planned aspect models consists of three aspect models: + +- SingleLevelBomAsPlanned - The single-level bill of material (BoM) represents one sub-level of an assembly and does not + include any lower-level subassemblies. In the As-Planned lifecycle state all variants are covered ("120% BoM"). If multiple versions of child parts exist that can be assembled into the same parent part, all versions of the child part are included in the BoM. If there are multiple suppliers for the same child part, each supplier has an entry for their child part in the BoM. +- PartAsPlanned - representation of an item in the Catena-X Bill of Material (BOM) in As-Planned lifecycle status in a specific version. This also includes information about the validityPeriod - the period of time during which the Part is offered by the manufacturer and can be purchased by customers. +- PartSiteInformationAsPlanned - Site related information for a given as planned item. A site is a delimited geographical area where a legal entity does business. In the "as planned" lifecycle context all potentially related sites are listed including all sites where e.g. production of this part (type) is planned. + +#### Step 0: Process initiation + +The process is initiated by an ESS incident, that is received by (or created within) the inquiring company. This ESS incident acts as the root incident for the overall process. The incident contains a company name (incl. address) and a valid BPN exists for that company. The BPN (a BPNL or BPNS) can be looked up in BPDM. + +#### Step 1: Check direct suppliers + +The inquiring company checks, if the company of the incident is a direct supplier of them. In order to perform this check, the following data must be available in the inquiring company: + +- Full list of direct suppliers +- Full list of parts supplied by those direct suppliers + +In case the company of the incident is a direct supplier of the inquiring company, the process ends. In case the company of the incident is not a direct supplier of the inquiring company, Step 2 is executed. + +#### Step 2: Forward Incident + +The incident is forwarded to all direct suppliers. Each direct supplier is sent a "personalized" request to evaluate, if the inquiring company is impacted by the incident. The incident is enhanced with additional data by the inquiring company: + +- List of parts, that are supplied to the inquiring company by their direct supplier. + +Each direct supplier executes Step 1. + +#### Step 3: Gather Responses + +The inquiring company collects the (asynchronous) responses. The response of each direct supplier may contain the following results: + +- YES → The company of the incident was found in the supply chain of the given list of parts. In this case, the result also contains the BPN of the direct supplier where the incident occurred alongside the number of hops (i.e. how many levels down the chain) to where the incident occurred +- NO → The company of the incident was not found in the supply chain of the given list of parts +- UNKNOWN → The query timed out or some other error occurred + +In case at least one "YES" is received, the process step 3 ends + +### Environmental and Social Standards (ESS) Bottom-Up + +The occasion related traceability helps stakeholders to identify if a company that is detected for social or environmental misbehavior is part of its own supply chain. In case of a hit, the inquiring company and the originator company will be informed by the response, and therefore if the specific company has to start investigations. + +Similar to the ESS use-case Top-Down, ESS Bottom-Up focuses on notifying customers about incidents in the supply chain. The difference to Top-Down is that the Bottom-Up approach only investigates on one level and does not send any notifications. To achieve this goal, IRS uses these aspect models: + +- SingleLevelUsageAsPlanned - The aspect provides the information in which parent part(s)/product(s) the given item is assembled in. This could be a 1:1 relationship in terms of e.g. a brake component or 1:n for e.g. coatings. The given item as well as the parent item must refer to an object from as-planned lifecycle phase. If multiple versions of parent parts exist that the child part can be assembled into, all versions of the parent part are included in the usage list. +- PartAsPlanned - representation of an item in the Catena-X Bill of Material (BOM) in As-Planned lifecycle status in a specific version. This also includes information about the validityPeriod - the period of time during which the Part is offered by the manufacturer and can be purchased by customers. +- PartSiteInformationAsPlanned - Site related information for a given "as planned" item. A site is a delimited geographical area where a legal entity does business. In the "as planned" lifecycle context all potentially related sites are listed including all sites where e.g. production of this part (type) is planned. + +For the originator company, IRS validates whether the requested BPNS is part of their PartSiteInformationAsPlanned and whether the provided validityTimestamp is within the validityPeriod of PartAsPlanned. If this is the case, IRS will then collect all the BPNLs of the direct customer and return the affected parts in the following structure for an incident company to handle further incident management: + +```json +{ + "customers": [ + { + "businessPartnerNumberLegalEntity": "", + "customerParts": [ + { + "globalAssetId": "", + "sites": [ + { + + } + ] + }, + ... + ] + } + ] +} +``` + +### Data Integrity Layer (DIL) - Spike + +The use-case Data Integrity Layer is an additional Layer in IRS processing. It aims to verify integrity along the data +chain by introducing a new aspect model: DataIntegrity. This model contains hashes and signatures of semantic models in +a parent - child structure, similar to SingleLevelBomAsBuilt: + +```json +{ + "catenaXId": "urn:uuid:123", + "childParts": [ + { + "catenaXId": "urn:uuid:456", + "references": [ + { + "semanticModelUrn": "urn:bamm:io.catenax.data_integrity:1.0.0#DataIntegrity", + "hash": "5a4cc1c6817b0045b26d3e842482753b5ad1cf20fbedebed2ee3c09936800821", + "signature": "e71196ddd321cc0f87cca372c304d74b9e741d8a5a3ddd5b953877b1f65a5206815d20f53bb51cf3d7725ed14fb5e18bd7b65e0ba9ef0e2f0cb44b5d5fc42e4197ce004ce4d0369e15c0429c7097099d46ce8640ff7197ac57f8045d3db996df1deaf8e7f01b447118d62876d2cd44484d2e2c49fac4a47c8a6ea9177142d8efdc032fd5638968dcd8982349b65cc6f75409dccc2386aa5e76c397d77e54e0fe4add1c870af5eab754c911595e8dc4b6e33643d15b95c2f8b62524702e30bf49736063e71761f6382aca8b46fffbd529495bba075e29fc540cd0a9b11c349512ddd97c371b9eb7e56196b5236f31290912f2f282786042a6a81017030a6d82eb" + }, + { + "semanticModelUrn": "urn:bamm:io.catenax.serial_part:1.0.1#SerialPart", + "hash": "823dd4d758f2aafd5cf63de1144b178118cfe97388678d9b42eabe65a7e66e55", + "signature": "4ac7a5feb1724bbf5e6f9ba8ed55f09133185b9f9c49b627f6bc7f36b49e42f4dcfecd19bb64ad0bdc93742bab5add7a45f67ff7a2603f93e62f2b2bd4ed606b0d637f075df73b5aef91e8f20128dd55e62cce2f059beb59723927835e6e108c84170d7ca03a11fc65a9d57d618156c69fde6112955e53dca04bd0f860b75477eb7b58ee10ab8e5d3bcaacdfa1b6ba0f86e6d2518154642c1da8a42397221a556cfc536614298afeeaf5098c18f5aaf260bf78bfea30e066316819d0f442491fdf4cdc10929605ebefef05c5a503b62b8788d6bb9c76b8a9108987beca19cb5eae50bd83a5f29e241689f1450d4c06a7524955f4fbf6c4d773ef3a94e4a3a1a8" + }, + { + "semanticModelUrn": "urn:bamm:io.catenax.single_level_bom_as_built:1.0.0#SingleLevelBomAsBuilt", + "hash": "e2efea25b47bec2b5ce2a65b4785172240d97acfbd7f223ae009f9686a155e16", + "signature": "a0b344cd9fc3c5d51738a5f1b76ba079319ea9d270f181b0e691ff7a6bbc6eaab3955c324d9b7b8db679473408961cb06826532bb4bd54321d9e04539f6bd520def9b648e3a06a4ee035f4d961212a46404ac512ea64d72224af474ebe004ae87ec121078db994e7750324e7a2de66667512b3b2c0e60ba8c1391dcfcfe57f21b51256fc1a794cdace47a70561136328a7b8fce8539533c971d6ef29ea57c04fb6f87e873c0b66ca21c70f8689696b42bec47c718d9145f2de8bea38d9dc1718322ddc6014b6d781db846446c0dcb4ce3c6dda8e018be2732b32f414fd074dfadf87fa605ca57598095df7d139432015a0ba6a125089f835ee0af4db8a733074" + } + ] + }, + ... + ] +} +``` + +Based on the DataIntegrity aspect IRS can compare the data received by a data provider with the given hash and verify +that the data was not altered or manipulated after initial provision. + +## Logic & Schema + +### Building Block Architecture Overview + +![Building Block View](@site/static/img/irs_buidling_block_decentral.svg) + +#### IRS Components + +| Components | Description | +|:----------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| IRS | The IRS builds a digital representation of a product (digital twin) and the relationships of items the product consists of in a hierarchical structure. The result is an item graph in which each node represents a digital item of the product - this graph is called "Item Graph". | +| IRS API | The IRS API is the Interface over which the Data Consumer is communicating. | +| IrsController | The IrsController provides a REST Interface for retrieving IRS processed data and job details of the current item graph retrieval process. | +| IrsItemGraphQueryService | The IrsItemGraphQueryService implements the REST Interface of the IrsController. | +| JobOrchestrator | The JobOrchestrator is a component which manages (start, end, cancel, resume) the jobs which execute the item graph retrieval process. | +| RecursiveJobHandler | The RecursiveJobHandler handles the job execution recursively until a given abort criteria is reached or the complete item graph is build. | +| TransferProcessManager | The TransferProcessManager handles the outgoing requests to the various data services. | +| Policy Store | The Policy Store provides an Interface for getting, adding and deleting accepted IRS EDC policies. These policies will be used to validate EDC contract offers. | +| BlobStore | The BlobStore is the database where the relationships and tombstones are stored for a requested item. | +| JobStore | The JobStore is the database where the jobs with the information about the requested item are stored. | +| Digital Twin Registry Client | The Digital Twin Registry Client is the interface to the Digital Twin Registry. It provides an interface for the Asset Administration Shells. | +| Decentralized Digital Twin Client | In a decentralized network, the Digital Twin Client connects to the EDC which then proxies the requests to the digital twin registry on provider side. | +| EDC Client | The EDC Client is used to communicate with the EDC network, negotiate contracts and retrieve submodel data. | + +#### Catena-X Core Services + +| Subsystem | Description | +|:-----------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Digital Twin Registry | The Digital Twin Registry acts as an address book for Digital Twins. Data Providers register their Digital Twins in the Digital Twin Registry. Data consumers query the Digital Twin Registry to find Digital Twins and interact with them further. A Digital Twin contains endpoint references to submodel endpoints. Calling a submodel endpoint returns data compliant to a semantic model. A semantic model describes the data that a Submodel endpoint returns. [Repository of the Digital Twin Registry](https://github.com/eclipse-tractusx/sldt-digital-twin-registry). | +| Eclipse Dataspace Connector (EDC) | The Eclipse Dataspace Connector provides a framework for sovereign, inter-organizational data exchange. It will implement the International Data Spaces standard (IDS) as well as relevant protocols associated with GAIA-X. The connector is designed in an extensible way in order to support alternative protocols and integrate in various ecosystems. [Repository of the Catena-X specific EDC](https://github.com/eclipse-tractusx/tractusx-edc). | +| Discovery Service | The Discovery Service interface is a CX network public available endpoint which can get used to retrieve EDC Discovery Service or BPN Discovery Services via a given type. | +| Portal | The Catena-X Portal and Marketplace is the heart of Catena-X and the entry point for all activities in the automotive network/value chain. Every user of the automotive value chain, no matter if it is a consumer, app provider, IT administrator or IT support will connect via the portal to the value bringing services. The whole eco-system on the automotive value chain is connected at one place. | | +| EDC Discovery Finder | The EDC dataspace discovery interface is a CX network public available endpoint which can get used to retrieve edc endpoints and the related BPNs, as well as search for endpoints via the BPN | + +## Business Process + +The DataChainKit acts as a middleware between consumers and manufacturers. This section describes the Business Process of DataChainKit. Who are its users, and with which other systems does it interact with. + +### Consumer + +The DataChainKit by IRS API is the essential component of the business app Trace-X FOSS to be able to build data chains in upwards and downwards direction for BOM lifecycles asBuilt and asPlanned. +The DataChainKit by IRS API is being consumed by the dismantler dashboard and other parties which are part of the Catena-X network. They need to provide valid credentials issued by the Catena-X Portal/IdP. Additionally, they must provide a base global asset identifier to retrieve information for as well as configuration details for the view on that information. + +### Catena-X network + +The IRS retrieves data from the Catena-X network (using the necessary infrastructure, see Technical Context), aggregates it and provides it back to the consumers. This connection is mandatory. If the Catena-X services are unavailable, the IRS cannot perform any work. + +As of now, the IRS uses technical user credentials provided by the portal to gather the required data. This might be changed to use the consumer credentials in the future. + +## Standards + +Our relevant standards can be downloaded from the official [Catena-X Standard Library](https://catena-x.net/de/standard-library) + +- [CX - 0005 Item Relationship Service API](https://catena-x.net/fileadmin/user_upload/Standard-Bibliothek/Archiv/Update_Juli_23_R_3.2/CX-0005-ItemRelationshipServiceApi-v1.1.1.pdf) +- [CX - 0045 Aspect Model Template Data Chain](https://catena-x.net/fileadmin/user_upload/Standard-Bibliothek/Archiv/Update_Juli_23_R_3.2/CX-0045-AspectModelDataChainTemplate-v1.1.1.pdf) + + +## Why Data Chain Kit + +What is in for you to use the Data Chain Kit. On what is it built on. + +![Why use Datachain Kit](@site/static/img/why_data_chain-minified.png) + +## IRS Iterative + +The IRS iterative iterates through the different digital twin aspects, which are representing a relationship. For Release 3.2 this is the SingleLevelBOMasBuilt aspect, which connects serialized parts. This service can access the digital twins for which an EDC policy and a data contract exists. In this case the consumer needs a contract which each participant of the data chain. + +![IRS iterative diagram](@site/static/img/irs-minified.svg) + +The following general conditions apply: +- Access control through policies and contracts is done by the EDC +- Direct data exchange between supply-chain partners +- Catena-X partners of the accessible value chain are known to the data-consumer + +## IRS Recursive + +The IRS recursive works different as the IRS iterative. It does not consume the digital twins of the partners in the supply chain in a direct way, it triggers the IRS of a partner to start an IRS job to retrieve data of the sub-partners. This is done to keep the structure below intransparent to the value chain above, even though it is still possible to aggregate results; pass information along the value chain. + +The following general conditions apply: + +- The IRS recursive is for use-cases, which want to apply business logic with data along the value chain. For example, to summarize, or check for existence of values or certificates. +- Each participant has the possibility to check their values, before passing them to next in line +- Access control through policies and contracts is done by the EDC +- Direct data exchange between supply-chain partners +- Business logic is being applied with an extension concept + +The recursive approach is based on a decentralized network in which only the next level of a relationship between two companies (one level down approach) is known. (Relationship: Customer - Supplier) +1. Company OEM initiate request using a consumer application. +2. Company (supplier) is identified on the next lower level - then a message is sent to the IRS instance of this supplier. +3. After receiving the message on supplier level, the IRS determines the suppliers on the next lower level and also sends a message to the IRS instances of the suppliers. +4. This is repeated until a leaf node (a company has no more suppliers or the company is not part of the C-X network) is reached. +5. In this case the leaf node is responding with a message to the customer company. +6. The IRS on customer company level receives and aggregates the messages from all requested suppliers and responds again to the customer until OEM level is reached. +7. OEM shows result of recursive investigation according to the given use case in consumer application. + +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2021, 2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +- SPDX-FileCopyrightText: 2022, 2023 BOSCH AG +- SPDX-FileCopyrightText: 2021, 2022 ZF Friedrichshafen AG +- SPDX-FileCopyrightText: 2022 ISTOS GmbH +- SPDX-FileCopyrightText: 2021, 2023 Contributors to the Eclipse Foundation +- Source URL: https://github.com/eclipse-tractusx/item-relationship-service diff --git a/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/page_changelog.md b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/page_changelog.md new file mode 100644 index 00000000000..1ceb767ec8d --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/page_changelog.md @@ -0,0 +1,54 @@ +--- +id: data chain kit changelog +title: Changelog +description: 'Data Chain Kit Changelog' +sidebar_position: 10 +--- + +![Datachain kit banner](@site/static/img/DataChainKitIcon.png) + +### Data Chain KIT + +All notable changes to this Kit will be documented in this file. + +## Unreleased + +

Fixed

+ +- Update documentation: Local deployment currently requires IRS version 2.4.0. See https://github.com/eclipse-tractusx/item-relationship-service/issues/247. + + +## [1.1.0] - 2023-08-25 + +

Added

+ +- Adoption View: added NOTICE section according to TRG 7.0.7 Legal notice for non-code (e.g. documentation) +- Adoption View: added Vision & Mission +- Adoption View: added Customer Journey +- Adoption View: added Business Value +- Adoption View: added IRS Components and Catena-X Core Services +- Adoption View: added Business Process +- Adoption View: added Standards +- Adoption View: added irs building block for decentral architecture + + +

Changed

+- Adoption View: adaption to new structure of Adoption View + +## [1.0.0] - 2023-03-01 + +

Added

+ +- documentation of the IRS API +- documentation of adoption view +- documentation of software development view +- documentation of the IRS reference implementation +- two success stories how this Kit is used + +

Changed

+ +- ./. + +

Removed

+ +- ./. diff --git a/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/page_software-operation-view.md b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/page_software-operation-view.md new file mode 100644 index 00000000000..8b5dfec06ab --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Data Chain Kit/page_software-operation-view.md @@ -0,0 +1,269 @@ +--- +id: Operation View +title: Operation View +description: 'Data Chain Kit' +sidebar_position: 2 +--- + +![Datachain kit banner](@site/static/img/DataChainKitIcon.png) + +### Data Chain KIT + +## Local Deployment + +> **Please note that this demo is currently based on IRS version 2.4.0.** + +Run a working demo scenario of the Item Relationship Service with a mocked Catena-X network to retrieve data chains with the following components: + +* Item Relationship Service +* Eclipse Dataspace Connector for accessing data +* Eclipse Dataspace Connector for data provisioning +* a submodel server and testdata for provisioning test digital twins +* an OIDC authentication provider mock +* Registry Service to register test digital twins +* Item Relationship Service Debugging View to visualize the results of the Item Relationship Service + +This emulates the communication over EDC, retrieving assets via a registry and building one continuous data chain with data from different companies. + +This local deployment is an easy installation with helm. This setup is built to run on a kubernetes cluster. + +| Step | Action | Description | +|----------------------------------------------------------------------------------|-------------------------------------|-------------------------------------------------------------------------| +|![arrow down](@site/static/img/arrow_down.png)| **[Install the prerequisites](#step-1-prerequisites)**| Install all necessary tools for this setup | +|![vector](@site/static/img/vector.png) | **[Check out the Code](#step-2-check-out-the-code)** | Get all necessary code to deploy the service and dependencies to the kuberneetes cluster| +|![check](@site/static/img/check.png) | **[Installing the Service](#step-3-installing-the-services)**|Start cluster and interact with the Item Relationship Service| + +### Step 1: Prerequisites + +1. [Docker](https://docs.docker.com/get-docker/) is installed and the Docker deamon is running with at least 8GB of memory +2. [helm](https://helm.sh/docs/intro/install/) is installed +3. [Minikube](https://minikube.sigs.k8s.io/docs/start/) is installed and running. + You can also use any other local Kubernetes cluster, this guide is just using Minikube as a reference. + + ```bash + minikube start --memory 8192 --cpus 2 + ``` + + _Optional_: enable minikube metrics + + ```bash + minikube addons enable metrics-server + ``` + +4. [kubectl](https://kubernetes.io/docs/tasks/tools/) is installed +5. [Python3](https://www.python.org/downloads/) is installed +6. [Ruby](https://www.ruby-lang.org/de/documentation/installation/) is installed +7. [psql](https://www.compose.com/articles/postgresql-tips-installing-the-postgresql-client/) client is installed + +### Step 2: Check out the code + +Check out the project [Item Relationship Service](https://github.com/eclipse-tractusx/item-relationship-service) or download a [released version](https://github.com/eclipse-tractusx/item-relationship-service/releases) of the Item Relationship Service + +> 👉 **Please use [tag 2.6.0](https://github.com/eclipse-tractusx/item-relationship-service/releases/tag/2.6.0) instead +of the latest version currently (this is the version compatible with IRS 2.4.0).** +> +> ```git clone -b 2.6.0 https://github.com/catenax-ng/tx-item-relationship-service``` + + +### Step 3: Installing the services + +#### 1. Start the cluster + +To deploy the services on kubernetes, run + +```bash +cd local/deployment/full-irs +./start.sh true true +``` + +The script takes 2 parameters as input: + +* INSTALL_EDC: default is set to true. If this is passed as true, will delete all helm charts related to EDC (vault, DAPS, EDC consumer and EDC provider) and install them again. +* INSTALL_IRS: default is set to true. If this is passed as true, will delete all helm charts related to IRS (dependencies, IRS backend and IRS frontend) and install them again. + +This can take up to **20 minutes**. + +When the deployment is finished you can expect that 13 deployments can be seen in the minikube dashboard: + +* irs-frontend +* irs +* irs-minio +* keycloak (mocked Service) +* digital-twin-registry +* semantic-hub (mocked Service) +* irs-provider-backend +* edc-provider-control-plane +* edc-provider-data-plane +* edc-consumer-control-plane +* edc-consumer-data-plane +* edc-vault-agent-injector + +Also in total 17 Pods are up and running. + +**INFO**: sometimes you will get the following message during deployment, which can be ignored. This is caused when a service takes longer than 90 seconds to be available. + +```bash +-e Waiting for the deployments to be available +error: timed out waiting for the condition on deployments/irs-frontend +``` + +##### 1.1 Get the status of the deployment + +The minikube dashboard will give you feedback on how the status of the deployment currently is: + +```bash + minikube dashboard +``` + +Make sure you select the namespace **irs**: + +![expected status](@site/static/img/minikube-dashboard-overview.png) + +#### 2. Forward ports + +When the deployment has been finished, please use the script to forward the ports: + +```bash +./forwardingPorts.sh +``` + +After that you can access the: + +* **Digital Twin Registry:** [http://localhost:10200](http://localhost:10200) +* **IRS Frontend:** [http://localhost:3000](http://localhost:3000) + +#### 3. Prepare test data + +> Only if Step 2 has been applied and the ports are forwarded. + +To provision testdata to the provider EDC and register the testdata with the Digital Twin Registry, use the following script: + +```bash +./upload-testdata.sh +``` + +If you like, you can remove the test data with: + +```bash +./deleteIRSTestData.sh +``` + +### Step 4: Access the Debugging View + +Open [http://localhost:3000/](http://localhost:3000/) and you should see the Item Relationship Service login screen. **Just press Login.** + +![irs-login](@site/static/img/irs-login.png) + +## Testing the Item Relationship Service + +You can use several approaches to interact with the IRS. One is through the **IRS API** and another way is through the **IRS API Frontend**. + +### Valid Global Asset IDs for testing + +Use these globalAssetId's for testing: + +| globalAssetId | type | +|---------------|------| +| urn:uuid:d3c0bf85-d44f-47c5-990d-fec8a36065c6 | vehicle combustion engine | +| urn:uuid:61a22b1c-5725-41fb-8e1e-dccaaba83838 | vehicle combustion engine | +| urn:uuid:513d7be8-e7e4-49f4-a22b-8cd31317e454 | vehicle combustion engine | + +### Valid test requests for testing + +Use these snippets for testing purposes. + +```json +{ + "aspects": [ + "AssemblyPartRelationship", + "SerialPartTypization" + ], + "bomLifecycle": "asBuilt", + "collectAspects": true, + "direction": "downward", + "depth": 10, + "globalAssetId": "urn:uuid:d387fa8e-603c-42bd-98c3-4d87fef8d2bb" +} +```` + +```json +{ + "aspects": [ + "SerialPartTypization" + ], + "depth": 1, + "globalAssetId": "urn:uuid:d387fa8e-603c-42bd-98c3-4d87fef8d2bb" +} +``` + + + +### Testing the IRS API endpoints + +#### Precondition + +* Visual Studio extension: [REST Client by Huachao Mao](https://marketplace.visualstudio.com/items?itemName=humao.rest-client) +* All installation steps have been conducted successfully +* A valid Global Asset ID + +#### Test-steps + +1. To interact with the API Endpoints, you need a valid token. You can generate an access token by using the ``` ./test/keycloack-service.rest ```. +2. **copy & paste** the valid token into line 8 of ``` ./test/irs-backend-service.rest ``` +3. **copy & paste** a valid globalAssetId into the request body +4. **execute the request** ```./test/irs-backend-service.rest``` + +### Testing with the IRS frontend + +#### Precondition + +* All installation steps have been conducted successfully + +#### Test-steps + +1. **open** [http://localhost:3000](http://localhost:3000) and click 'Login' +2. **copy & paste** a valid globalAssetId into the request body + ![irs-new-job](@site/static/img/irs-new-job.png) +3. **click** 'Build Data Chain' to start a new IRS job +4. **click** 'Visualization' to see the result of the job + ![irs-job-list](@site/static/img/irs-job-list.png) + +### Step 2: Verify Results + +The following example shows a visual overview of all retrieved data assets and digital twins of a data chain. +![irs-login](@site/static/img/irs-vis-overview.png) +_Item Relationship Service visualization overview_ + +With the following snippet, all clickable objects will be explained: + +* **Digital Twin:** the box itself is clickable and will open an overlay to show more information on this object. +* **Aspect:** the green button is clickable and represents an Aspect or Submodel of the twin. +* **Relationship Aspect:** the line between Digital Twins is clickable and will give detailed Information about the relationship between the twins. + +![irs-login](@site/static/img/irs-vis-clickable.png) +_Item Relationship Service clickable objects_ + +## Stopping the cluster + +1. stop minikube + + ```bash + minikube stop + ``` + +2. stop the processes used for port forwarding and minikube dashboard +3. shut down the Docker daemon + +## How to debug an application in the cluster + +If you want to connect your IDE to one of the applications in the cluster, you need to enable debug mode for that application by overriding the entrypoint (using the `command` and `args` fields in the deployment resource). How to do this depends on the application. For the IRS, as it is based on Spring Boot and Java, you would need to add this flag to the start command: + +```bash +-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000 +``` + +Then you can forward the port 8000 for the IRS deployment to your host machine and connect your IDE to that port. diff --git a/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API AAS Discovery/dotaas-part-2-http-rest-discovery-service-specification.info.mdx b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API AAS Discovery/dotaas-part-2-http-rest-discovery-service-specification.info.mdx new file mode 100644 index 00000000000..08dea9e47f6 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API AAS Discovery/dotaas-part-2-http-rest-discovery-service-specification.info.mdx @@ -0,0 +1,25 @@ +--- +id: dotaas-part-2-http-rest-discovery-service-specification +title: "DotAAS Part 2 | HTTP/REST | Discovery Service Specification" +description: "The entire Full Profile of the Discovery Service Specification as part of Details of the Asset Administration Shell Part 2. Publisher: Industrial Digital Twin Association (IDTA) 2023" +sidebar_label: Introduction +sidebar_position: 0 +hide_title: true +custom_edit_url: null +--- + +import ApiLogo from "@theme/ApiLogo"; +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; +import Export from "@theme/ApiDemoPanel/Export"; + +Version: V3.0_SSP-001 + +# DotAAS Part 2 | HTTP/REST | Discovery Service Specification + + + +The entire Full Profile of the Discovery Service Specification as part of Details of the Asset Administration Shell Part 2. Publisher: Industrial Digital Twin Association (IDTA) 2023 + +

Contact

Industrial Digital Twin Association (IDTA): info@idtwin.org

License

CC BY 4.0
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API AAS Discovery/get-all-asset-administration-shell-ids-by-asset-link.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API AAS Discovery/get-all-asset-administration-shell-ids-by-asset-link.api.mdx new file mode 100644 index 00000000000..47b373a2912 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API AAS Discovery/get-all-asset-administration-shell-ids-by-asset-link.api.mdx @@ -0,0 +1,38 @@ +--- +id: get-all-asset-administration-shell-ids-by-asset-link +title: "Returns a list of Asset Administration Shell ids linked to specific Asset identifiers" +description: "Returns a list of Asset Administration Shell ids linked to specific Asset identifiers" +sidebar_label: "Returns a list of Asset Administration Shell ids linked to specific Asset identifiers" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Asset Administration Shell Basic Discovery API"],"operationId":"GetAllAssetAdministrationShellIdsByAssetLink","parameters":[{"name":"assetIds","in":"query","description":"A list of specific Asset identifiers","required":false,"style":"form","explode":true,"schema":{"type":"array","example":"[ { \"name\": \"some-asset-id\", \"value\": \"http://example-company.com/myAsset\", \"externalSubjectId\": { \"keys\": [ { \"type\": \"GlobalReference\", \"value\": \"http://example-company.com/example-companys-asset-keys\" } ], \"type\": \"GlobalReference\" } }, { \"name\": \"some-other-asset-id\", \"value\": \"12345ABC\", \"externalSubjectId\": { \"keys\": [ { \"type\": \"GlobalReference\", \"value\": \"http://my-own-company.com/keys\" } ], \"type\": \"GlobalReference\" } } ]","items":{"allOf":[{"type":"object","properties":{"semanticId":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]},"supplementalSemanticIds":{"minItems":1,"type":"array","items":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]}}}},{"required":["name","value"],"properties":{"name":{"maxLength":64,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"externalSubjectId":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]}}}]}}},{"name":"limit","in":"query","description":"The maximum number of elements in the response array","required":false,"schema":{"minimum":1,"type":"integer"}},{"name":"cursor","in":"query","description":"A server-generated identifier retrieved from pagingMetadata that specifies from which position the result listing should continue","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Requested Asset Administration Shell ids","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}}},"default":{"description":"Default error handling for unmentioned status codes","content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array","items":{"type":"object","properties":{"code":{"maxLength":32,"minLength":1,"type":"string"},"correlationId":{"maxLength":128,"minLength":1,"type":"string"},"messageType":{"type":"string","enum":["Undefined","Info","Warning","Error","Exception"]},"text":{"type":"string"},"timestamp":{"pattern":"^-?(([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]))-((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|\\+00:00|-00:00)$","type":"string"}}}}}}}}}},"x-semanticIds":["https://admin-shell.io/aas/API/GetAllAssetAdministrationShellIdsByAssetLink/3/0"],"description":"Returns a list of Asset Administration Shell ids linked to specific Asset identifiers","method":"get","path":"/lookup/shells","servers":[{"url":"{protocol}://{host_name}:{port}/api/{version_prefix}","variables":{"protocol":{"description":"Allows access through http and https (recommended)","default":"https","enum":["http","https"]},"host_name":{"description":"Hostname of server hosting the api","default":"admin-shell.io"},"port":{"description":"80 is default for http, 443 for https","default":"443","enum":["80","443"]},"version_prefix":{"default":"v3.0","enum":["v3.0"]}}}],"info":{"title":"DotAAS Part 2 | HTTP/REST | Discovery Service Specification","description":"The entire Full Profile of the Discovery Service Specification as part of Details of the Asset Administration Shell Part 2. Publisher: Industrial Digital Twin Association (IDTA) 2023","contact":{"name":"Industrial Digital Twin Association (IDTA)","email":"info@idtwin.org"},"license":{"name":"CC BY 4.0","url":"https://creativecommons.org/licenses/by/4.0/"},"version":"V3.0_SSP-001"},"postman":{"name":"Returns a list of Asset Administration Shell ids linked to specific Asset identifiers","description":{"type":"text/plain"},"url":{"path":["lookup","shells"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"description":{"content":"A list of specific Asset identifiers","type":"text/plain"},"key":"assetIds","value":""},{"disabled":false,"description":{"content":"The maximum number of elements in the response array","type":"text/plain"},"key":"limit","value":""},{"disabled":false,"description":{"content":"A server-generated identifier retrieved from pagingMetadata that specifies from which position the result listing should continue","type":"text/plain"},"key":"cursor","value":""}],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/_versioned_docs/version-3.1.0/kits/Digital Twin Kit/Software Development View/API Specs/AAS Discovery//dotaas-part-2-http-rest-discovery-service-specification +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Returns a list of Asset Administration Shell ids linked to specific Asset identifiers + + + +Returns a list of Asset Administration Shell ids linked to specific Asset identifiers + +
Query Parameters
+ +Requested Asset Administration Shell ids + +
Schema array
  • string
+ +Default error handling for unmentioned status codes + +
Schema
    messages object[]
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API AAS Discovery/get-all-asset-links-by-id.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API AAS Discovery/get-all-asset-links-by-id.api.mdx new file mode 100644 index 00000000000..4f31609fee2 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API AAS Discovery/get-all-asset-links-by-id.api.mdx @@ -0,0 +1,70 @@ +--- +id: get-all-asset-links-by-id +title: "Returns a list of specific Asset identifiers based on an Asset Administration Shell id to edit discoverable content" +description: "Returns a list of specific Asset identifiers based on an Asset Administration Shell id to edit discoverable content" +sidebar_label: "Returns a list of specific Asset identifiers based on an Asset Administration Shell id to edit discoverable content" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Asset Administration Shell Basic Discovery API"],"operationId":"GetAllAssetLinksById","parameters":[{"name":"aasIdentifier","in":"path","description":"The Asset Administration Shell’s unique id (UTF8-BASE64-URL-encoded)","required":true,"style":"simple","explode":false,"schema":{"type":"string","format":"byte"}}],"responses":{"200":{"description":"Requested specific Asset identifiers","content":{"application/json":{"schema":{"type":"array","items":{"allOf":[{"type":"object","properties":{"semanticId":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]},"supplementalSemanticIds":{"minItems":1,"type":"array","items":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]}}}},{"required":["name","value"],"properties":{"name":{"maxLength":64,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"externalSubjectId":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]}}}]}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array","items":{"type":"object","properties":{"code":{"maxLength":32,"minLength":1,"type":"string"},"correlationId":{"maxLength":128,"minLength":1,"type":"string"},"messageType":{"type":"string","enum":["Undefined","Info","Warning","Error","Exception"]},"text":{"type":"string"},"timestamp":{"pattern":"^-?(([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]))-((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|\\+00:00|-00:00)$","type":"string"}}}}}}}}},"default":{"description":"Default error handling for unmentioned status codes","content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array","items":{"type":"object","properties":{"code":{"maxLength":32,"minLength":1,"type":"string"},"correlationId":{"maxLength":128,"minLength":1,"type":"string"},"messageType":{"type":"string","enum":["Undefined","Info","Warning","Error","Exception"]},"text":{"type":"string"},"timestamp":{"pattern":"^-?(([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]))-((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|\\+00:00|-00:00)$","type":"string"}}}}}}}}}},"x-semanticIds":["https://admin-shell.io/aas/API/GetAllAssetLinksById/3/0"],"description":"Returns a list of specific Asset identifiers based on an Asset Administration Shell id to edit discoverable content","method":"get","path":"/lookup/shells/{aasIdentifier}","servers":[{"url":"{protocol}://{host_name}:{port}/api/{version_prefix}","variables":{"protocol":{"description":"Allows access through http and https (recommended)","default":"https","enum":["http","https"]},"host_name":{"description":"Hostname of server hosting the api","default":"admin-shell.io"},"port":{"description":"80 is default for http, 443 for https","default":"443","enum":["80","443"]},"version_prefix":{"default":"v3.0","enum":["v3.0"]}}}],"info":{"title":"DotAAS Part 2 | HTTP/REST | Discovery Service Specification","description":"The entire Full Profile of the Discovery Service Specification as part of Details of the Asset Administration Shell Part 2. Publisher: Industrial Digital Twin Association (IDTA) 2023","contact":{"name":"Industrial Digital Twin Association (IDTA)","email":"info@idtwin.org"},"license":{"name":"CC BY 4.0","url":"https://creativecommons.org/licenses/by/4.0/"},"version":"V3.0_SSP-001"},"postman":{"name":"Returns a list of specific Asset identifiers based on an Asset Administration Shell id to edit discoverable content","description":{"type":"text/plain"},"url":{"path":["lookup","shells",":aasIdentifier"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) The Asset Administration Shell’s unique id (UTF8-BASE64-URL-encoded)","type":"text/plain"},"type":"any","value":"","key":"aasIdentifier"}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/_versioned_docs/version-3.1.0/kits/Digital Twin Kit/Software Development View/API Specs/AAS Discovery//dotaas-part-2-http-rest-discovery-service-specification +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Returns a list of specific Asset identifiers based on an Asset Administration Shell id to edit discoverable content + + + +Returns a list of specific Asset identifiers based on an Asset Administration Shell id to edit discoverable content + +
Path Parameters
+ +Requested specific Asset identifiers + +
Schema array
    semanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    supplementalSemanticIds undefined[]
    + +**Possible values:** `>= 1` + +
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    externalSubjectId
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
+ +Not Found + +
Schema
    messages object[]
+ +Default error handling for unmentioned status codes + +
Schema
    messages object[]
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API AAS Discovery/get-description.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API AAS Discovery/get-description.api.mdx new file mode 100644 index 00000000000..521f8f82b01 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API AAS Discovery/get-description.api.mdx @@ -0,0 +1,38 @@ +--- +id: get-description +title: "Returns the self-describing information of a network resource (ServiceDescription)" +description: "Returns the self-describing information of a network resource (ServiceDescription)" +sidebar_label: "Returns the self-describing information of a network resource (ServiceDescription)" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Description API"],"operationId":"GetDescription","responses":{"200":{"description":"Requested Description","content":{"application/json":{"schema":{"type":"object","properties":{"profiles":{"minItems":1,"type":"array","items":{"type":"string","enum":["AssetAdministrationShellServiceSpecification/V3.0","AssetAdministrationShellServiceSpecification/V3.0-MinimalProfile","SubmodelServiceSpecification/V3.0","SubmodelServiceSpecification/V3.0-ValueProfile","SubmodelServiceSpecification/V3.0-MinimalProfile","AasxFileServerServiceSpecification/V3.0","RegistryServiceSpecification/V3.0","RegistryServiceSpecification/V3.0- AssetAdministrationShellRegistry","RegistryServiceSpecification/V3.0-SubmodelRegistry","RepositoryServiceSpecification/V3.0","RepositoryServiceSpecification/V3.0-MinimalProfile","AssetAdministrationShellRepositoryServiceSpecification/V3.0","AssetAdministrationShellRepositoryServiceSpecification/V3.0-MinimalProfile","SubmodelRepositoryServiceSpecification/V3.0","SubmodelRepositoryServiceSpecification/V3.0-MinimalProfile","RegistryAndDiscoveryServiceSpecification/V3.0"]}}},"description":"The Description object enables servers to present their capabilities to the clients, in particular which profiles they implement. At least one defined profile is required. Additional, proprietary attributes might be included. Nevertheless, the server must not expect that a regular client understands them.","example":"{\n \"profiles\": [\n \"RepositoryServiceSpecification/V3.0-MinimalProfile\",\n \"RegistryServiceSpecification/V3.0\"\n ]\n}"}}}},"default":{"description":"Default error handling for unmentioned status codes","content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array","items":{"type":"object","properties":{"code":{"maxLength":32,"minLength":1,"type":"string"},"correlationId":{"maxLength":128,"minLength":1,"type":"string"},"messageType":{"type":"string","enum":["Undefined","Info","Warning","Error","Exception"]},"text":{"type":"string"},"timestamp":{"pattern":"^-?(([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]))-((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|\\+00:00|-00:00)$","type":"string"}}}}}}}}}},"x-semanticIds":["https://admin-shell.io/aas/API/Descriptor/GetDescription/3/0"],"description":"Returns the self-describing information of a network resource (ServiceDescription)","method":"get","path":"/description","servers":[{"url":"{protocol}://{host_name}:{port}/api/{version_prefix}","variables":{"protocol":{"description":"Allows access through http and https (recommended)","default":"https","enum":["http","https"]},"host_name":{"description":"Hostname of server hosting the api","default":"admin-shell.io"},"port":{"description":"80 is default for http, 443 for https","default":"443","enum":["80","443"]},"version_prefix":{"default":"v3.0","enum":["v3.0"]}}}],"info":{"title":"DotAAS Part 2 | HTTP/REST | Discovery Service Specification","description":"The entire Full Profile of the Discovery Service Specification as part of Details of the Asset Administration Shell Part 2. Publisher: Industrial Digital Twin Association (IDTA) 2023","contact":{"name":"Industrial Digital Twin Association (IDTA)","email":"info@idtwin.org"},"license":{"name":"CC BY 4.0","url":"https://creativecommons.org/licenses/by/4.0/"},"version":"V3.0_SSP-001"},"postman":{"name":"Returns the self-describing information of a network resource (ServiceDescription)","description":{"type":"text/plain"},"url":{"path":["description"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/_versioned_docs/version-3.1.0/kits/Digital Twin Kit/Software Development View/API Specs/AAS Discovery//dotaas-part-2-http-rest-discovery-service-specification +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Returns the self-describing information of a network resource (ServiceDescription) + + + +Returns the self-describing information of a network resource (ServiceDescription) + +
+ +Requested Description + +
Schema
    = 1`"} defaultValue={undefined}>
+ +Default error handling for unmentioned status codes + +
Schema
    messages object[]
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API AAS Discovery/sidebar.js b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API AAS Discovery/sidebar.js new file mode 100644 index 00000000000..7db655518ea --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API AAS Discovery/sidebar.js @@ -0,0 +1 @@ +module.exports = [{"type":"doc","id":"_versioned_docs/version-3.1.0/kits/Digital Twin Kit/Software Development View/API Specs/AAS Discovery//dotaas-part-2-http-rest-discovery-service-specification"},{"type":"category","label":"Asset Administration Shell Basic Discovery API","link":{"type":"generated-index","title":"Asset Administration Shell Basic Discovery API","slug":"/category/_versioned_docs/version-3.1.0/kits/Digital Twin Kit/Software Development View/API Specs/AAS Discovery/asset-administration-shell-basic-discovery-api"},"items":[{"type":"doc","id":"_versioned_docs/version-3.1.0/kits/Digital Twin Kit/Software Development View/API Specs/AAS Discovery//get-all-asset-administration-shell-ids-by-asset-link","label":"Returns a list of Asset Administration Shell ids linked to specific Asset identifiers","className":"api-method get"},{"type":"doc","id":"_versioned_docs/version-3.1.0/kits/Digital Twin Kit/Software Development View/API Specs/AAS Discovery//get-all-asset-links-by-id","label":"Returns a list of specific Asset identifiers based on an Asset Administration Shell id to edit discoverable content","className":"api-method get"}]},{"type":"category","label":"Description API","link":{"type":"generated-index","title":"Description API","slug":"/category/_versioned_docs/version-3.1.0/kits/Digital Twin Kit/Software Development View/API Specs/AAS Discovery/description-api"},"items":[{"type":"doc","id":"_versioned_docs/version-3.1.0/kits/Digital Twin Kit/Software Development View/API Specs/AAS Discovery//get-description","label":"Returns the self-describing information of a network resource (ServiceDescription)","className":"api-method get"}]}]; \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API AAS Registry/dotaas-part-2-http-rest-registry-service-specification.info.mdx b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API AAS Registry/dotaas-part-2-http-rest-registry-service-specification.info.mdx new file mode 100644 index 00000000000..3b413b7c2bb --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API AAS Registry/dotaas-part-2-http-rest-registry-service-specification.info.mdx @@ -0,0 +1,25 @@ +--- +id: dotaas-part-2-http-rest-registry-service-specification +title: "DotAAS Part 2 | HTTP/REST | Registry Service Specification" +description: "The Read Profile of the Asset Administration Shell Registry Service Specification as part of the Specification of the Asset Administration Shell: Part 2. Publisher: Industrial Digital Twin Association (IDTA) April 2023" +sidebar_label: Introduction +sidebar_position: 0 +hide_title: true +custom_edit_url: null +--- + +import ApiLogo from "@theme/ApiLogo"; +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; +import Export from "@theme/ApiDemoPanel/Export"; + +Version: V3.0_SSP-002 + +# DotAAS Part 2 | HTTP/REST | Registry Service Specification + + + +The Read Profile of the Asset Administration Shell Registry Service Specification as part of the Specification of the Asset Administration Shell: Part 2. Publisher: Industrial Digital Twin Association (IDTA) April 2023 + +

Contact

Industrial Digital Twin Association (IDTA): info@idtwin.org

License

CC BY 4.0
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API AAS Registry/get-all-asset-administration-shell-descriptors.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API AAS Registry/get-all-asset-administration-shell-descriptors.api.mdx new file mode 100644 index 00000000000..750e2627547 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API AAS Registry/get-all-asset-administration-shell-descriptors.api.mdx @@ -0,0 +1,290 @@ +--- +id: get-all-asset-administration-shell-descriptors +title: "Returns all Asset Administration Shell Descriptors" +description: "Returns all Asset Administration Shell Descriptors" +sidebar_label: "Returns all Asset Administration Shell Descriptors" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Asset Administration Shell Registry API"],"operationId":"GetAllAssetAdministrationShellDescriptors","parameters":[{"name":"limit","in":"query","description":"The maximum number of elements in the response array","required":false,"schema":{"minimum":1,"type":"integer"}},{"name":"cursor","in":"query","description":"A server-generated identifier retrieved from pagingMetadata that specifies from which position the result listing should continue","required":false,"schema":{"type":"string"}},{"name":"assetKind","in":"query","description":"The Asset's kind (Instance or Type)","required":false,"schema":{"type":"string","enum":["Instance","NotApplicable","Type"]}},{"name":"assetType","in":"query","description":"The Asset's type (UTF8-BASE64-URL-encoded)","required":false,"schema":{"maxLength":2000,"minLength":1,"pattern":"^[\\x09\\x0A\\x0D\\x20-\\uD7FF\\uE000-\\uFFFD\\U00010000-\\U0010FFFF]*$","type":"string"}}],"responses":{"200":{"description":"Requested Asset Administration Shell Descriptors","content":{"application/json":{"schema":{"allOf":[{"type":"object","properties":{"paging_metadata":{"type":"object","properties":{"cursor":{"type":"string","example":"wJlCDLIl6KTWypN7T6vc6nWEmEYe99Hjf1XY1xmqV-M=#"}}}}},{"type":"object","properties":{"result":{"type":"array","items":{"required":["id"],"type":"object","example":"{ \"id\": \"https://example.org/aas/motor\", \"endpoints\": [ { \"protocolInformation\": { \"endpointAddress\": \"https://localhost:1234\", \"endpointProtocolVersion\": \"1.1\" }, \"interface\": \"AAS-1.0\" }, { \"protocolInformation\": { \"endpointAddress\": \"opc.tcp://localhost:4840\" }, \"interface\": \"AAS-1.0\" }, { \"protocolInformation\": { \"endpointAddress\": \"https://localhost:5678\", \"endpointProtocolVersion\": \"1.1\", \"subprotocol\": \"OPC UA Basic SOAP\", \"subprotocolBody\": \"ns=2;s=MyAAS\", \"subprotocolBodyEncoding\": \"application/soap+xml\" }, \"interface\": \"AAS-1.0\" } ] }","allOf":[{"type":"object","properties":{"description":{"type":"array","items":{"allOf":[{"required":["language","text"],"type":"object","properties":{"language":{"pattern":"^(([a-zA-Z]{2,3}(-[a-zA-Z]{3}(-[a-zA-Z]{3}){2})?|[a-zA-Z]{4}|[a-zA-Z]{5,8})(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-(([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3}))*(-[0-9A-WY-Za-wy-z](-([a-zA-Z0-9]){2,8})+)*(-[xX](-([a-zA-Z0-9]){1,8})+)?|[xX](-([a-zA-Z0-9]){1,8})+|((en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang)))$","type":"string"},"text":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}},{"properties":{"text":{"maxLength":1023}}}]}},"displayName":{"type":"array","items":{"allOf":[{"required":["language","text"],"type":"object","properties":{"language":{"pattern":"^(([a-zA-Z]{2,3}(-[a-zA-Z]{3}(-[a-zA-Z]{3}){2})?|[a-zA-Z]{4}|[a-zA-Z]{5,8})(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-(([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3}))*(-[0-9A-WY-Za-wy-z](-([a-zA-Z0-9]){2,8})+)*(-[xX](-([a-zA-Z0-9]){1,8})+)?|[xX](-([a-zA-Z0-9]){1,8})+|((en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang)))$","type":"string"},"text":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}},{"properties":{"text":{"maxLength":128}}}]}},"extensions":{"minItems":1,"type":"array","items":{"allOf":[{"type":"object","properties":{"semanticId":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]},"supplementalSemanticIds":{"minItems":1,"type":"array","items":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]}}}},{"required":["name"],"properties":{"name":{"maxLength":128,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"valueType":{"type":"string","enum":["xs:anyURI","xs:base64Binary","xs:boolean","xs:byte","xs:date","xs:dateTime","xs:decimal","xs:double","xs:duration","xs:float","xs:gDay","xs:gMonth","xs:gMonthDay","xs:gYear","xs:gYearMonth","xs:hexBinary","xs:int","xs:integer","xs:long","xs:negativeInteger","xs:nonNegativeInteger","xs:nonPositiveInteger","xs:positiveInteger","xs:short","xs:string","xs:time","xs:unsignedByte","xs:unsignedInt","xs:unsignedLong","xs:unsignedShort"]},"value":{"type":"string"},"refersTo":{"minItems":1,"type":"array","items":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]}}}}]}}},"example":"{ \"endpoints\": [ { \"protocolInformation\": { \"endpointAddress\": \"https://localhost:1234\", \"endpointProtocolVersion\": \"1.1\" }, \"interface\": \"AAS-1.0\" }, { \"protocolInformation\": { \"endpointAddress\": \"opc.tcp://localhost:4840\" }, \"interface\": \"AAS-1.0\" }, { \"protocolInformation\": { \"endpointAddress\": \"https://localhost:5678\", \"endpointProtocolVersion\": \"1.1\", \"subprotocol\": \"OPC UA Basic SOAP\", \"subprotocolBody\": \"ns=2;s=MyAAS\", \"subprotocolBodyEncoding\": \"application/soap+xml\" }, \"interface\": \"AAS-1.0\" } ] }"},{"properties":{"administration":{"allOf":[{"type":"object","properties":{"embeddedDataSpecifications":{"minItems":1,"type":"array","items":{"required":["dataSpecification","dataSpecificationContent"],"type":"object","properties":{"dataSpecification":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]},"dataSpecificationContent":{"oneOf":[{"allOf":[{"required":["modelType"],"type":"object","properties":{"modelType":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataSpecificationIec61360","Entity","File","MultiLanguageProperty","Operation","Property","Range","ReferenceElement","RelationshipElement","Submodel","SubmodelElementCollection","SubmodelElementList"]}}},{"required":["preferredName"],"properties":{"preferredName":{"minItems":1,"type":"array","items":{"allOf":[{"required":["language","text"],"type":"object","properties":{"language":{"pattern":"^(([a-zA-Z]{2,3}(-[a-zA-Z]{3}(-[a-zA-Z]{3}){2})?|[a-zA-Z]{4}|[a-zA-Z]{5,8})(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-(([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3}))*(-[0-9A-WY-Za-wy-z](-([a-zA-Z0-9]){2,8})+)*(-[xX](-([a-zA-Z0-9]){1,8})+)?|[xX](-([a-zA-Z0-9]){1,8})+|((en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang)))$","type":"string"},"text":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}},{"properties":{"text":{"maxLength":255}}}]}},"shortName":{"minItems":1,"type":"array","items":{"allOf":[{"required":["language","text"],"type":"object","properties":{"language":{"pattern":"^(([a-zA-Z]{2,3}(-[a-zA-Z]{3}(-[a-zA-Z]{3}){2})?|[a-zA-Z]{4}|[a-zA-Z]{5,8})(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-(([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3}))*(-[0-9A-WY-Za-wy-z](-([a-zA-Z0-9]){2,8})+)*(-[xX](-([a-zA-Z0-9]){1,8})+)?|[xX](-([a-zA-Z0-9]){1,8})+|((en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang)))$","type":"string"},"text":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}},{"properties":{"text":{"maxLength":18}}}]}},"unit":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"unitId":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]},"sourceOfDefinition":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"symbol":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"dataType":{"type":"string","enum":["BLOB","BOOLEAN","DATE","FILE","HTML","INTEGER_COUNT","INTEGER_CURRENCY","INTEGER_MEASURE","IRDI","IRI","RATIONAL","RATIONAL_MEASURE","REAL_COUNT","REAL_CURRENCY","REAL_MEASURE","STRING","STRING_TRANSLATABLE","TIME","TIMESTAMP"]},"definition":{"minItems":1,"type":"array","items":{"allOf":[{"required":["language","text"],"type":"object","properties":{"language":{"pattern":"^(([a-zA-Z]{2,3}(-[a-zA-Z]{3}(-[a-zA-Z]{3}){2})?|[a-zA-Z]{4}|[a-zA-Z]{5,8})(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-(([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3}))*(-[0-9A-WY-Za-wy-z](-([a-zA-Z0-9]){2,8})+)*(-[xX](-([a-zA-Z0-9]){1,8})+)?|[xX](-([a-zA-Z0-9]){1,8})+|((en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang)))$","type":"string"},"text":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}},{"properties":{"text":{"maxLength":1023}}}]}},"valueFormat":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"valueList":{"required":["valueReferencePairs"],"type":"object","properties":{"valueReferencePairs":{"minItems":1,"type":"array","items":{"required":["value","valueId"],"type":"object","properties":{"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"valueId":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]}}}}}},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"levelType":{"required":["max","min","nom","typ"],"type":"object","properties":{"min":{"type":"boolean"},"nom":{"type":"boolean"},"typ":{"type":"boolean"},"max":{"type":"boolean"}}},"modelType":{"pattern":"DataSpecificationIec61360","type":"string"}}}]}]}}}}}},{"properties":{"version":{"type":"string","allOf":[{"maxLength":4,"minLength":1},{"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$"},{"pattern":"^(0|[1-9][0-9]*)$"}]},"revision":{"type":"string","allOf":[{"maxLength":4,"minLength":1},{"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$"},{"pattern":"^(0|[1-9][0-9]*)$"}]},"creator":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]},"templateId":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}]},"assetKind":{"type":"string","enum":["Instance","NotApplicable","Type"]},"assetType":{"maxLength":2000,"minLength":1,"pattern":"^[\\x09\\x0A\\x0D\\x20-\\uD7FF\\uE000-\\uFFFD\\U00010000-\\U0010FFFF]*$","type":"string"},"endpoints":{"minItems":1,"type":"array","items":{"required":["interface","protocolInformation"],"type":"object","properties":{"interface":{"maxLength":128,"type":"string"},"protocolInformation":{"required":["href"],"type":"object","properties":{"href":{"maxLength":2048,"type":"string"},"endpointProtocol":{"maxLength":128,"type":"string"},"endpointProtocolVersion":{"type":"array","items":{"maxLength":128,"type":"string"}},"subprotocol":{"maxLength":128,"type":"string"},"subprotocolBody":{"maxLength":128,"type":"string"},"subprotocolBodyEncoding":{"maxLength":128,"type":"string"},"securityAttributes":{"minItems":1,"type":"array","items":{"required":["key","type","value"],"type":"object","properties":{"type":{"type":"string","enum":["NONE","RFC_TLSA","W3C_DID"]},"key":{"type":"string"},"value":{"type":"string"}}}}}}}}},"globalAssetId":{"maxLength":2000,"minLength":1,"pattern":"^[\\x09\\x0A\\x0D\\x20-\\uD7FF\\uE000-\\uFFFD\\U00010000-\\U0010FFFF]*$","type":"string"},"idShort":{"maxLength":128,"type":"string"},"id":{"maxLength":2000,"minLength":1,"pattern":"^[\\x09\\x0A\\x0D\\x20-\\uD7FF\\uE000-\\uFFFD\\U00010000-\\U0010FFFF]*$","type":"string"},"specificAssetIds":{"type":"array","items":{"allOf":[{"type":"object","properties":{"semanticId":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]},"supplementalSemanticIds":{"minItems":1,"type":"array","items":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]}}}},{"required":["name","value"],"properties":{"name":{"maxLength":64,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"externalSubjectId":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]}}}]}},"submodelDescriptors":{"type":"array","items":{"required":["endpoints","id"],"type":"object","properties":{"administration":{"allOf":[{"type":"object","properties":{"embeddedDataSpecifications":{"minItems":1,"type":"array","items":{"required":["dataSpecification","dataSpecificationContent"],"type":"object","properties":{"dataSpecification":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]},"dataSpecificationContent":{"oneOf":[{"allOf":[{"required":["modelType"],"type":"object","properties":{"modelType":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataSpecificationIec61360","Entity","File","MultiLanguageProperty","Operation","Property","Range","ReferenceElement","RelationshipElement","Submodel","SubmodelElementCollection","SubmodelElementList"]}}},{"required":["preferredName"],"properties":{"preferredName":{"minItems":1,"type":"array","items":{"allOf":[{"required":["language","text"],"type":"object","properties":{"language":{"pattern":"^(([a-zA-Z]{2,3}(-[a-zA-Z]{3}(-[a-zA-Z]{3}){2})?|[a-zA-Z]{4}|[a-zA-Z]{5,8})(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-(([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3}))*(-[0-9A-WY-Za-wy-z](-([a-zA-Z0-9]){2,8})+)*(-[xX](-([a-zA-Z0-9]){1,8})+)?|[xX](-([a-zA-Z0-9]){1,8})+|((en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang)))$","type":"string"},"text":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}},{"properties":{"text":{"maxLength":255}}}]}},"shortName":{"minItems":1,"type":"array","items":{"allOf":[{"required":["language","text"],"type":"object","properties":{"language":{"pattern":"^(([a-zA-Z]{2,3}(-[a-zA-Z]{3}(-[a-zA-Z]{3}){2})?|[a-zA-Z]{4}|[a-zA-Z]{5,8})(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-(([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3}))*(-[0-9A-WY-Za-wy-z](-([a-zA-Z0-9]){2,8})+)*(-[xX](-([a-zA-Z0-9]){1,8})+)?|[xX](-([a-zA-Z0-9]){1,8})+|((en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang)))$","type":"string"},"text":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}},{"properties":{"text":{"maxLength":18}}}]}},"unit":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"unitId":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]},"sourceOfDefinition":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"symbol":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"dataType":{"type":"string","enum":["BLOB","BOOLEAN","DATE","FILE","HTML","INTEGER_COUNT","INTEGER_CURRENCY","INTEGER_MEASURE","IRDI","IRI","RATIONAL","RATIONAL_MEASURE","REAL_COUNT","REAL_CURRENCY","REAL_MEASURE","STRING","STRING_TRANSLATABLE","TIME","TIMESTAMP"]},"definition":{"minItems":1,"type":"array","items":{"allOf":[{"required":["language","text"],"type":"object","properties":{"language":{"pattern":"^(([a-zA-Z]{2,3}(-[a-zA-Z]{3}(-[a-zA-Z]{3}){2})?|[a-zA-Z]{4}|[a-zA-Z]{5,8})(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-(([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3}))*(-[0-9A-WY-Za-wy-z](-([a-zA-Z0-9]){2,8})+)*(-[xX](-([a-zA-Z0-9]){1,8})+)?|[xX](-([a-zA-Z0-9]){1,8})+|((en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang)))$","type":"string"},"text":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}},{"properties":{"text":{"maxLength":1023}}}]}},"valueFormat":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"valueList":{"required":["valueReferencePairs"],"type":"object","properties":{"valueReferencePairs":{"minItems":1,"type":"array","items":{"required":["value","valueId"],"type":"object","properties":{"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"valueId":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]}}}}}},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"levelType":{"required":["max","min","nom","typ"],"type":"object","properties":{"min":{"type":"boolean"},"nom":{"type":"boolean"},"typ":{"type":"boolean"},"max":{"type":"boolean"}}},"modelType":{"pattern":"DataSpecificationIec61360","type":"string"}}}]}]}}}}}},{"properties":{"version":{"type":"string","allOf":[{"maxLength":4,"minLength":1},{"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$"},{"pattern":"^(0|[1-9][0-9]*)$"}]},"revision":{"type":"string","allOf":[{"maxLength":4,"minLength":1},{"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$"},{"pattern":"^(0|[1-9][0-9]*)$"}]},"creator":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]},"templateId":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}]},"endpoints":{"minItems":1,"type":"array","items":{"required":["interface","protocolInformation"],"type":"object","properties":{"interface":{"maxLength":128,"type":"string"},"protocolInformation":{"required":["href"],"type":"object","properties":{"href":{"maxLength":2048,"type":"string"},"endpointProtocol":{"maxLength":128,"type":"string"},"endpointProtocolVersion":{"type":"array","items":{"maxLength":128,"type":"string"}},"subprotocol":{"maxLength":128,"type":"string"},"subprotocolBody":{"maxLength":128,"type":"string"},"subprotocolBodyEncoding":{"maxLength":128,"type":"string"},"securityAttributes":{"minItems":1,"type":"array","items":{"required":["key","type","value"],"type":"object","properties":{"type":{"type":"string","enum":["NONE","RFC_TLSA","W3C_DID"]},"key":{"type":"string"},"value":{"type":"string"}}}}}}}}},"idShort":{"maxLength":128,"type":"string"},"id":{"maxLength":2000,"minLength":1,"pattern":"^[\\x09\\x0A\\x0D\\x20-\\uD7FF\\uE000-\\uFFFD\\U00010000-\\U0010FFFF]*$","type":"string"},"semanticId":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]},"supplementalSemanticId":{"minItems":1,"type":"array","items":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]}}},"example":"{ \"id\": \"https://admin-shell.io/zvei/nameplate/1/0/Nameplate\", \"endpoints\": [ { \"protocolInformation\": { \"endpointAddress\": \"https://localhost:1234\", \"endpointProtocolVersion\": \"1.1\" }, \"interface\": \"AAS-1.0\" }, { \"protocolInformation\": { \"endpointAddress\": \"opc.tcp://localhost:4840\" }, \"interface\": \"AAS-1.0\" }, { \"protocolInformation\": { \"endpointAddress\": \"https://localhost:5678\", \"endpointProtocolVersion\": \"1.1\", \"subprotocol\": \"OPC UA Basic SOAP\", \"subprotocolBody\": \"ns=2;s=MyAAS\", \"subprotocolBodyEncoding\": \"application/soap+xml\" }, \"interface\": \"AAS-1.0\" } ] }","allOf":[{"type":"object","properties":{"description":{"type":"array","items":{"allOf":[{"required":["language","text"],"type":"object","properties":{"language":{"pattern":"^(([a-zA-Z]{2,3}(-[a-zA-Z]{3}(-[a-zA-Z]{3}){2})?|[a-zA-Z]{4}|[a-zA-Z]{5,8})(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-(([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3}))*(-[0-9A-WY-Za-wy-z](-([a-zA-Z0-9]){2,8})+)*(-[xX](-([a-zA-Z0-9]){1,8})+)?|[xX](-([a-zA-Z0-9]){1,8})+|((en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang)))$","type":"string"},"text":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}},{"properties":{"text":{"maxLength":1023}}}]}},"displayName":{"type":"array","items":{"allOf":[{"required":["language","text"],"type":"object","properties":{"language":{"pattern":"^(([a-zA-Z]{2,3}(-[a-zA-Z]{3}(-[a-zA-Z]{3}){2})?|[a-zA-Z]{4}|[a-zA-Z]{5,8})(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-(([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3}))*(-[0-9A-WY-Za-wy-z](-([a-zA-Z0-9]){2,8})+)*(-[xX](-([a-zA-Z0-9]){1,8})+)?|[xX](-([a-zA-Z0-9]){1,8})+|((en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang)))$","type":"string"},"text":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}},{"properties":{"text":{"maxLength":128}}}]}},"extensions":{"minItems":1,"type":"array","items":{"allOf":[{"type":"object","properties":{"semanticId":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]},"supplementalSemanticIds":{"minItems":1,"type":"array","items":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]}}}},{"required":["name"],"properties":{"name":{"maxLength":128,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"valueType":{"type":"string","enum":["xs:anyURI","xs:base64Binary","xs:boolean","xs:byte","xs:date","xs:dateTime","xs:decimal","xs:double","xs:duration","xs:float","xs:gDay","xs:gMonth","xs:gMonthDay","xs:gYear","xs:gYearMonth","xs:hexBinary","xs:int","xs:integer","xs:long","xs:negativeInteger","xs:nonNegativeInteger","xs:nonPositiveInteger","xs:positiveInteger","xs:short","xs:string","xs:time","xs:unsignedByte","xs:unsignedInt","xs:unsignedLong","xs:unsignedShort"]},"value":{"type":"string"},"refersTo":{"minItems":1,"type":"array","items":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]}}}}]}}},"example":"{ \"endpoints\": [ { \"protocolInformation\": { \"endpointAddress\": \"https://localhost:1234\", \"endpointProtocolVersion\": \"1.1\" }, \"interface\": \"AAS-1.0\" }, { \"protocolInformation\": { \"endpointAddress\": \"opc.tcp://localhost:4840\" }, \"interface\": \"AAS-1.0\" }, { \"protocolInformation\": { \"endpointAddress\": \"https://localhost:5678\", \"endpointProtocolVersion\": \"1.1\", \"subprotocol\": \"OPC UA Basic SOAP\", \"subprotocolBody\": \"ns=2;s=MyAAS\", \"subprotocolBodyEncoding\": \"application/soap+xml\" }, \"interface\": \"AAS-1.0\" } ] }"}]}}}}]}}}}]}}}},"400":{"description":"Bad Request, e.g. the request parameters of the format of the request body is wrong.","content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array","items":{"type":"object","properties":{"code":{"maxLength":32,"minLength":1,"type":"string"},"correlationId":{"maxLength":128,"minLength":1,"type":"string"},"messageType":{"type":"string","enum":["Undefined","Info","Warning","Error","Exception"]},"text":{"type":"string"},"timestamp":{"pattern":"^-?(([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]))-((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|\\+00:00|-00:00)$","type":"string"}}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array","items":{"type":"object","properties":{"code":{"maxLength":32,"minLength":1,"type":"string"},"correlationId":{"maxLength":128,"minLength":1,"type":"string"},"messageType":{"type":"string","enum":["Undefined","Info","Warning","Error","Exception"]},"text":{"type":"string"},"timestamp":{"pattern":"^-?(([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]))-((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|\\+00:00|-00:00)$","type":"string"}}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array","items":{"type":"object","properties":{"code":{"maxLength":32,"minLength":1,"type":"string"},"correlationId":{"maxLength":128,"minLength":1,"type":"string"},"messageType":{"type":"string","enum":["Undefined","Info","Warning","Error","Exception"]},"text":{"type":"string"},"timestamp":{"pattern":"^-?(([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]))-((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|\\+00:00|-00:00)$","type":"string"}}}}}}}}},"default":{"description":"Default error handling for unmentioned status codes","content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array","items":{"type":"object","properties":{"code":{"maxLength":32,"minLength":1,"type":"string"},"correlationId":{"maxLength":128,"minLength":1,"type":"string"},"messageType":{"type":"string","enum":["Undefined","Info","Warning","Error","Exception"]},"text":{"type":"string"},"timestamp":{"pattern":"^-?(([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]))-((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|\\+00:00|-00:00)$","type":"string"}}}}}}}}}},"x-semanticIds":["https://admin-shell.io/aas/API/GetAllAssetAdministrationShellDescriptors/3/0","https://admin-shell.io/aas/API/GetAllAssetAdministrationShellDescriptorsByAssetKind/3/0","https://admin-shell.io/aas/API/GetAllAssetAdministrationShellDescriptorsByAssetType/3/0"],"description":"Returns all Asset Administration Shell Descriptors","method":"get","path":"/shell-descriptors","servers":[{"url":"{protocol}://{host_name}:{port}/api/{version_prefix}","variables":{"protocol":{"description":"Allows access through http and https (recommended)","default":"https","enum":["http","https"]},"host_name":{"description":"Hostname of server hosting the api","default":"admin-shell.io"},"port":{"description":"80 is default for http, 443 for https","default":"443","enum":["80","443"]},"version_prefix":{"default":"v3.0","enum":["v3.0"]}}}],"info":{"title":"DotAAS Part 2 | HTTP/REST | Registry Service Specification","description":"The Read Profile of the Asset Administration Shell Registry Service Specification as part of the Specification of the Asset Administration Shell: Part 2. Publisher: Industrial Digital Twin Association (IDTA) April 2023","contact":{"name":"Industrial Digital Twin Association (IDTA)","email":"info@idtwin.org"},"license":{"name":"CC BY 4.0","url":"https://creativecommons.org/licenses/by/4.0/"},"version":"V3.0_SSP-002"},"postman":{"name":"Returns all Asset Administration Shell Descriptors","description":{"type":"text/plain"},"url":{"path":["shell-descriptors"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"description":{"content":"The maximum number of elements in the response array","type":"text/plain"},"key":"limit","value":""},{"disabled":false,"description":{"content":"A server-generated identifier retrieved from pagingMetadata that specifies from which position the result listing should continue","type":"text/plain"},"key":"cursor","value":""},{"disabled":false,"description":{"content":"The Asset's kind (Instance or Type)","type":"text/plain"},"key":"assetKind","value":""},{"disabled":false,"description":{"content":"The Asset's type (UTF8-BASE64-URL-encoded)","type":"text/plain"},"key":"assetType","value":""}],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/_versioned_docs/version-3.1.0/kits/Digital Twin Kit/Software Development View/API Specs/AAS Registry//dotaas-part-2-http-rest-registry-service-specification +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Returns all Asset Administration Shell Descriptors + + + +Returns all Asset Administration Shell Descriptors + +
Query Parameters
+ +Requested Asset Administration Shell Descriptors + +
Schema
    paging_metadata object
    result object[]
    description object[]
    displayName object[]
    extensions object[]
    + +**Possible values:** `>= 1` + +
    semanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    supplementalSemanticIds undefined[]
    + +**Possible values:** `>= 1` + +
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    refersTo undefined[]
    + +**Possible values:** `>= 1` + +
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    administration object
    embeddedDataSpecifications object[]
    + +**Possible values:** `>= 1` + +
    dataSpecification
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    dataSpecificationContent object
    oneOf
    preferredName object[]
    + +**Possible values:** `>= 1` + +
    shortName object[]
    + +**Possible values:** `>= 1` + +
    unitId
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    definition object[]
    + +**Possible values:** `>= 1` + +
    valueList object
    valueReferencePairs object[]
    + +**Possible values:** `>= 1` + +
    valueId
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    levelType object
    creator
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    endpoints object[]
    + +**Possible values:** `>= 1` + +
    protocolInformation object
    securityAttributes object[]
    + +**Possible values:** `>= 1` + +
    specificAssetIds object[]
    semanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    supplementalSemanticIds undefined[]
    + +**Possible values:** `>= 1` + +
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    externalSubjectId
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    submodelDescriptors object[]
    administration object
    embeddedDataSpecifications object[]
    + +**Possible values:** `>= 1` + +
    dataSpecification
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    dataSpecificationContent object
    oneOf
    preferredName object[]
    + +**Possible values:** `>= 1` + +
    shortName object[]
    + +**Possible values:** `>= 1` + +
    unitId
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    definition object[]
    + +**Possible values:** `>= 1` + +
    valueList object
    valueReferencePairs object[]
    + +**Possible values:** `>= 1` + +
    valueId
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    levelType object
    creator
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    endpoints object[]
    + +**Possible values:** `>= 1` + +
    protocolInformation object
    securityAttributes object[]
    + +**Possible values:** `>= 1` + +
    semanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    supplementalSemanticId undefined[]
    + +**Possible values:** `>= 1` + +
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    description object[]
    displayName object[]
    extensions object[]
    + +**Possible values:** `>= 1` + +
    semanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    supplementalSemanticIds undefined[]
    + +**Possible values:** `>= 1` + +
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    refersTo undefined[]
    + +**Possible values:** `>= 1` + +
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
+ +Bad Request, e.g. the request parameters of the format of the request body is wrong. + +
Schema
    messages object[]
+ +Forbidden + +
Schema
    messages object[]
+ +Internal Server Error + +
Schema
    messages object[]
+ +Default error handling for unmentioned status codes + +
Schema
    messages object[]
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API AAS Registry/get-all-submodel-descriptors-through-superpath.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API AAS Registry/get-all-submodel-descriptors-through-superpath.api.mdx new file mode 100644 index 00000000000..bc3b042b01a --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API AAS Registry/get-all-submodel-descriptors-through-superpath.api.mdx @@ -0,0 +1,170 @@ +--- +id: get-all-submodel-descriptors-through-superpath +title: "Returns all Submodel Descriptors" +description: "Returns all Submodel Descriptors" +sidebar_label: "Returns all Submodel Descriptors" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Asset Administration Shell Registry API"],"operationId":"GetAllSubmodelDescriptorsThroughSuperpath","parameters":[{"name":"aasIdentifier","in":"path","description":"The Asset Administration Shell’s unique id (UTF8-BASE64-URL-encoded)","required":true,"style":"simple","explode":false,"schema":{"type":"string","format":"byte"}},{"name":"limit","in":"query","description":"The maximum number of elements in the response array","required":false,"schema":{"minimum":1,"type":"integer"}},{"name":"cursor","in":"query","description":"A server-generated identifier retrieved from pagingMetadata that specifies from which position the result listing should continue","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Requested Submodel Descriptors","content":{"application/json":{"schema":{"allOf":[{"type":"object","properties":{"paging_metadata":{"type":"object","properties":{"cursor":{"type":"string","example":"wJlCDLIl6KTWypN7T6vc6nWEmEYe99Hjf1XY1xmqV-M=#"}}}}},{"type":"object","properties":{"result":{"type":"array","items":{"required":["endpoints","id"],"type":"object","properties":{"administration":{"allOf":[{"type":"object","properties":{"embeddedDataSpecifications":{"minItems":1,"type":"array","items":{"required":["dataSpecification","dataSpecificationContent"],"type":"object","properties":{"dataSpecification":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]},"dataSpecificationContent":{"oneOf":[{"allOf":[{"required":["modelType"],"type":"object","properties":{"modelType":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataSpecificationIec61360","Entity","File","MultiLanguageProperty","Operation","Property","Range","ReferenceElement","RelationshipElement","Submodel","SubmodelElementCollection","SubmodelElementList"]}}},{"required":["preferredName"],"properties":{"preferredName":{"minItems":1,"type":"array","items":{"allOf":[{"required":["language","text"],"type":"object","properties":{"language":{"pattern":"^(([a-zA-Z]{2,3}(-[a-zA-Z]{3}(-[a-zA-Z]{3}){2})?|[a-zA-Z]{4}|[a-zA-Z]{5,8})(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-(([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3}))*(-[0-9A-WY-Za-wy-z](-([a-zA-Z0-9]){2,8})+)*(-[xX](-([a-zA-Z0-9]){1,8})+)?|[xX](-([a-zA-Z0-9]){1,8})+|((en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang)))$","type":"string"},"text":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}},{"properties":{"text":{"maxLength":255}}}]}},"shortName":{"minItems":1,"type":"array","items":{"allOf":[{"required":["language","text"],"type":"object","properties":{"language":{"pattern":"^(([a-zA-Z]{2,3}(-[a-zA-Z]{3}(-[a-zA-Z]{3}){2})?|[a-zA-Z]{4}|[a-zA-Z]{5,8})(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-(([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3}))*(-[0-9A-WY-Za-wy-z](-([a-zA-Z0-9]){2,8})+)*(-[xX](-([a-zA-Z0-9]){1,8})+)?|[xX](-([a-zA-Z0-9]){1,8})+|((en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang)))$","type":"string"},"text":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}},{"properties":{"text":{"maxLength":18}}}]}},"unit":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"unitId":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]},"sourceOfDefinition":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"symbol":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"dataType":{"type":"string","enum":["BLOB","BOOLEAN","DATE","FILE","HTML","INTEGER_COUNT","INTEGER_CURRENCY","INTEGER_MEASURE","IRDI","IRI","RATIONAL","RATIONAL_MEASURE","REAL_COUNT","REAL_CURRENCY","REAL_MEASURE","STRING","STRING_TRANSLATABLE","TIME","TIMESTAMP"]},"definition":{"minItems":1,"type":"array","items":{"allOf":[{"required":["language","text"],"type":"object","properties":{"language":{"pattern":"^(([a-zA-Z]{2,3}(-[a-zA-Z]{3}(-[a-zA-Z]{3}){2})?|[a-zA-Z]{4}|[a-zA-Z]{5,8})(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-(([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3}))*(-[0-9A-WY-Za-wy-z](-([a-zA-Z0-9]){2,8})+)*(-[xX](-([a-zA-Z0-9]){1,8})+)?|[xX](-([a-zA-Z0-9]){1,8})+|((en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang)))$","type":"string"},"text":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}},{"properties":{"text":{"maxLength":1023}}}]}},"valueFormat":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"valueList":{"required":["valueReferencePairs"],"type":"object","properties":{"valueReferencePairs":{"minItems":1,"type":"array","items":{"required":["value","valueId"],"type":"object","properties":{"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"valueId":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]}}}}}},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"levelType":{"required":["max","min","nom","typ"],"type":"object","properties":{"min":{"type":"boolean"},"nom":{"type":"boolean"},"typ":{"type":"boolean"},"max":{"type":"boolean"}}},"modelType":{"pattern":"DataSpecificationIec61360","type":"string"}}}]}]}}}}}},{"properties":{"version":{"type":"string","allOf":[{"maxLength":4,"minLength":1},{"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$"},{"pattern":"^(0|[1-9][0-9]*)$"}]},"revision":{"type":"string","allOf":[{"maxLength":4,"minLength":1},{"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$"},{"pattern":"^(0|[1-9][0-9]*)$"}]},"creator":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]},"templateId":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}]},"endpoints":{"minItems":1,"type":"array","items":{"required":["interface","protocolInformation"],"type":"object","properties":{"interface":{"maxLength":128,"type":"string"},"protocolInformation":{"required":["href"],"type":"object","properties":{"href":{"maxLength":2048,"type":"string"},"endpointProtocol":{"maxLength":128,"type":"string"},"endpointProtocolVersion":{"type":"array","items":{"maxLength":128,"type":"string"}},"subprotocol":{"maxLength":128,"type":"string"},"subprotocolBody":{"maxLength":128,"type":"string"},"subprotocolBodyEncoding":{"maxLength":128,"type":"string"},"securityAttributes":{"minItems":1,"type":"array","items":{"required":["key","type","value"],"type":"object","properties":{"type":{"type":"string","enum":["NONE","RFC_TLSA","W3C_DID"]},"key":{"type":"string"},"value":{"type":"string"}}}}}}}}},"idShort":{"maxLength":128,"type":"string"},"id":{"maxLength":2000,"minLength":1,"pattern":"^[\\x09\\x0A\\x0D\\x20-\\uD7FF\\uE000-\\uFFFD\\U00010000-\\U0010FFFF]*$","type":"string"},"semanticId":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]},"supplementalSemanticId":{"minItems":1,"type":"array","items":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]}}},"example":"{ \"id\": \"https://admin-shell.io/zvei/nameplate/1/0/Nameplate\", \"endpoints\": [ { \"protocolInformation\": { \"endpointAddress\": \"https://localhost:1234\", \"endpointProtocolVersion\": \"1.1\" }, \"interface\": \"AAS-1.0\" }, { \"protocolInformation\": { \"endpointAddress\": \"opc.tcp://localhost:4840\" }, \"interface\": \"AAS-1.0\" }, { \"protocolInformation\": { \"endpointAddress\": \"https://localhost:5678\", \"endpointProtocolVersion\": \"1.1\", \"subprotocol\": \"OPC UA Basic SOAP\", \"subprotocolBody\": \"ns=2;s=MyAAS\", \"subprotocolBodyEncoding\": \"application/soap+xml\" }, \"interface\": \"AAS-1.0\" } ] }","allOf":[{"type":"object","properties":{"description":{"type":"array","items":{"allOf":[{"required":["language","text"],"type":"object","properties":{"language":{"pattern":"^(([a-zA-Z]{2,3}(-[a-zA-Z]{3}(-[a-zA-Z]{3}){2})?|[a-zA-Z]{4}|[a-zA-Z]{5,8})(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-(([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3}))*(-[0-9A-WY-Za-wy-z](-([a-zA-Z0-9]){2,8})+)*(-[xX](-([a-zA-Z0-9]){1,8})+)?|[xX](-([a-zA-Z0-9]){1,8})+|((en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang)))$","type":"string"},"text":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}},{"properties":{"text":{"maxLength":1023}}}]}},"displayName":{"type":"array","items":{"allOf":[{"required":["language","text"],"type":"object","properties":{"language":{"pattern":"^(([a-zA-Z]{2,3}(-[a-zA-Z]{3}(-[a-zA-Z]{3}){2})?|[a-zA-Z]{4}|[a-zA-Z]{5,8})(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-(([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3}))*(-[0-9A-WY-Za-wy-z](-([a-zA-Z0-9]){2,8})+)*(-[xX](-([a-zA-Z0-9]){1,8})+)?|[xX](-([a-zA-Z0-9]){1,8})+|((en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang)))$","type":"string"},"text":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}},{"properties":{"text":{"maxLength":128}}}]}},"extensions":{"minItems":1,"type":"array","items":{"allOf":[{"type":"object","properties":{"semanticId":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]},"supplementalSemanticIds":{"minItems":1,"type":"array","items":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]}}}},{"required":["name"],"properties":{"name":{"maxLength":128,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"valueType":{"type":"string","enum":["xs:anyURI","xs:base64Binary","xs:boolean","xs:byte","xs:date","xs:dateTime","xs:decimal","xs:double","xs:duration","xs:float","xs:gDay","xs:gMonth","xs:gMonthDay","xs:gYear","xs:gYearMonth","xs:hexBinary","xs:int","xs:integer","xs:long","xs:negativeInteger","xs:nonNegativeInteger","xs:nonPositiveInteger","xs:positiveInteger","xs:short","xs:string","xs:time","xs:unsignedByte","xs:unsignedInt","xs:unsignedLong","xs:unsignedShort"]},"value":{"type":"string"},"refersTo":{"minItems":1,"type":"array","items":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]}}}}]}}},"example":"{ \"endpoints\": [ { \"protocolInformation\": { \"endpointAddress\": \"https://localhost:1234\", \"endpointProtocolVersion\": \"1.1\" }, \"interface\": \"AAS-1.0\" }, { \"protocolInformation\": { \"endpointAddress\": \"opc.tcp://localhost:4840\" }, \"interface\": \"AAS-1.0\" }, { \"protocolInformation\": { \"endpointAddress\": \"https://localhost:5678\", \"endpointProtocolVersion\": \"1.1\", \"subprotocol\": \"OPC UA Basic SOAP\", \"subprotocolBody\": \"ns=2;s=MyAAS\", \"subprotocolBodyEncoding\": \"application/soap+xml\" }, \"interface\": \"AAS-1.0\" } ] }"}]}}}}]}}}},"400":{"description":"Bad Request, e.g. the request parameters of the format of the request body is wrong.","content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array","items":{"type":"object","properties":{"code":{"maxLength":32,"minLength":1,"type":"string"},"correlationId":{"maxLength":128,"minLength":1,"type":"string"},"messageType":{"type":"string","enum":["Undefined","Info","Warning","Error","Exception"]},"text":{"type":"string"},"timestamp":{"pattern":"^-?(([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]))-((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|\\+00:00|-00:00)$","type":"string"}}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array","items":{"type":"object","properties":{"code":{"maxLength":32,"minLength":1,"type":"string"},"correlationId":{"maxLength":128,"minLength":1,"type":"string"},"messageType":{"type":"string","enum":["Undefined","Info","Warning","Error","Exception"]},"text":{"type":"string"},"timestamp":{"pattern":"^-?(([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]))-((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|\\+00:00|-00:00)$","type":"string"}}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array","items":{"type":"object","properties":{"code":{"maxLength":32,"minLength":1,"type":"string"},"correlationId":{"maxLength":128,"minLength":1,"type":"string"},"messageType":{"type":"string","enum":["Undefined","Info","Warning","Error","Exception"]},"text":{"type":"string"},"timestamp":{"pattern":"^-?(([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]))-((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|\\+00:00|-00:00)$","type":"string"}}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array","items":{"type":"object","properties":{"code":{"maxLength":32,"minLength":1,"type":"string"},"correlationId":{"maxLength":128,"minLength":1,"type":"string"},"messageType":{"type":"string","enum":["Undefined","Info","Warning","Error","Exception"]},"text":{"type":"string"},"timestamp":{"pattern":"^-?(([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]))-((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|\\+00:00|-00:00)$","type":"string"}}}}}}}}},"default":{"description":"Default error handling for unmentioned status codes","content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array","items":{"type":"object","properties":{"code":{"maxLength":32,"minLength":1,"type":"string"},"correlationId":{"maxLength":128,"minLength":1,"type":"string"},"messageType":{"type":"string","enum":["Undefined","Info","Warning","Error","Exception"]},"text":{"type":"string"},"timestamp":{"pattern":"^-?(([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]))-((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|\\+00:00|-00:00)$","type":"string"}}}}}}}}}},"x-semanticIds":["https://admin-shell.io/aas/API/GetAllSubmodelDescriptors/3/0"],"description":"Returns all Submodel Descriptors","method":"get","path":"/shell-descriptors/{aasIdentifier}/submodel-descriptors","servers":[{"url":"{protocol}://{host_name}:{port}/api/{version_prefix}","variables":{"protocol":{"description":"Allows access through http and https (recommended)","default":"https","enum":["http","https"]},"host_name":{"description":"Hostname of server hosting the api","default":"admin-shell.io"},"port":{"description":"80 is default for http, 443 for https","default":"443","enum":["80","443"]},"version_prefix":{"default":"v3.0","enum":["v3.0"]}}}],"info":{"title":"DotAAS Part 2 | HTTP/REST | Registry Service Specification","description":"The Read Profile of the Asset Administration Shell Registry Service Specification as part of the Specification of the Asset Administration Shell: Part 2. Publisher: Industrial Digital Twin Association (IDTA) April 2023","contact":{"name":"Industrial Digital Twin Association (IDTA)","email":"info@idtwin.org"},"license":{"name":"CC BY 4.0","url":"https://creativecommons.org/licenses/by/4.0/"},"version":"V3.0_SSP-002"},"postman":{"name":"Returns all Submodel Descriptors","description":{"type":"text/plain"},"url":{"path":["shell-descriptors",":aasIdentifier","submodel-descriptors"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"description":{"content":"The maximum number of elements in the response array","type":"text/plain"},"key":"limit","value":""},{"disabled":false,"description":{"content":"A server-generated identifier retrieved from pagingMetadata that specifies from which position the result listing should continue","type":"text/plain"},"key":"cursor","value":""}],"variable":[{"disabled":false,"description":{"content":"(Required) The Asset Administration Shell’s unique id (UTF8-BASE64-URL-encoded)","type":"text/plain"},"type":"any","value":"","key":"aasIdentifier"}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/_versioned_docs/version-3.1.0/kits/Digital Twin Kit/Software Development View/API Specs/AAS Registry//dotaas-part-2-http-rest-registry-service-specification +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Returns all Submodel Descriptors + + + +Returns all Submodel Descriptors + +
Path Parameters
Query Parameters
+ +Requested Submodel Descriptors + +
Schema
    paging_metadata object
    result object[]
    administration object
    embeddedDataSpecifications object[]
    + +**Possible values:** `>= 1` + +
    dataSpecification
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    dataSpecificationContent object
    oneOf
    preferredName object[]
    + +**Possible values:** `>= 1` + +
    shortName object[]
    + +**Possible values:** `>= 1` + +
    unitId
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    definition object[]
    + +**Possible values:** `>= 1` + +
    valueList object
    valueReferencePairs object[]
    + +**Possible values:** `>= 1` + +
    valueId
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    levelType object
    creator
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    endpoints object[]
    + +**Possible values:** `>= 1` + +
    protocolInformation object
    securityAttributes object[]
    + +**Possible values:** `>= 1` + +
    semanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    supplementalSemanticId undefined[]
    + +**Possible values:** `>= 1` + +
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    description object[]
    displayName object[]
    extensions object[]
    + +**Possible values:** `>= 1` + +
    semanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    supplementalSemanticIds undefined[]
    + +**Possible values:** `>= 1` + +
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    refersTo undefined[]
    + +**Possible values:** `>= 1` + +
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
+ +Bad Request, e.g. the request parameters of the format of the request body is wrong. + +
Schema
    messages object[]
+ +Forbidden + +
Schema
    messages object[]
+ +Not Found + +
Schema
    messages object[]
+ +Internal Server Error + +
Schema
    messages object[]
+ +Default error handling for unmentioned status codes + +
Schema
    messages object[]
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API AAS Registry/get-asset-administration-shell-descriptor-by-id.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API AAS Registry/get-asset-administration-shell-descriptor-by-id.api.mdx new file mode 100644 index 00000000000..c6b4f1342c4 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API AAS Registry/get-asset-administration-shell-descriptor-by-id.api.mdx @@ -0,0 +1,294 @@ +--- +id: get-asset-administration-shell-descriptor-by-id +title: "Returns a specific Asset Administration Shell Descriptor" +description: "Returns a specific Asset Administration Shell Descriptor" +sidebar_label: "Returns a specific Asset Administration Shell Descriptor" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Asset Administration Shell Registry API"],"operationId":"GetAssetAdministrationShellDescriptorById","parameters":[{"name":"aasIdentifier","in":"path","description":"The Asset Administration Shell’s unique id (UTF8-BASE64-URL-encoded)","required":true,"style":"simple","explode":false,"schema":{"type":"string","format":"byte"}}],"responses":{"200":{"description":"Requested Asset Administration Shell Descriptor","content":{"application/json":{"schema":{"required":["id"],"type":"object","example":"{ \"id\": \"https://example.org/aas/motor\", \"endpoints\": [ { \"protocolInformation\": { \"endpointAddress\": \"https://localhost:1234\", \"endpointProtocolVersion\": \"1.1\" }, \"interface\": \"AAS-1.0\" }, { \"protocolInformation\": { \"endpointAddress\": \"opc.tcp://localhost:4840\" }, \"interface\": \"AAS-1.0\" }, { \"protocolInformation\": { \"endpointAddress\": \"https://localhost:5678\", \"endpointProtocolVersion\": \"1.1\", \"subprotocol\": \"OPC UA Basic SOAP\", \"subprotocolBody\": \"ns=2;s=MyAAS\", \"subprotocolBodyEncoding\": \"application/soap+xml\" }, \"interface\": \"AAS-1.0\" } ] }","allOf":[{"type":"object","properties":{"description":{"type":"array","items":{"allOf":[{"required":["language","text"],"type":"object","properties":{"language":{"pattern":"^(([a-zA-Z]{2,3}(-[a-zA-Z]{3}(-[a-zA-Z]{3}){2})?|[a-zA-Z]{4}|[a-zA-Z]{5,8})(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-(([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3}))*(-[0-9A-WY-Za-wy-z](-([a-zA-Z0-9]){2,8})+)*(-[xX](-([a-zA-Z0-9]){1,8})+)?|[xX](-([a-zA-Z0-9]){1,8})+|((en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang)))$","type":"string"},"text":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}},{"properties":{"text":{"maxLength":1023}}}]}},"displayName":{"type":"array","items":{"allOf":[{"required":["language","text"],"type":"object","properties":{"language":{"pattern":"^(([a-zA-Z]{2,3}(-[a-zA-Z]{3}(-[a-zA-Z]{3}){2})?|[a-zA-Z]{4}|[a-zA-Z]{5,8})(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-(([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3}))*(-[0-9A-WY-Za-wy-z](-([a-zA-Z0-9]){2,8})+)*(-[xX](-([a-zA-Z0-9]){1,8})+)?|[xX](-([a-zA-Z0-9]){1,8})+|((en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang)))$","type":"string"},"text":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}},{"properties":{"text":{"maxLength":128}}}]}},"extensions":{"minItems":1,"type":"array","items":{"allOf":[{"type":"object","properties":{"semanticId":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]},"supplementalSemanticIds":{"minItems":1,"type":"array","items":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]}}}},{"required":["name"],"properties":{"name":{"maxLength":128,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"valueType":{"type":"string","enum":["xs:anyURI","xs:base64Binary","xs:boolean","xs:byte","xs:date","xs:dateTime","xs:decimal","xs:double","xs:duration","xs:float","xs:gDay","xs:gMonth","xs:gMonthDay","xs:gYear","xs:gYearMonth","xs:hexBinary","xs:int","xs:integer","xs:long","xs:negativeInteger","xs:nonNegativeInteger","xs:nonPositiveInteger","xs:positiveInteger","xs:short","xs:string","xs:time","xs:unsignedByte","xs:unsignedInt","xs:unsignedLong","xs:unsignedShort"]},"value":{"type":"string"},"refersTo":{"minItems":1,"type":"array","items":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]}}}}]}}},"example":"{ \"endpoints\": [ { \"protocolInformation\": { \"endpointAddress\": \"https://localhost:1234\", \"endpointProtocolVersion\": \"1.1\" }, \"interface\": \"AAS-1.0\" }, { \"protocolInformation\": { \"endpointAddress\": \"opc.tcp://localhost:4840\" }, \"interface\": \"AAS-1.0\" }, { \"protocolInformation\": { \"endpointAddress\": \"https://localhost:5678\", \"endpointProtocolVersion\": \"1.1\", \"subprotocol\": \"OPC UA Basic SOAP\", \"subprotocolBody\": \"ns=2;s=MyAAS\", \"subprotocolBodyEncoding\": \"application/soap+xml\" }, \"interface\": \"AAS-1.0\" } ] }"},{"properties":{"administration":{"allOf":[{"type":"object","properties":{"embeddedDataSpecifications":{"minItems":1,"type":"array","items":{"required":["dataSpecification","dataSpecificationContent"],"type":"object","properties":{"dataSpecification":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]},"dataSpecificationContent":{"oneOf":[{"allOf":[{"required":["modelType"],"type":"object","properties":{"modelType":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataSpecificationIec61360","Entity","File","MultiLanguageProperty","Operation","Property","Range","ReferenceElement","RelationshipElement","Submodel","SubmodelElementCollection","SubmodelElementList"]}}},{"required":["preferredName"],"properties":{"preferredName":{"minItems":1,"type":"array","items":{"allOf":[{"required":["language","text"],"type":"object","properties":{"language":{"pattern":"^(([a-zA-Z]{2,3}(-[a-zA-Z]{3}(-[a-zA-Z]{3}){2})?|[a-zA-Z]{4}|[a-zA-Z]{5,8})(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-(([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3}))*(-[0-9A-WY-Za-wy-z](-([a-zA-Z0-9]){2,8})+)*(-[xX](-([a-zA-Z0-9]){1,8})+)?|[xX](-([a-zA-Z0-9]){1,8})+|((en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang)))$","type":"string"},"text":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}},{"properties":{"text":{"maxLength":255}}}]}},"shortName":{"minItems":1,"type":"array","items":{"allOf":[{"required":["language","text"],"type":"object","properties":{"language":{"pattern":"^(([a-zA-Z]{2,3}(-[a-zA-Z]{3}(-[a-zA-Z]{3}){2})?|[a-zA-Z]{4}|[a-zA-Z]{5,8})(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-(([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3}))*(-[0-9A-WY-Za-wy-z](-([a-zA-Z0-9]){2,8})+)*(-[xX](-([a-zA-Z0-9]){1,8})+)?|[xX](-([a-zA-Z0-9]){1,8})+|((en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang)))$","type":"string"},"text":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}},{"properties":{"text":{"maxLength":18}}}]}},"unit":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"unitId":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]},"sourceOfDefinition":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"symbol":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"dataType":{"type":"string","enum":["BLOB","BOOLEAN","DATE","FILE","HTML","INTEGER_COUNT","INTEGER_CURRENCY","INTEGER_MEASURE","IRDI","IRI","RATIONAL","RATIONAL_MEASURE","REAL_COUNT","REAL_CURRENCY","REAL_MEASURE","STRING","STRING_TRANSLATABLE","TIME","TIMESTAMP"]},"definition":{"minItems":1,"type":"array","items":{"allOf":[{"required":["language","text"],"type":"object","properties":{"language":{"pattern":"^(([a-zA-Z]{2,3}(-[a-zA-Z]{3}(-[a-zA-Z]{3}){2})?|[a-zA-Z]{4}|[a-zA-Z]{5,8})(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-(([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3}))*(-[0-9A-WY-Za-wy-z](-([a-zA-Z0-9]){2,8})+)*(-[xX](-([a-zA-Z0-9]){1,8})+)?|[xX](-([a-zA-Z0-9]){1,8})+|((en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang)))$","type":"string"},"text":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}},{"properties":{"text":{"maxLength":1023}}}]}},"valueFormat":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"valueList":{"required":["valueReferencePairs"],"type":"object","properties":{"valueReferencePairs":{"minItems":1,"type":"array","items":{"required":["value","valueId"],"type":"object","properties":{"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"valueId":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]}}}}}},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"levelType":{"required":["max","min","nom","typ"],"type":"object","properties":{"min":{"type":"boolean"},"nom":{"type":"boolean"},"typ":{"type":"boolean"},"max":{"type":"boolean"}}},"modelType":{"pattern":"DataSpecificationIec61360","type":"string"}}}]}]}}}}}},{"properties":{"version":{"type":"string","allOf":[{"maxLength":4,"minLength":1},{"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$"},{"pattern":"^(0|[1-9][0-9]*)$"}]},"revision":{"type":"string","allOf":[{"maxLength":4,"minLength":1},{"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$"},{"pattern":"^(0|[1-9][0-9]*)$"}]},"creator":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]},"templateId":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}]},"assetKind":{"type":"string","enum":["Instance","NotApplicable","Type"]},"assetType":{"maxLength":2000,"minLength":1,"pattern":"^[\\x09\\x0A\\x0D\\x20-\\uD7FF\\uE000-\\uFFFD\\U00010000-\\U0010FFFF]*$","type":"string"},"endpoints":{"minItems":1,"type":"array","items":{"required":["interface","protocolInformation"],"type":"object","properties":{"interface":{"maxLength":128,"type":"string"},"protocolInformation":{"required":["href"],"type":"object","properties":{"href":{"maxLength":2048,"type":"string"},"endpointProtocol":{"maxLength":128,"type":"string"},"endpointProtocolVersion":{"type":"array","items":{"maxLength":128,"type":"string"}},"subprotocol":{"maxLength":128,"type":"string"},"subprotocolBody":{"maxLength":128,"type":"string"},"subprotocolBodyEncoding":{"maxLength":128,"type":"string"},"securityAttributes":{"minItems":1,"type":"array","items":{"required":["key","type","value"],"type":"object","properties":{"type":{"type":"string","enum":["NONE","RFC_TLSA","W3C_DID"]},"key":{"type":"string"},"value":{"type":"string"}}}}}}}}},"globalAssetId":{"maxLength":2000,"minLength":1,"pattern":"^[\\x09\\x0A\\x0D\\x20-\\uD7FF\\uE000-\\uFFFD\\U00010000-\\U0010FFFF]*$","type":"string"},"idShort":{"maxLength":128,"type":"string"},"id":{"maxLength":2000,"minLength":1,"pattern":"^[\\x09\\x0A\\x0D\\x20-\\uD7FF\\uE000-\\uFFFD\\U00010000-\\U0010FFFF]*$","type":"string"},"specificAssetIds":{"type":"array","items":{"allOf":[{"type":"object","properties":{"semanticId":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]},"supplementalSemanticIds":{"minItems":1,"type":"array","items":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]}}}},{"required":["name","value"],"properties":{"name":{"maxLength":64,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"externalSubjectId":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]}}}]}},"submodelDescriptors":{"type":"array","items":{"required":["endpoints","id"],"type":"object","properties":{"administration":{"allOf":[{"type":"object","properties":{"embeddedDataSpecifications":{"minItems":1,"type":"array","items":{"required":["dataSpecification","dataSpecificationContent"],"type":"object","properties":{"dataSpecification":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]},"dataSpecificationContent":{"oneOf":[{"allOf":[{"required":["modelType"],"type":"object","properties":{"modelType":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataSpecificationIec61360","Entity","File","MultiLanguageProperty","Operation","Property","Range","ReferenceElement","RelationshipElement","Submodel","SubmodelElementCollection","SubmodelElementList"]}}},{"required":["preferredName"],"properties":{"preferredName":{"minItems":1,"type":"array","items":{"allOf":[{"required":["language","text"],"type":"object","properties":{"language":{"pattern":"^(([a-zA-Z]{2,3}(-[a-zA-Z]{3}(-[a-zA-Z]{3}){2})?|[a-zA-Z]{4}|[a-zA-Z]{5,8})(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-(([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3}))*(-[0-9A-WY-Za-wy-z](-([a-zA-Z0-9]){2,8})+)*(-[xX](-([a-zA-Z0-9]){1,8})+)?|[xX](-([a-zA-Z0-9]){1,8})+|((en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang)))$","type":"string"},"text":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}},{"properties":{"text":{"maxLength":255}}}]}},"shortName":{"minItems":1,"type":"array","items":{"allOf":[{"required":["language","text"],"type":"object","properties":{"language":{"pattern":"^(([a-zA-Z]{2,3}(-[a-zA-Z]{3}(-[a-zA-Z]{3}){2})?|[a-zA-Z]{4}|[a-zA-Z]{5,8})(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-(([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3}))*(-[0-9A-WY-Za-wy-z](-([a-zA-Z0-9]){2,8})+)*(-[xX](-([a-zA-Z0-9]){1,8})+)?|[xX](-([a-zA-Z0-9]){1,8})+|((en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang)))$","type":"string"},"text":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}},{"properties":{"text":{"maxLength":18}}}]}},"unit":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"unitId":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]},"sourceOfDefinition":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"symbol":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"dataType":{"type":"string","enum":["BLOB","BOOLEAN","DATE","FILE","HTML","INTEGER_COUNT","INTEGER_CURRENCY","INTEGER_MEASURE","IRDI","IRI","RATIONAL","RATIONAL_MEASURE","REAL_COUNT","REAL_CURRENCY","REAL_MEASURE","STRING","STRING_TRANSLATABLE","TIME","TIMESTAMP"]},"definition":{"minItems":1,"type":"array","items":{"allOf":[{"required":["language","text"],"type":"object","properties":{"language":{"pattern":"^(([a-zA-Z]{2,3}(-[a-zA-Z]{3}(-[a-zA-Z]{3}){2})?|[a-zA-Z]{4}|[a-zA-Z]{5,8})(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-(([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3}))*(-[0-9A-WY-Za-wy-z](-([a-zA-Z0-9]){2,8})+)*(-[xX](-([a-zA-Z0-9]){1,8})+)?|[xX](-([a-zA-Z0-9]){1,8})+|((en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang)))$","type":"string"},"text":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}},{"properties":{"text":{"maxLength":1023}}}]}},"valueFormat":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"valueList":{"required":["valueReferencePairs"],"type":"object","properties":{"valueReferencePairs":{"minItems":1,"type":"array","items":{"required":["value","valueId"],"type":"object","properties":{"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"valueId":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]}}}}}},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"levelType":{"required":["max","min","nom","typ"],"type":"object","properties":{"min":{"type":"boolean"},"nom":{"type":"boolean"},"typ":{"type":"boolean"},"max":{"type":"boolean"}}},"modelType":{"pattern":"DataSpecificationIec61360","type":"string"}}}]}]}}}}}},{"properties":{"version":{"type":"string","allOf":[{"maxLength":4,"minLength":1},{"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$"},{"pattern":"^(0|[1-9][0-9]*)$"}]},"revision":{"type":"string","allOf":[{"maxLength":4,"minLength":1},{"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$"},{"pattern":"^(0|[1-9][0-9]*)$"}]},"creator":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]},"templateId":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}]},"endpoints":{"minItems":1,"type":"array","items":{"required":["interface","protocolInformation"],"type":"object","properties":{"interface":{"maxLength":128,"type":"string"},"protocolInformation":{"required":["href"],"type":"object","properties":{"href":{"maxLength":2048,"type":"string"},"endpointProtocol":{"maxLength":128,"type":"string"},"endpointProtocolVersion":{"type":"array","items":{"maxLength":128,"type":"string"}},"subprotocol":{"maxLength":128,"type":"string"},"subprotocolBody":{"maxLength":128,"type":"string"},"subprotocolBodyEncoding":{"maxLength":128,"type":"string"},"securityAttributes":{"minItems":1,"type":"array","items":{"required":["key","type","value"],"type":"object","properties":{"type":{"type":"string","enum":["NONE","RFC_TLSA","W3C_DID"]},"key":{"type":"string"},"value":{"type":"string"}}}}}}}}},"idShort":{"maxLength":128,"type":"string"},"id":{"maxLength":2000,"minLength":1,"pattern":"^[\\x09\\x0A\\x0D\\x20-\\uD7FF\\uE000-\\uFFFD\\U00010000-\\U0010FFFF]*$","type":"string"},"semanticId":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]},"supplementalSemanticId":{"minItems":1,"type":"array","items":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]}}},"example":"{ \"id\": \"https://admin-shell.io/zvei/nameplate/1/0/Nameplate\", \"endpoints\": [ { \"protocolInformation\": { \"endpointAddress\": \"https://localhost:1234\", \"endpointProtocolVersion\": \"1.1\" }, \"interface\": \"AAS-1.0\" }, { \"protocolInformation\": { \"endpointAddress\": \"opc.tcp://localhost:4840\" }, \"interface\": \"AAS-1.0\" }, { \"protocolInformation\": { \"endpointAddress\": \"https://localhost:5678\", \"endpointProtocolVersion\": \"1.1\", \"subprotocol\": \"OPC UA Basic SOAP\", \"subprotocolBody\": \"ns=2;s=MyAAS\", \"subprotocolBodyEncoding\": \"application/soap+xml\" }, \"interface\": \"AAS-1.0\" } ] }","allOf":[{"type":"object","properties":{"description":{"type":"array","items":{"allOf":[{"required":["language","text"],"type":"object","properties":{"language":{"pattern":"^(([a-zA-Z]{2,3}(-[a-zA-Z]{3}(-[a-zA-Z]{3}){2})?|[a-zA-Z]{4}|[a-zA-Z]{5,8})(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-(([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3}))*(-[0-9A-WY-Za-wy-z](-([a-zA-Z0-9]){2,8})+)*(-[xX](-([a-zA-Z0-9]){1,8})+)?|[xX](-([a-zA-Z0-9]){1,8})+|((en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang)))$","type":"string"},"text":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}},{"properties":{"text":{"maxLength":1023}}}]}},"displayName":{"type":"array","items":{"allOf":[{"required":["language","text"],"type":"object","properties":{"language":{"pattern":"^(([a-zA-Z]{2,3}(-[a-zA-Z]{3}(-[a-zA-Z]{3}){2})?|[a-zA-Z]{4}|[a-zA-Z]{5,8})(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-(([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3}))*(-[0-9A-WY-Za-wy-z](-([a-zA-Z0-9]){2,8})+)*(-[xX](-([a-zA-Z0-9]){1,8})+)?|[xX](-([a-zA-Z0-9]){1,8})+|((en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang)))$","type":"string"},"text":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}},{"properties":{"text":{"maxLength":128}}}]}},"extensions":{"minItems":1,"type":"array","items":{"allOf":[{"type":"object","properties":{"semanticId":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]},"supplementalSemanticIds":{"minItems":1,"type":"array","items":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]}}}},{"required":["name"],"properties":{"name":{"maxLength":128,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"valueType":{"type":"string","enum":["xs:anyURI","xs:base64Binary","xs:boolean","xs:byte","xs:date","xs:dateTime","xs:decimal","xs:double","xs:duration","xs:float","xs:gDay","xs:gMonth","xs:gMonthDay","xs:gYear","xs:gYearMonth","xs:hexBinary","xs:int","xs:integer","xs:long","xs:negativeInteger","xs:nonNegativeInteger","xs:nonPositiveInteger","xs:positiveInteger","xs:short","xs:string","xs:time","xs:unsignedByte","xs:unsignedInt","xs:unsignedLong","xs:unsignedShort"]},"value":{"type":"string"},"refersTo":{"minItems":1,"type":"array","items":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]}}}}]}}},"example":"{ \"endpoints\": [ { \"protocolInformation\": { \"endpointAddress\": \"https://localhost:1234\", \"endpointProtocolVersion\": \"1.1\" }, \"interface\": \"AAS-1.0\" }, { \"protocolInformation\": { \"endpointAddress\": \"opc.tcp://localhost:4840\" }, \"interface\": \"AAS-1.0\" }, { \"protocolInformation\": { \"endpointAddress\": \"https://localhost:5678\", \"endpointProtocolVersion\": \"1.1\", \"subprotocol\": \"OPC UA Basic SOAP\", \"subprotocolBody\": \"ns=2;s=MyAAS\", \"subprotocolBodyEncoding\": \"application/soap+xml\" }, \"interface\": \"AAS-1.0\" } ] }"}]}}}}]}}}},"400":{"description":"Bad Request, e.g. the request parameters of the format of the request body is wrong.","content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array","items":{"type":"object","properties":{"code":{"maxLength":32,"minLength":1,"type":"string"},"correlationId":{"maxLength":128,"minLength":1,"type":"string"},"messageType":{"type":"string","enum":["Undefined","Info","Warning","Error","Exception"]},"text":{"type":"string"},"timestamp":{"pattern":"^-?(([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]))-((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|\\+00:00|-00:00)$","type":"string"}}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array","items":{"type":"object","properties":{"code":{"maxLength":32,"minLength":1,"type":"string"},"correlationId":{"maxLength":128,"minLength":1,"type":"string"},"messageType":{"type":"string","enum":["Undefined","Info","Warning","Error","Exception"]},"text":{"type":"string"},"timestamp":{"pattern":"^-?(([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]))-((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|\\+00:00|-00:00)$","type":"string"}}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array","items":{"type":"object","properties":{"code":{"maxLength":32,"minLength":1,"type":"string"},"correlationId":{"maxLength":128,"minLength":1,"type":"string"},"messageType":{"type":"string","enum":["Undefined","Info","Warning","Error","Exception"]},"text":{"type":"string"},"timestamp":{"pattern":"^-?(([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]))-((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|\\+00:00|-00:00)$","type":"string"}}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array","items":{"type":"object","properties":{"code":{"maxLength":32,"minLength":1,"type":"string"},"correlationId":{"maxLength":128,"minLength":1,"type":"string"},"messageType":{"type":"string","enum":["Undefined","Info","Warning","Error","Exception"]},"text":{"type":"string"},"timestamp":{"pattern":"^-?(([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]))-((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|\\+00:00|-00:00)$","type":"string"}}}}}}}}},"default":{"description":"Default error handling for unmentioned status codes","content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array","items":{"type":"object","properties":{"code":{"maxLength":32,"minLength":1,"type":"string"},"correlationId":{"maxLength":128,"minLength":1,"type":"string"},"messageType":{"type":"string","enum":["Undefined","Info","Warning","Error","Exception"]},"text":{"type":"string"},"timestamp":{"pattern":"^-?(([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]))-((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|\\+00:00|-00:00)$","type":"string"}}}}}}}}}},"x-semanticIds":["https://admin-shell.io/aas/API/GetAssetAdministrationShellDescriptorById/3/0"],"description":"Returns a specific Asset Administration Shell Descriptor","method":"get","path":"/shell-descriptors/{aasIdentifier}","servers":[{"url":"{protocol}://{host_name}:{port}/api/{version_prefix}","variables":{"protocol":{"description":"Allows access through http and https (recommended)","default":"https","enum":["http","https"]},"host_name":{"description":"Hostname of server hosting the api","default":"admin-shell.io"},"port":{"description":"80 is default for http, 443 for https","default":"443","enum":["80","443"]},"version_prefix":{"default":"v3.0","enum":["v3.0"]}}}],"info":{"title":"DotAAS Part 2 | HTTP/REST | Registry Service Specification","description":"The Read Profile of the Asset Administration Shell Registry Service Specification as part of the Specification of the Asset Administration Shell: Part 2. Publisher: Industrial Digital Twin Association (IDTA) April 2023","contact":{"name":"Industrial Digital Twin Association (IDTA)","email":"info@idtwin.org"},"license":{"name":"CC BY 4.0","url":"https://creativecommons.org/licenses/by/4.0/"},"version":"V3.0_SSP-002"},"postman":{"name":"Returns a specific Asset Administration Shell Descriptor","description":{"type":"text/plain"},"url":{"path":["shell-descriptors",":aasIdentifier"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) The Asset Administration Shell’s unique id (UTF8-BASE64-URL-encoded)","type":"text/plain"},"type":"any","value":"","key":"aasIdentifier"}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/_versioned_docs/version-3.1.0/kits/Digital Twin Kit/Software Development View/API Specs/AAS Registry//dotaas-part-2-http-rest-registry-service-specification +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Returns a specific Asset Administration Shell Descriptor + + + +Returns a specific Asset Administration Shell Descriptor + +
Path Parameters
+ +Requested Asset Administration Shell Descriptor + +
Schema
    description object[]
    displayName object[]
    extensions object[]
    + +**Possible values:** `>= 1` + +
    semanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    supplementalSemanticIds undefined[]
    + +**Possible values:** `>= 1` + +
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    refersTo undefined[]
    + +**Possible values:** `>= 1` + +
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    administration object
    embeddedDataSpecifications object[]
    + +**Possible values:** `>= 1` + +
    dataSpecification
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    dataSpecificationContent object
    oneOf
    preferredName object[]
    + +**Possible values:** `>= 1` + +
    shortName object[]
    + +**Possible values:** `>= 1` + +
    unitId
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    definition object[]
    + +**Possible values:** `>= 1` + +
    valueList object
    valueReferencePairs object[]
    + +**Possible values:** `>= 1` + +
    valueId
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    levelType object
    creator
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    endpoints object[]
    + +**Possible values:** `>= 1` + +
    protocolInformation object
    securityAttributes object[]
    + +**Possible values:** `>= 1` + +
    specificAssetIds object[]
    semanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    supplementalSemanticIds undefined[]
    + +**Possible values:** `>= 1` + +
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    externalSubjectId
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    submodelDescriptors object[]
    administration object
    embeddedDataSpecifications object[]
    + +**Possible values:** `>= 1` + +
    dataSpecification
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    dataSpecificationContent object
    oneOf
    preferredName object[]
    + +**Possible values:** `>= 1` + +
    shortName object[]
    + +**Possible values:** `>= 1` + +
    unitId
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    definition object[]
    + +**Possible values:** `>= 1` + +
    valueList object
    valueReferencePairs object[]
    + +**Possible values:** `>= 1` + +
    valueId
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    levelType object
    creator
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    endpoints object[]
    + +**Possible values:** `>= 1` + +
    protocolInformation object
    securityAttributes object[]
    + +**Possible values:** `>= 1` + +
    semanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    supplementalSemanticId undefined[]
    + +**Possible values:** `>= 1` + +
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    description object[]
    displayName object[]
    extensions object[]
    + +**Possible values:** `>= 1` + +
    semanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    supplementalSemanticIds undefined[]
    + +**Possible values:** `>= 1` + +
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    refersTo undefined[]
    + +**Possible values:** `>= 1` + +
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
+ +Bad Request, e.g. the request parameters of the format of the request body is wrong. + +
Schema
    messages object[]
+ +Forbidden + +
Schema
    messages object[]
+ +Not Found + +
Schema
    messages object[]
+ +Internal Server Error + +
Schema
    messages object[]
+ +Default error handling for unmentioned status codes + +
Schema
    messages object[]
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API AAS Registry/get-description.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API AAS Registry/get-description.api.mdx new file mode 100644 index 00000000000..119c5524882 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API AAS Registry/get-description.api.mdx @@ -0,0 +1,42 @@ +--- +id: get-description +title: "Returns the self-describing information of a network resource (ServiceDescription)" +description: "Returns the self-describing information of a network resource (ServiceDescription)" +sidebar_label: "Returns the self-describing information of a network resource (ServiceDescription)" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Description API"],"operationId":"GetDescription","responses":{"200":{"description":"Requested Description","content":{"application/json":{"schema":{"type":"object","properties":{"profiles":{"minItems":1,"type":"array","items":{"type":"string","enum":["AssetAdministrationShellServiceSpecification/V3.0","AssetAdministrationShellServiceSpecification/V3.0-MinimalProfile","SubmodelServiceSpecification/V3.0","SubmodelServiceSpecification/V3.0-ValueProfile","SubmodelServiceSpecification/V3.0-MinimalProfile","AasxFileServerServiceSpecification/V3.0","RegistryServiceSpecification/V3.0","RegistryServiceSpecification/V3.0- AssetAdministrationShellRegistry","RegistryServiceSpecification/V3.0-SubmodelRegistry","RepositoryServiceSpecification/V3.0","RepositoryServiceSpecification/V3.0-MinimalProfile","AssetAdministrationShellRepositoryServiceSpecification/V3.0","AssetAdministrationShellRepositoryServiceSpecification/V3.0-MinimalProfile","SubmodelRepositoryServiceSpecification/V3.0","SubmodelRepositoryServiceSpecification/V3.0-MinimalProfile","RegistryAndDiscoveryServiceSpecification/V3.0"]}}},"description":"The Description object enables servers to present their capabilities to the clients, in particular which profiles they implement. At least one defined profile is required. Additional, proprietary attributes might be included. Nevertheless, the server must not expect that a regular client understands them.","example":"{\n \"profiles\": [\n \"RepositoryServiceSpecification/V3.0-MinimalProfile\",\n \"RegistryServiceSpecification/V3.0\"\n ]\n}"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array","items":{"type":"object","properties":{"code":{"maxLength":32,"minLength":1,"type":"string"},"correlationId":{"maxLength":128,"minLength":1,"type":"string"},"messageType":{"type":"string","enum":["Undefined","Info","Warning","Error","Exception"]},"text":{"type":"string"},"timestamp":{"pattern":"^-?(([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]))-((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|\\+00:00|-00:00)$","type":"string"}}}}}}}}},"default":{"description":"Default error handling for unmentioned status codes","content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array","items":{"type":"object","properties":{"code":{"maxLength":32,"minLength":1,"type":"string"},"correlationId":{"maxLength":128,"minLength":1,"type":"string"},"messageType":{"type":"string","enum":["Undefined","Info","Warning","Error","Exception"]},"text":{"type":"string"},"timestamp":{"pattern":"^-?(([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]))-((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|\\+00:00|-00:00)$","type":"string"}}}}}}}}}},"x-semanticIds":["https://admin-shell.io/aas/API/Descriptor/GetDescription/3/0"],"description":"Returns the self-describing information of a network resource (ServiceDescription)","method":"get","path":"/description","servers":[{"url":"{protocol}://{host_name}:{port}/api/{version_prefix}","variables":{"protocol":{"description":"Allows access through http and https (recommended)","default":"https","enum":["http","https"]},"host_name":{"description":"Hostname of server hosting the api","default":"admin-shell.io"},"port":{"description":"80 is default for http, 443 for https","default":"443","enum":["80","443"]},"version_prefix":{"default":"v3.0","enum":["v3.0"]}}}],"info":{"title":"DotAAS Part 2 | HTTP/REST | Registry Service Specification","description":"The Read Profile of the Asset Administration Shell Registry Service Specification as part of the Specification of the Asset Administration Shell: Part 2. Publisher: Industrial Digital Twin Association (IDTA) April 2023","contact":{"name":"Industrial Digital Twin Association (IDTA)","email":"info@idtwin.org"},"license":{"name":"CC BY 4.0","url":"https://creativecommons.org/licenses/by/4.0/"},"version":"V3.0_SSP-002"},"postman":{"name":"Returns the self-describing information of a network resource (ServiceDescription)","description":{"type":"text/plain"},"url":{"path":["description"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/_versioned_docs/version-3.1.0/kits/Digital Twin Kit/Software Development View/API Specs/AAS Registry//dotaas-part-2-http-rest-registry-service-specification +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Returns the self-describing information of a network resource (ServiceDescription) + + + +Returns the self-describing information of a network resource (ServiceDescription) + +
+ +Requested Description + +
Schema
    = 1`"} defaultValue={undefined}>
+ +Forbidden + +
Schema
    messages object[]
+ +Default error handling for unmentioned status codes + +
Schema
    messages object[]
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API AAS Registry/get-submodel-descriptor-by-id-through-superpath.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API AAS Registry/get-submodel-descriptor-by-id-through-superpath.api.mdx new file mode 100644 index 00000000000..031655498f5 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API AAS Registry/get-submodel-descriptor-by-id-through-superpath.api.mdx @@ -0,0 +1,90 @@ +--- +id: get-submodel-descriptor-by-id-through-superpath +title: "Returns a specific Submodel Descriptor" +description: "Returns a specific Submodel Descriptor" +sidebar_label: "Returns a specific Submodel Descriptor" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Asset Administration Shell Registry API"],"operationId":"GetSubmodelDescriptorByIdThroughSuperpath","parameters":[{"name":"aasIdentifier","in":"path","description":"The Asset Administration Shell’s unique id (UTF8-BASE64-URL-encoded)","required":true,"style":"simple","explode":false,"schema":{"type":"string","format":"byte"}},{"name":"submodelIdentifier","in":"path","description":"The Submodel’s unique id (UTF8-BASE64-URL-encoded)","required":true,"style":"simple","explode":false,"schema":{"type":"string","format":"byte"}}],"responses":{"200":{"description":"Requested Submodel Descriptor","content":{"application/json":{"schema":{"required":["endpoints","id"],"type":"object","properties":{"administration":{"allOf":[{"type":"object","properties":{"embeddedDataSpecifications":{"minItems":1,"type":"array","items":{"required":["dataSpecification","dataSpecificationContent"],"type":"object","properties":{"dataSpecification":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]},"dataSpecificationContent":{"oneOf":[{"allOf":[{"required":["modelType"],"type":"object","properties":{"modelType":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataSpecificationIec61360","Entity","File","MultiLanguageProperty","Operation","Property","Range","ReferenceElement","RelationshipElement","Submodel","SubmodelElementCollection","SubmodelElementList"]}}},{"required":["preferredName"],"properties":{"preferredName":{"minItems":1,"type":"array","items":{"allOf":[{"required":["language","text"],"type":"object","properties":{"language":{"pattern":"^(([a-zA-Z]{2,3}(-[a-zA-Z]{3}(-[a-zA-Z]{3}){2})?|[a-zA-Z]{4}|[a-zA-Z]{5,8})(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-(([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3}))*(-[0-9A-WY-Za-wy-z](-([a-zA-Z0-9]){2,8})+)*(-[xX](-([a-zA-Z0-9]){1,8})+)?|[xX](-([a-zA-Z0-9]){1,8})+|((en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang)))$","type":"string"},"text":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}},{"properties":{"text":{"maxLength":255}}}]}},"shortName":{"minItems":1,"type":"array","items":{"allOf":[{"required":["language","text"],"type":"object","properties":{"language":{"pattern":"^(([a-zA-Z]{2,3}(-[a-zA-Z]{3}(-[a-zA-Z]{3}){2})?|[a-zA-Z]{4}|[a-zA-Z]{5,8})(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-(([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3}))*(-[0-9A-WY-Za-wy-z](-([a-zA-Z0-9]){2,8})+)*(-[xX](-([a-zA-Z0-9]){1,8})+)?|[xX](-([a-zA-Z0-9]){1,8})+|((en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang)))$","type":"string"},"text":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}},{"properties":{"text":{"maxLength":18}}}]}},"unit":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"unitId":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]},"sourceOfDefinition":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"symbol":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"dataType":{"type":"string","enum":["BLOB","BOOLEAN","DATE","FILE","HTML","INTEGER_COUNT","INTEGER_CURRENCY","INTEGER_MEASURE","IRDI","IRI","RATIONAL","RATIONAL_MEASURE","REAL_COUNT","REAL_CURRENCY","REAL_MEASURE","STRING","STRING_TRANSLATABLE","TIME","TIMESTAMP"]},"definition":{"minItems":1,"type":"array","items":{"allOf":[{"required":["language","text"],"type":"object","properties":{"language":{"pattern":"^(([a-zA-Z]{2,3}(-[a-zA-Z]{3}(-[a-zA-Z]{3}){2})?|[a-zA-Z]{4}|[a-zA-Z]{5,8})(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-(([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3}))*(-[0-9A-WY-Za-wy-z](-([a-zA-Z0-9]){2,8})+)*(-[xX](-([a-zA-Z0-9]){1,8})+)?|[xX](-([a-zA-Z0-9]){1,8})+|((en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang)))$","type":"string"},"text":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}},{"properties":{"text":{"maxLength":1023}}}]}},"valueFormat":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"valueList":{"required":["valueReferencePairs"],"type":"object","properties":{"valueReferencePairs":{"minItems":1,"type":"array","items":{"required":["value","valueId"],"type":"object","properties":{"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"valueId":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]}}}}}},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"levelType":{"required":["max","min","nom","typ"],"type":"object","properties":{"min":{"type":"boolean"},"nom":{"type":"boolean"},"typ":{"type":"boolean"},"max":{"type":"boolean"}}},"modelType":{"pattern":"DataSpecificationIec61360","type":"string"}}}]}]}}}}}},{"properties":{"version":{"type":"string","allOf":[{"maxLength":4,"minLength":1},{"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$"},{"pattern":"^(0|[1-9][0-9]*)$"}]},"revision":{"type":"string","allOf":[{"maxLength":4,"minLength":1},{"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$"},{"pattern":"^(0|[1-9][0-9]*)$"}]},"creator":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]},"templateId":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}]},"endpoints":{"minItems":1,"type":"array","items":{"required":["interface","protocolInformation"],"type":"object","properties":{"interface":{"maxLength":128,"type":"string"},"protocolInformation":{"required":["href"],"type":"object","properties":{"href":{"maxLength":2048,"type":"string"},"endpointProtocol":{"maxLength":128,"type":"string"},"endpointProtocolVersion":{"type":"array","items":{"maxLength":128,"type":"string"}},"subprotocol":{"maxLength":128,"type":"string"},"subprotocolBody":{"maxLength":128,"type":"string"},"subprotocolBodyEncoding":{"maxLength":128,"type":"string"},"securityAttributes":{"minItems":1,"type":"array","items":{"required":["key","type","value"],"type":"object","properties":{"type":{"type":"string","enum":["NONE","RFC_TLSA","W3C_DID"]},"key":{"type":"string"},"value":{"type":"string"}}}}}}}}},"idShort":{"maxLength":128,"type":"string"},"id":{"maxLength":2000,"minLength":1,"pattern":"^[\\x09\\x0A\\x0D\\x20-\\uD7FF\\uE000-\\uFFFD\\U00010000-\\U0010FFFF]*$","type":"string"},"semanticId":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]},"supplementalSemanticId":{"minItems":1,"type":"array","items":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]}}},"example":"{ \"id\": \"https://admin-shell.io/zvei/nameplate/1/0/Nameplate\", \"endpoints\": [ { \"protocolInformation\": { \"endpointAddress\": \"https://localhost:1234\", \"endpointProtocolVersion\": \"1.1\" }, \"interface\": \"AAS-1.0\" }, { \"protocolInformation\": { \"endpointAddress\": \"opc.tcp://localhost:4840\" }, \"interface\": \"AAS-1.0\" }, { \"protocolInformation\": { \"endpointAddress\": \"https://localhost:5678\", \"endpointProtocolVersion\": \"1.1\", \"subprotocol\": \"OPC UA Basic SOAP\", \"subprotocolBody\": \"ns=2;s=MyAAS\", \"subprotocolBodyEncoding\": \"application/soap+xml\" }, \"interface\": \"AAS-1.0\" } ] }","allOf":[{"type":"object","properties":{"description":{"type":"array","items":{"allOf":[{"required":["language","text"],"type":"object","properties":{"language":{"pattern":"^(([a-zA-Z]{2,3}(-[a-zA-Z]{3}(-[a-zA-Z]{3}){2})?|[a-zA-Z]{4}|[a-zA-Z]{5,8})(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-(([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3}))*(-[0-9A-WY-Za-wy-z](-([a-zA-Z0-9]){2,8})+)*(-[xX](-([a-zA-Z0-9]){1,8})+)?|[xX](-([a-zA-Z0-9]){1,8})+|((en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang)))$","type":"string"},"text":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}},{"properties":{"text":{"maxLength":1023}}}]}},"displayName":{"type":"array","items":{"allOf":[{"required":["language","text"],"type":"object","properties":{"language":{"pattern":"^(([a-zA-Z]{2,3}(-[a-zA-Z]{3}(-[a-zA-Z]{3}){2})?|[a-zA-Z]{4}|[a-zA-Z]{5,8})(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-(([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3}))*(-[0-9A-WY-Za-wy-z](-([a-zA-Z0-9]){2,8})+)*(-[xX](-([a-zA-Z0-9]){1,8})+)?|[xX](-([a-zA-Z0-9]){1,8})+|((en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang)))$","type":"string"},"text":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}},{"properties":{"text":{"maxLength":128}}}]}},"extensions":{"minItems":1,"type":"array","items":{"allOf":[{"type":"object","properties":{"semanticId":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]},"supplementalSemanticIds":{"minItems":1,"type":"array","items":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]}}}},{"required":["name"],"properties":{"name":{"maxLength":128,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"valueType":{"type":"string","enum":["xs:anyURI","xs:base64Binary","xs:boolean","xs:byte","xs:date","xs:dateTime","xs:decimal","xs:double","xs:duration","xs:float","xs:gDay","xs:gMonth","xs:gMonthDay","xs:gYear","xs:gYearMonth","xs:hexBinary","xs:int","xs:integer","xs:long","xs:negativeInteger","xs:nonNegativeInteger","xs:nonPositiveInteger","xs:positiveInteger","xs:short","xs:string","xs:time","xs:unsignedByte","xs:unsignedInt","xs:unsignedLong","xs:unsignedShort"]},"value":{"type":"string"},"refersTo":{"minItems":1,"type":"array","items":{"allOf":[{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]}}}}]}}},"example":"{ \"endpoints\": [ { \"protocolInformation\": { \"endpointAddress\": \"https://localhost:1234\", \"endpointProtocolVersion\": \"1.1\" }, \"interface\": \"AAS-1.0\" }, { \"protocolInformation\": { \"endpointAddress\": \"opc.tcp://localhost:4840\" }, \"interface\": \"AAS-1.0\" }, { \"protocolInformation\": { \"endpointAddress\": \"https://localhost:5678\", \"endpointProtocolVersion\": \"1.1\", \"subprotocol\": \"OPC UA Basic SOAP\", \"subprotocolBody\": \"ns=2;s=MyAAS\", \"subprotocolBodyEncoding\": \"application/soap+xml\" }, \"interface\": \"AAS-1.0\" } ] }"}]}}}},"400":{"description":"Bad Request, e.g. the request parameters of the format of the request body is wrong.","content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array","items":{"type":"object","properties":{"code":{"maxLength":32,"minLength":1,"type":"string"},"correlationId":{"maxLength":128,"minLength":1,"type":"string"},"messageType":{"type":"string","enum":["Undefined","Info","Warning","Error","Exception"]},"text":{"type":"string"},"timestamp":{"pattern":"^-?(([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]))-((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|\\+00:00|-00:00)$","type":"string"}}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array","items":{"type":"object","properties":{"code":{"maxLength":32,"minLength":1,"type":"string"},"correlationId":{"maxLength":128,"minLength":1,"type":"string"},"messageType":{"type":"string","enum":["Undefined","Info","Warning","Error","Exception"]},"text":{"type":"string"},"timestamp":{"pattern":"^-?(([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]))-((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|\\+00:00|-00:00)$","type":"string"}}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array","items":{"type":"object","properties":{"code":{"maxLength":32,"minLength":1,"type":"string"},"correlationId":{"maxLength":128,"minLength":1,"type":"string"},"messageType":{"type":"string","enum":["Undefined","Info","Warning","Error","Exception"]},"text":{"type":"string"},"timestamp":{"pattern":"^-?(([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]))-((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|\\+00:00|-00:00)$","type":"string"}}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array","items":{"type":"object","properties":{"code":{"maxLength":32,"minLength":1,"type":"string"},"correlationId":{"maxLength":128,"minLength":1,"type":"string"},"messageType":{"type":"string","enum":["Undefined","Info","Warning","Error","Exception"]},"text":{"type":"string"},"timestamp":{"pattern":"^-?(([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]))-((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|\\+00:00|-00:00)$","type":"string"}}}}}}}}},"default":{"description":"Default error handling for unmentioned status codes","content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array","items":{"type":"object","properties":{"code":{"maxLength":32,"minLength":1,"type":"string"},"correlationId":{"maxLength":128,"minLength":1,"type":"string"},"messageType":{"type":"string","enum":["Undefined","Info","Warning","Error","Exception"]},"text":{"type":"string"},"timestamp":{"pattern":"^-?(([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]))-((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|\\+00:00|-00:00)$","type":"string"}}}}}}}}}},"x-semanticIds":["https://admin-shell.io/aas/API/GetSubmodelDescriptorById/3/0"],"description":"Returns a specific Submodel Descriptor","method":"get","path":"/shell-descriptors/{aasIdentifier}/submodel-descriptors/{submodelIdentifier}","servers":[{"url":"{protocol}://{host_name}:{port}/api/{version_prefix}","variables":{"protocol":{"description":"Allows access through http and https (recommended)","default":"https","enum":["http","https"]},"host_name":{"description":"Hostname of server hosting the api","default":"admin-shell.io"},"port":{"description":"80 is default for http, 443 for https","default":"443","enum":["80","443"]},"version_prefix":{"default":"v3.0","enum":["v3.0"]}}}],"info":{"title":"DotAAS Part 2 | HTTP/REST | Registry Service Specification","description":"The Read Profile of the Asset Administration Shell Registry Service Specification as part of the Specification of the Asset Administration Shell: Part 2. Publisher: Industrial Digital Twin Association (IDTA) April 2023","contact":{"name":"Industrial Digital Twin Association (IDTA)","email":"info@idtwin.org"},"license":{"name":"CC BY 4.0","url":"https://creativecommons.org/licenses/by/4.0/"},"version":"V3.0_SSP-002"},"postman":{"name":"Returns a specific Submodel Descriptor","description":{"type":"text/plain"},"url":{"path":["shell-descriptors",":aasIdentifier","submodel-descriptors",":submodelIdentifier"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) The Asset Administration Shell’s unique id (UTF8-BASE64-URL-encoded)","type":"text/plain"},"type":"any","value":"","key":"aasIdentifier"},{"disabled":false,"description":{"content":"(Required) The Submodel’s unique id (UTF8-BASE64-URL-encoded)","type":"text/plain"},"type":"any","value":"","key":"submodelIdentifier"}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/_versioned_docs/version-3.1.0/kits/Digital Twin Kit/Software Development View/API Specs/AAS Registry//dotaas-part-2-http-rest-registry-service-specification +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Returns a specific Submodel Descriptor + + + +Returns a specific Submodel Descriptor + +
Path Parameters
+ +Requested Submodel Descriptor + +
Schema
    description object[]
    displayName object[]
    extensions object[]
    + +**Possible values:** `>= 1` + +
    semanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    supplementalSemanticIds undefined[]
    + +**Possible values:** `>= 1` + +
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
    refersTo undefined[]
    + +**Possible values:** `>= 1` + +
    keys object[]
    + +**Possible values:** `>= 1` + +
    referredSemanticId
    keys object[]
    + +**Possible values:** `>= 1` + +
+ +Bad Request, e.g. the request parameters of the format of the request body is wrong. + +
Schema
    messages object[]
+ +Forbidden + +
Schema
    messages object[]
+ +Not Found + +
Schema
    messages object[]
+ +Internal Server Error + +
Schema
    messages object[]
+ +Default error handling for unmentioned status codes + +
Schema
    messages object[]
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API AAS Registry/sidebar.js b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API AAS Registry/sidebar.js new file mode 100644 index 00000000000..21de37e94ab --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API AAS Registry/sidebar.js @@ -0,0 +1 @@ +module.exports = [{"type":"doc","id":"_versioned_docs/version-3.1.0/kits/Digital Twin Kit/Software Development View/API Specs/AAS Registry//dotaas-part-2-http-rest-registry-service-specification"},{"type":"category","label":"Asset Administration Shell Registry API","link":{"type":"generated-index","title":"Asset Administration Shell Registry API","slug":"/category/_versioned_docs/version-3.1.0/kits/Digital Twin Kit/Software Development View/API Specs/AAS Registry/asset-administration-shell-registry-api"},"items":[{"type":"doc","id":"_versioned_docs/version-3.1.0/kits/Digital Twin Kit/Software Development View/API Specs/AAS Registry//get-all-asset-administration-shell-descriptors","label":"Returns all Asset Administration Shell Descriptors","className":"api-method get"},{"type":"doc","id":"_versioned_docs/version-3.1.0/kits/Digital Twin Kit/Software Development View/API Specs/AAS Registry//get-asset-administration-shell-descriptor-by-id","label":"Returns a specific Asset Administration Shell Descriptor","className":"api-method get"},{"type":"doc","id":"_versioned_docs/version-3.1.0/kits/Digital Twin Kit/Software Development View/API Specs/AAS Registry//get-all-submodel-descriptors-through-superpath","label":"Returns all Submodel Descriptors","className":"api-method get"},{"type":"doc","id":"_versioned_docs/version-3.1.0/kits/Digital Twin Kit/Software Development View/API Specs/AAS Registry//get-submodel-descriptor-by-id-through-superpath","label":"Returns a specific Submodel Descriptor","className":"api-method get"}]},{"type":"category","label":"Description API","link":{"type":"generated-index","title":"Description API","slug":"/category/_versioned_docs/version-3.1.0/kits/Digital Twin Kit/Software Development View/API Specs/AAS Registry/description-api"},"items":[{"type":"doc","id":"_versioned_docs/version-3.1.0/kits/Digital Twin Kit/Software Development View/API Specs/AAS Registry//get-description","label":"Returns the self-describing information of a network resource (ServiceDescription)","className":"api-method get"}]}]; \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API BPN Discovery/bpn-discovery-service.info.mdx b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API BPN Discovery/bpn-discovery-service.info.mdx new file mode 100644 index 00000000000..5e953cfe130 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API BPN Discovery/bpn-discovery-service.info.mdx @@ -0,0 +1,25 @@ +--- +id: bpn-discovery-service +title: "BPN Discovery Service" +description: "BPN Discovery Service to find BPN based on a local identifier." +sidebar_label: Introduction +sidebar_position: 0 +hide_title: true +custom_edit_url: null +--- + +import ApiLogo from "@theme/ApiLogo"; +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; +import Export from "@theme/ApiDemoPanel/Export"; + +Version: 0.0.1 + +# BPN Discovery Service + + + +BPN Discovery Service to find BPN based on a local identifier. + +

Authentication

Contact

SLDT Team:
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API BPN Discovery/delete-bpn-discovery-by-id.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API BPN Discovery/delete-bpn-discovery-by-id.api.mdx new file mode 100644 index 00000000000..24d787cc423 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API BPN Discovery/delete-bpn-discovery-by-id.api.mdx @@ -0,0 +1,34 @@ +--- +id: delete-bpn-discovery-by-id +title: "Delete numbers (e.g. OEN, batteryID, etc.) corresponding to BPN endpoints as single entry." +description: "Delete numbers (e.g. OEN, batteryID, etc.) corresponding to BPN endpoints as single entry." +sidebar_label: "Delete numbers (e.g. OEN, batteryID, etc.) corresponding to BPN endpoints as single entry." +hide_title: true +hide_table_of_contents: true +api: {"tags":["Discovery"],"operationId":"DeleteBpnDiscoveryById","parameters":[{"name":"resourceId","in":"path","description":"The IdentifierKeyValue unique id (BASE64-URL-encoded)","required":true,"style":"simple","explode":false,"schema":{"type":"string"}}],"responses":{"204":{"description":"BPN Identifier Key-Value deleted successfully"}},"description":"Delete numbers (e.g. OEN, batteryID, etc.) corresponding to BPN endpoints as single entry.","method":"delete","path":"/api/administration/connectors/bpnDiscovery/{resourceId}","security":[{"CatenaXOpenId":["profile"]}],"securitySchemes":{"CatenaXOpenId":{"type":"openIdConnect","openIdConnectUrl":"../.well-known/openid-configuration"}},"info":{"title":"BPN Discovery Service","description":"BPN Discovery Service to find BPN based on a local identifier.","contact":{"name":"SLDT Team"},"version":"0.0.1"},"postman":{"name":"Delete numbers (e.g. OEN, batteryID, etc.) corresponding to BPN endpoints as single entry.","description":{"type":"text/plain"},"url":{"path":["api","administration","connectors","bpnDiscovery",":resourceId"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) The IdentifierKeyValue unique id (BASE64-URL-encoded)","type":"text/plain"},"type":"any","value":"","key":"resourceId"}]},"method":"DELETE"}} +sidebar_class_name: "delete api-method" +info_path: docs-kits/_versioned_docs/version-3.1.0/kits/Digital Twin Kit/Software Development View/API Specs/BPN Discovery//bpn-discovery-service +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Delete numbers (e.g. OEN, batteryID, etc.) corresponding to BPN endpoints as single entry. + + + +Delete numbers (e.g. OEN, batteryID, etc.) corresponding to BPN endpoints as single entry. + +
Path Parameters
+ +BPN Identifier Key-Value deleted successfully + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API BPN Discovery/get-bpn-discoveries.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API BPN Discovery/get-bpn-discoveries.api.mdx new file mode 100644 index 00000000000..bc86018cb5d --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API BPN Discovery/get-bpn-discoveries.api.mdx @@ -0,0 +1,42 @@ +--- +id: get-bpn-discoveries +title: "Find BPN endpoints corresponding to numbers (e.g. OEN, batteryID, etc.)" +description: "Find BPN endpoints corresponding to numbers (e.g. OEN, batteryID, etc.)" +sidebar_label: "Find BPN endpoints corresponding to numbers (e.g. OEN, batteryID, etc.)" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Discovery"],"operationId":"GetBpnDiscoveries","requestBody":{"description":"the request body is expecting a list of key (type, e.g. OEN, batteryID, etc.) - value (explicit number) pairs, where this service will respond with the corresponding BPN. Please add minimum one key-value pair.","content":{"application/json":{"schema":{"title":"SearchRequest","properties":{"searchFilter":{"title":"searchFilter","type":"array","maxItems":10000,"items":{"title":"SearchIdentifierTypeKeyPair","properties":{"type":{"type":"string","minLength":1,"maxLength":200},"keys":{"type":"array","maxItems":10000,"items":{"type":"string"}}}}}}},"examples":{"complete":{"value":{"searchFilter":[{"type":"oen","keys":["oen-1243","oen-11"]},{"type":"bpid","keys":["bpid-1243","bpid-11"]}]}}}}},"required":true},"responses":{"200":{"description":"key value for BPN created successfully","content":{"application/json":{"schema":{"title":"BpnCollection","properties":{"bpns":{"title":"bpns","type":"array","items":{"title":"Bpn","required":["type","key","value","resourceId"],"properties":{"type":{"type":"string"},"key":{"type":"string"},"value":{"type":"string"},"resourceId":{"type":"string"}}}}}},"examples":{"complete":{"value":{"bpns":[{"type":"oen","key":"oen-1243","value":"bpn-123","resourceId":"1ca6f9b5-8e1d-422a-8541-9bb2cf5fe485"},{"type":"oen","key":"oen-11","value":"bpn-123","resourceId":"972262d7-7e05-4578-936f-de236d7feb94"},{"type":"bpid","key":"bpid-1243","value":"bpn-444","resourceId":"1b754aeb-c753-4adf-ae6d-52842f5a38b7"},{"type":"bpid","key":"oen-11","value":"bpn-444","resourceId":"e43f9cf8-f0d4-4c51-b7fe-b68ea4aeea7c"}]}}}}}}},"description":"Find BPN endpoints corresponding to numbers (e.g. OEN, batteryID, etc.)","method":"post","path":"/api/administration/connectors/bpnDiscovery/search","security":[{"CatenaXOpenId":["profile"]}],"securitySchemes":{"CatenaXOpenId":{"type":"openIdConnect","openIdConnectUrl":"../.well-known/openid-configuration"}},"jsonRequestBodyExample":{"searchFilter":[{"type":"string","keys":["string"]}]},"info":{"title":"BPN Discovery Service","description":"BPN Discovery Service to find BPN based on a local identifier.","contact":{"name":"SLDT Team"},"version":"0.0.1"},"postman":{"name":"Find BPN endpoints corresponding to numbers (e.g. OEN, batteryID, etc.)","description":{"type":"text/plain"},"url":{"path":["api","administration","connectors","bpnDiscovery","search"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/_versioned_docs/version-3.1.0/kits/Digital Twin Kit/Software Development View/API Specs/BPN Discovery//bpn-discovery-service +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Find BPN endpoints corresponding to numbers (e.g. OEN, batteryID, etc.) + + + +Find BPN endpoints corresponding to numbers (e.g. OEN, batteryID, etc.) + +
Request Body required
+ +the request body is expecting a list of key (type, e.g. OEN, batteryID, etc.) - value (explicit number) pairs, where this service will respond with the corresponding BPN. Please add minimum one key-value pair. + +
    searchFilter SearchIdentifierTypeKeyPair[]
    + +**Possible values:** `<= 10000` + +
+ +key value for BPN created successfully + +
Schema
    bpns Bpn[]
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API BPN Discovery/post-batch-bpn-discovery.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API BPN Discovery/post-batch-bpn-discovery.api.mdx new file mode 100644 index 00000000000..c3cc42171f9 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API BPN Discovery/post-batch-bpn-discovery.api.mdx @@ -0,0 +1,42 @@ +--- +id: post-batch-bpn-discovery +title: "Create new numbers (e.g. OEN, batteryID, etc.) corresponding to BPN endpoints as batch." +description: "Create new numbers (e.g. OEN, batteryID, etc.) corresponding to BPN endpoints as batch." +sidebar_label: "Create new numbers (e.g. OEN, batteryID, etc.) corresponding to BPN endpoints as batch." +hide_title: true +hide_table_of_contents: true +api: {"tags":["Discovery"],"operationId":"PostBatchBpnDiscovery","requestBody":{"description":"The request body is expecting a list of key (type, e.g. OEN, batteryID, etc.) - value (explicit number) pairs, where this service will respond with success/error message on persistance of this key-value-pairs. The BPN is hand-over by the authentication/authorization (→ token). Only the owner of a BPN can link any number (e.g. OEN, batteryID, etc.) to his BPN.","content":{"application/json":{"schema":{"type":"array","maxItems":10000,"items":{"title":"IdentifierTypeKeyPair","required":["type","key"],"properties":{"type":{"type":"string","minLength":1,"maxLength":200},"key":{"type":"string","minLength":1,"maxLength":200}}}},"examples":{"complete":{"value":[{"type":"oenId","key":"oenId-123"},{"type":"oen","key":"oen-4444"},{"type":"bpid","key":"bpid-123"}]}}}},"required":true},"responses":{"201":{"description":"key value for BPN in batch created successfully","content":{"application/json":{"schema":{"type":"array","maxItems":10000,"items":{"type":"object","required":["message","key","status"],"properties":{"message":{"type":"string","description":"The detailed message for the creation."},"details":{"type":"object","additionalProperties":{"type":"object"},"description":"An object with key/value pairs containing additional information exception."},"key":{"type":"string","description":"The created key."},"status":{"type":"integer","description":"The status code"}}}},"examples":{"complete":{"value":[{"message":"Validation failed.","details":{"type":"type oenId is not allowed."},"key":"oenId-123","status":400},{"message":"BpnDiscovery successfully created","details":null,"key":"oen-4444","status":200},{"message":"BpnDiscovery successfully created","details":null,"key":"bpid-123","status":200}]}}}}}},"description":"Create new numbers (e.g. OEN, batteryID, etc.) corresponding to BPN endpoints as batch.","method":"post","path":"/api/administration/connectors/bpnDiscovery/batch","security":[{"CatenaXOpenId":["profile"]}],"securitySchemes":{"CatenaXOpenId":{"type":"openIdConnect","openIdConnectUrl":"../.well-known/openid-configuration"}},"jsonRequestBodyExample":[{"type":"string","key":"string"}],"info":{"title":"BPN Discovery Service","description":"BPN Discovery Service to find BPN based on a local identifier.","contact":{"name":"SLDT Team"},"version":"0.0.1"},"postman":{"name":"Create new numbers (e.g. OEN, batteryID, etc.) corresponding to BPN endpoints as batch.","description":{"type":"text/plain"},"url":{"path":["api","administration","connectors","bpnDiscovery","batch"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/_versioned_docs/version-3.1.0/kits/Digital Twin Kit/Software Development View/API Specs/BPN Discovery//bpn-discovery-service +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Create new numbers (e.g. OEN, batteryID, etc.) corresponding to BPN endpoints as batch. + + + +Create new numbers (e.g. OEN, batteryID, etc.) corresponding to BPN endpoints as batch. + +
Request Body array required
+ +The request body is expecting a list of key (type, e.g. OEN, batteryID, etc.) - value (explicit number) pairs, where this service will respond with success/error message on persistance of this key-value-pairs. The BPN is hand-over by the authentication/authorization (→ token). Only the owner of a BPN can link any number (e.g. OEN, batteryID, etc.) to his BPN. + +
+ +key value for BPN in batch created successfully + +
Schema array
    details object
    + +An object with key/value pairs containing additional information exception. + +
  • property name* object
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API BPN Discovery/post-bpn-discovery.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API BPN Discovery/post-bpn-discovery.api.mdx new file mode 100644 index 00000000000..e2f76bd636c --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API BPN Discovery/post-bpn-discovery.api.mdx @@ -0,0 +1,38 @@ +--- +id: post-bpn-discovery +title: "Create new numbers (e.g. OEN, batteryID, etc.) corresponding to BPN endpoints as single entry." +description: "Create new numbers (e.g. OEN, batteryID, etc.) corresponding to BPN endpoints as single entry." +sidebar_label: "Create new numbers (e.g. OEN, batteryID, etc.) corresponding to BPN endpoints as single entry." +hide_title: true +hide_table_of_contents: true +api: {"tags":["Discovery"],"operationId":"PostBpnDiscovery","requestBody":{"description":"the request body is expecting a key (type, e.g. OEN, batteryID, etc.) - value (explicit number) pair, where this service will respond with success/error message on persistance of this key-value-pair. The BPN is hand-over by the authentication/authorization (→ token). Only the owner of a BPN can link any number (e.g. OEN, batteryID, etc.) to his BPN.","content":{"application/json":{"schema":{"title":"IdentifierTypeKeyPair","required":["type","key"],"properties":{"type":{"type":"string","minLength":1,"maxLength":200},"key":{"type":"string","minLength":1,"maxLength":200}}},"examples":{"complete":{"value":{"type":"oen","key":"oen-123"}}}}},"required":true},"responses":{"201":{"description":"key value for BPN created successfully","content":{"application/json":{"schema":{"title":"Bpn","required":["type","key","value","resourceId"],"properties":{"type":{"type":"string"},"key":{"type":"string"},"value":{"type":"string"},"resourceId":{"type":"string"}}},"examples":{"complete":{"value":{"type":"oen","key":"oen-1243","value":"bpn-123","resourceId":"1ca6f9b5-8e1d-422a-8541-9bb2cf5fe485"}}}}}}},"description":"Create new numbers (e.g. OEN, batteryID, etc.) corresponding to BPN endpoints as single entry.","method":"post","path":"/api/administration/connectors/bpnDiscovery","security":[{"CatenaXOpenId":["profile"]}],"securitySchemes":{"CatenaXOpenId":{"type":"openIdConnect","openIdConnectUrl":"../.well-known/openid-configuration"}},"jsonRequestBodyExample":{"type":"string","key":"string"},"info":{"title":"BPN Discovery Service","description":"BPN Discovery Service to find BPN based on a local identifier.","contact":{"name":"SLDT Team"},"version":"0.0.1"},"postman":{"name":"Create new numbers (e.g. OEN, batteryID, etc.) corresponding to BPN endpoints as single entry.","description":{"type":"text/plain"},"url":{"path":["api","administration","connectors","bpnDiscovery"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/_versioned_docs/version-3.1.0/kits/Digital Twin Kit/Software Development View/API Specs/BPN Discovery//bpn-discovery-service +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Create new numbers (e.g. OEN, batteryID, etc.) corresponding to BPN endpoints as single entry. + + + +Create new numbers (e.g. OEN, batteryID, etc.) corresponding to BPN endpoints as single entry. + +
Request Body required
+ +the request body is expecting a key (type, e.g. OEN, batteryID, etc.) - value (explicit number) pair, where this service will respond with success/error message on persistance of this key-value-pair. The BPN is hand-over by the authentication/authorization (→ token). Only the owner of a BPN can link any number (e.g. OEN, batteryID, etc.) to his BPN. + +
+ +key value for BPN created successfully + +
Schema
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API BPN Discovery/sidebar.js b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API BPN Discovery/sidebar.js new file mode 100644 index 00000000000..b1dd8251cad --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API BPN Discovery/sidebar.js @@ -0,0 +1 @@ +module.exports = [{"type":"doc","id":"_versioned_docs/version-3.1.0/kits/Digital Twin Kit/Software Development View/API Specs/BPN Discovery//bpn-discovery-service"},{"type":"category","label":"Discovery","link":{"type":"generated-index","title":"Discovery","slug":"/category/_versioned_docs/version-3.1.0/kits/Digital Twin Kit/Software Development View/API Specs/BPN Discovery/discovery"},"items":[{"type":"doc","id":"_versioned_docs/version-3.1.0/kits/Digital Twin Kit/Software Development View/API Specs/BPN Discovery//post-bpn-discovery","label":"Create new numbers (e.g. OEN, batteryID, etc.) corresponding to BPN endpoints as single entry.","className":"api-method post"},{"type":"doc","id":"_versioned_docs/version-3.1.0/kits/Digital Twin Kit/Software Development View/API Specs/BPN Discovery//post-batch-bpn-discovery","label":"Create new numbers (e.g. OEN, batteryID, etc.) corresponding to BPN endpoints as batch.","className":"api-method post"},{"type":"doc","id":"_versioned_docs/version-3.1.0/kits/Digital Twin Kit/Software Development View/API Specs/BPN Discovery//get-bpn-discoveries","label":"Find BPN endpoints corresponding to numbers (e.g. OEN, batteryID, etc.)","className":"api-method post"},{"type":"doc","id":"_versioned_docs/version-3.1.0/kits/Digital Twin Kit/Software Development View/API Specs/BPN Discovery//delete-bpn-discovery-by-id","label":"Delete numbers (e.g. OEN, batteryID, etc.) corresponding to BPN endpoints as single entry.","className":"api-method delete"}]}]; \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API Discovery Finder/delete-discovery-endpoint-by-resource-id.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API Discovery Finder/delete-discovery-endpoint-by-resource-id.api.mdx new file mode 100644 index 00000000000..2a0a08b5a3a --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API Discovery Finder/delete-discovery-endpoint-by-resource-id.api.mdx @@ -0,0 +1,34 @@ +--- +id: delete-discovery-endpoint-by-resource-id +title: "Delete the endpoint to BPN discovery services and the EDC discovery service." +description: "Delete the endpoint to BPN discovery services and the EDC discovery service." +sidebar_label: "Delete the endpoint to BPN discovery services and the EDC discovery service." +hide_title: true +hide_table_of_contents: true +api: {"tags":["Finder"],"operationId":"DeleteDiscoveryEndpointByResourceId","parameters":[{"name":"resourceId","in":"path","description":"The IdentifierKeyValue unique id (BASE64-URL-encoded)","required":true,"style":"simple","explode":false,"schema":{"type":"string"}}],"responses":{"204":{"description":"Discovery Endpoint deleted successfully"}},"description":"Delete the endpoint to BPN discovery services and the EDC discovery service.","method":"delete","path":"/api/administration/connectors/discovery/{resourceId}","security":[{"CatenaXOpenId":["profile"]}],"securitySchemes":{"CatenaXOpenId":{"type":"openIdConnect","openIdConnectUrl":"../.well-known/openid-configuration"}},"info":{"title":"Discovery Finder","description":"Discovery Finder to find endpoint of the BPN/EDC Discovery.","contact":{"name":"SLDT Team"},"version":"0.0.1"},"postman":{"name":"Delete the endpoint to BPN discovery services and the EDC discovery service.","description":{"type":"text/plain"},"url":{"path":["api","administration","connectors","discovery",":resourceId"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) The IdentifierKeyValue unique id (BASE64-URL-encoded)","type":"text/plain"},"type":"any","value":"","key":"resourceId"}]},"method":"DELETE"}} +sidebar_class_name: "delete api-method" +info_path: docs-kits/_versioned_docs/version-3.1.0/kits/Digital Twin Kit/Software Development View/API Specs/Discovery Finder//discovery-finder +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Delete the endpoint to BPN discovery services and the EDC discovery service. + + + +Delete the endpoint to BPN discovery services and the EDC discovery service. + +
Path Parameters
+ +Discovery Endpoint deleted successfully + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API Discovery Finder/discovery-finder.info.mdx b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API Discovery Finder/discovery-finder.info.mdx new file mode 100644 index 00000000000..408672cb3a9 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API Discovery Finder/discovery-finder.info.mdx @@ -0,0 +1,25 @@ +--- +id: discovery-finder +title: "Discovery Finder" +description: "Discovery Finder to find endpoint of the BPN/EDC Discovery." +sidebar_label: Introduction +sidebar_position: 0 +hide_title: true +custom_edit_url: null +--- + +import ApiLogo from "@theme/ApiLogo"; +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; +import Export from "@theme/ApiDemoPanel/Export"; + +Version: 0.0.1 + +# Discovery Finder + + + +Discovery Finder to find endpoint of the BPN/EDC Discovery. + +

Authentication

Contact

SLDT Team:
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API Discovery Finder/get-discovery-endpoints.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API Discovery Finder/get-discovery-endpoints.api.mdx new file mode 100644 index 00000000000..d0fd6660cb5 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API Discovery Finder/get-discovery-endpoints.api.mdx @@ -0,0 +1,42 @@ +--- +id: get-discovery-endpoints +title: "Find the endpoints to BPN discovery services and the EDC discovery service." +description: "Find the endpoints to BPN discovery services and the EDC discovery service." +sidebar_label: "Find the endpoints to BPN discovery services and the EDC discovery service." +hide_title: true +hide_table_of_contents: true +api: {"tags":["Finder"],"operationId":"GetDiscoveryEndpoints","requestBody":{"description":"The request body is expecting a list of types ( e.g. oen, bpid, etc.) to return available discovery endpoints.","content":{"application/json":{"schema":{"title":"SearchRequest","required":["types"],"properties":{"types":{"title":"types","type":"array","maxItems":10000,"items":{"type":"string"}}}},"examples":{"complete":{"value":{"types":["oen","bpid","bpn"]}}}}},"required":true},"responses":{"200":{"description":"Returns discovery endpoints based on search filter.","content":{"application/json":{"schema":{"title":"DiscoveryEndpointCollection","properties":{"endpoints":{"title":"endpoints","type":"array","maxItems":10000,"items":{"title":"DiscoveryEndpoint","required":["type","description","endpointAddress"],"properties":{"type":{"type":"string","minLength":1,"maxLength":200},"description":{"type":"string","minLength":1,"maxLength":500},"endpointAddress":{"type":"string","minLength":1,"maxLength":300},"documentation":{"type":"string","minLength":1,"maxLength":500},"resourceId":{"type":"string"}}}}}},"examples":{"complete":{"value":{"endpoints":[{"type":"oen","description":"Service to discover BPN to a particular OEN","endpointAddress":"http://...","documentation":"http://.../swagger/index.html","resourceId":"ec6f407b-4296-418c-9e4e-fb739fe72a67"},{"type":"bpid","description":"Service to discover BPN to a particular Battery Pass ID","endpointAddress":"http://...","documentation":"http://.../swagger/index.html","resourceId":"08702529-3714-4c4f-b022-346b9b4fbbe2"},{"type":"bpn","description":"Service to discover EDC to a particular BPN","endpointAddress":"http://...","documentation":"http://.../swagger/index.html","resourceId":"316417cd-0fb5-4daf-8dfa-8f68125923f1"}]}}}}}}},"description":"Find the endpoints to BPN discovery services and the EDC discovery service.","method":"post","path":"/api/administration/connectors/discovery/search","security":[{"CatenaXOpenId":["profile"]}],"securitySchemes":{"CatenaXOpenId":{"type":"openIdConnect","openIdConnectUrl":"../.well-known/openid-configuration"}},"jsonRequestBodyExample":{"types":["string"]},"info":{"title":"Discovery Finder","description":"Discovery Finder to find endpoint of the BPN/EDC Discovery.","contact":{"name":"SLDT Team"},"version":"0.0.1"},"postman":{"name":"Find the endpoints to BPN discovery services and the EDC discovery service.","description":{"type":"text/plain"},"url":{"path":["api","administration","connectors","discovery","search"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/_versioned_docs/version-3.1.0/kits/Digital Twin Kit/Software Development View/API Specs/Discovery Finder//discovery-finder +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Find the endpoints to BPN discovery services and the EDC discovery service. + + + +Find the endpoints to BPN discovery services and the EDC discovery service. + +
Request Body required
+ +The request body is expecting a list of types ( e.g. oen, bpid, etc.) to return available discovery endpoints. + +
+ +Returns discovery endpoints based on search filter. + +
Schema
    endpoints DiscoveryEndpoint[]
    + +**Possible values:** `<= 10000` + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API Discovery Finder/post-discovery-endpoint.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API Discovery Finder/post-discovery-endpoint.api.mdx new file mode 100644 index 00000000000..94ae9a6ca45 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API Discovery Finder/post-discovery-endpoint.api.mdx @@ -0,0 +1,38 @@ +--- +id: post-discovery-endpoint +title: "Define the endpoint to BPN discovery services and the EDC discovery service." +description: "Define the endpoint to BPN discovery services and the EDC discovery service." +sidebar_label: "Define the endpoint to BPN discovery services and the EDC discovery service." +hide_title: true +hide_table_of_contents: true +api: {"tags":["Finder"],"operationId":"PostDiscoveryEndpoint","requestBody":{"description":"Create new endpoint for bpn discovery service / edc discovery service. The type is uniqued. This service is allowed to administrators only","content":{"application/json":{"schema":{"title":"DiscoveryEndpoint","required":["type","description","endpointAddress"],"properties":{"type":{"type":"string","minLength":1,"maxLength":200},"description":{"type":"string","minLength":1,"maxLength":500},"endpointAddress":{"type":"string","minLength":1,"maxLength":300},"documentation":{"type":"string","minLength":1,"maxLength":500},"resourceId":{"type":"string"}}},"examples":{"complete":{"value":{"type":"oen","description":"Service to discover BPN to a particular OEN","endpointAddress":"http://...","documentation":"http://.../swagger/index.html"}}}}},"required":true},"responses":{"201":{"description":"Discovery Endpoint created successfully","content":{"application/json":{"schema":{"title":"DiscoveryEndpoint","required":["type","description","endpointAddress"],"properties":{"type":{"type":"string","minLength":1,"maxLength":200},"description":{"type":"string","minLength":1,"maxLength":500},"endpointAddress":{"type":"string","minLength":1,"maxLength":300},"documentation":{"type":"string","minLength":1,"maxLength":500},"resourceId":{"type":"string"}}},"examples":{"complete":{"value":{"type":"oen","description":"Service to discover BPN to a particular OEN","endpointAddress":"http://...","documentation":"http://.../swagger/index.html","resourceId":"ec6f407b-4296-418c-9e4e-fb739fe72a67"}}}}}}},"description":"Define the endpoint to BPN discovery services and the EDC discovery service.","method":"post","path":"/api/administration/connectors/discovery","security":[{"CatenaXOpenId":["profile"]}],"securitySchemes":{"CatenaXOpenId":{"type":"openIdConnect","openIdConnectUrl":"../.well-known/openid-configuration"}},"jsonRequestBodyExample":{"type":"string","description":"string","endpointAddress":"string","documentation":"string","resourceId":"string"},"info":{"title":"Discovery Finder","description":"Discovery Finder to find endpoint of the BPN/EDC Discovery.","contact":{"name":"SLDT Team"},"version":"0.0.1"},"postman":{"name":"Define the endpoint to BPN discovery services and the EDC discovery service.","description":{"type":"text/plain"},"url":{"path":["api","administration","connectors","discovery"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/_versioned_docs/version-3.1.0/kits/Digital Twin Kit/Software Development View/API Specs/Discovery Finder//discovery-finder +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Define the endpoint to BPN discovery services and the EDC discovery service. + + + +Define the endpoint to BPN discovery services and the EDC discovery service. + +
Request Body required
+ +Create new endpoint for bpn discovery service / edc discovery service. The type is uniqued. This service is allowed to administrators only + +
+ +Discovery Endpoint created successfully + +
Schema
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API Discovery Finder/sidebar.js b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API Discovery Finder/sidebar.js new file mode 100644 index 00000000000..d69d5fb8a55 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API Discovery Finder/sidebar.js @@ -0,0 +1 @@ +module.exports = [{"type":"doc","id":"_versioned_docs/version-3.1.0/kits/Digital Twin Kit/Software Development View/API Specs/Discovery Finder//discovery-finder"},{"type":"category","label":"Finder","link":{"type":"generated-index","title":"Finder","slug":"/category/_versioned_docs/version-3.1.0/kits/Digital Twin Kit/Software Development View/API Specs/Discovery Finder/finder"},"items":[{"type":"doc","id":"_versioned_docs/version-3.1.0/kits/Digital Twin Kit/Software Development View/API Specs/Discovery Finder//post-discovery-endpoint","label":"Define the endpoint to BPN discovery services and the EDC discovery service.","className":"api-method post"},{"type":"doc","id":"_versioned_docs/version-3.1.0/kits/Digital Twin Kit/Software Development View/API Specs/Discovery Finder//get-discovery-endpoints","label":"Find the endpoints to BPN discovery services and the EDC discovery service.","className":"api-method post"},{"type":"doc","id":"_versioned_docs/version-3.1.0/kits/Digital Twin Kit/Software Development View/API Specs/Discovery Finder//delete-discovery-endpoint-by-resource-id","label":"Delete the endpoint to BPN discovery services and the EDC discovery service.","className":"api-method delete"}]}]; \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API EDC Discovery/post-list-of-bpns-or-an-empty-array-to-retrieve-available-company-connector-authorization-required-roles-view-connectors.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API EDC Discovery/post-list-of-bpns-or-an-empty-array-to-retrieve-available-company-connector-authorization-required-roles-view-connectors.api.mdx new file mode 100644 index 00000000000..c6414300ef6 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API EDC Discovery/post-list-of-bpns-or-an-empty-array-to-retrieve-available-company-connector-authorization-required-roles-view-connectors.api.mdx @@ -0,0 +1,54 @@ +--- +id: post-list-of-bpns-or-an-empty-array-to-retrieve-available-company-connector-authorization-required-roles-view-connectors +title: "post list of bpns or an empty array to retrieve available company connector. (Authorization required - Roles: view_connectors)" +description: "Example: POST: /api/administration/connectors/discovery" +sidebar_label: "post list of bpns or an empty array to retrieve available company connector. (Authorization required - Roles: view_connectors)" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Connectors"],"description":"Example: POST: /api/administration/connectors/discovery","requestBody":{"description":"Single or List of Business Partner Number of the company.","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}},"text/json":{"schema":{"type":"array","items":{"type":"string"}}},"application/*+json":{"schema":{"type":"array","items":{"type":"string"}}}}},"responses":{"200":{"description":"Returns company connector per bpn.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"bpn":{"type":"string","description":"","nullable":true},"connectorEndpoint":{"type":"array","items":{"type":"string"},"description":"","nullable":true}},"additionalProperties":false,"description":""}}}}},"401":{"description":"The User is unauthorized"},"500":{"description":"Internal Server Error"}},"method":"post","path":"/api/administration/Connectors/discovery","security":[{"Bearer":[]}],"securitySchemes":{"Bearer":{"type":"apiKey","description":"JWT Authorization header using the Bearer scheme. \r\n\r\n Enter 'Bearer' [space] and then your token in the text input below.\r\n\r\nExample: \"Bearer 12345abcdef\"","name":"Authorization","in":"header"}},"jsonRequestBodyExample":["string"],"info":{"title":"Org.Eclipse.TractusX.Portal.Backend.Administration.Service","version":"v2"},"postman":{"name":"post list of bpns or an empty array to retrieve available company connector. (Authorization required - Roles: view_connectors)","description":{"content":"Example: POST: /api/administration/connectors/discovery","type":"text/plain"},"url":{"path":["api","administration","Connectors","discovery"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/Digital Twin Kit/Software Development View/API EDC Discovery//org-eclipse-tractusx-portal-backend-administration-service +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## post list of bpns or an empty array to retrieve available company connector. (Authorization required - Roles: view_connectors) + + + +Example: POST: /api/administration/connectors/discovery + +
Request Body array
+ +Single or List of Business Partner Number of the company. + +
  • string
Request Body array
+ +Single or List of Business Partner Number of the company. + +
  • string
Request Body array
+ +Single or List of Business Partner Number of the company. + +
  • string
+ +Returns company connector per bpn. + +
Schema array
+ +The User is unauthorized + +
+ +Internal Server Error + +
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API EDC Discovery/sidebar.js b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API EDC Discovery/sidebar.js new file mode 100644 index 00000000000..fbd8cfacb8a --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API EDC Discovery/sidebar.js @@ -0,0 +1,10 @@ +module.exports = [ +{ + "type":"category","label":"Connectors","link": + { + "type":"generated-index","title":"Connectors","slug":"/category/kits/Digital Twin Kit/Software Development View/API EDC Discovery/connectors" + }, + "items": + [{ + "type":"doc","id":"kits/Digital Twin Kit/Software Development View/API EDC Discovery//post-list-of-bpns-or-an-empty-array-to-retrieve-available-company-connector-authorization-required-roles-view-connectors","label":"post list of bpns or an empty array to retrieve available company connector. (Authorization required - Roles: view_connectors)","className":"api-method post" + }]}]; \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API Submodel/dotaas-part-2-http-rest-submodel-service-specification.info.mdx b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API Submodel/dotaas-part-2-http-rest-submodel-service-specification.info.mdx new file mode 100644 index 00000000000..5da2065f6c9 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API Submodel/dotaas-part-2-http-rest-submodel-service-specification.info.mdx @@ -0,0 +1,26 @@ +--- +id: dotaas-part-2-http-rest-submodel-service-specification +title: "DotAAS Part 2 | HTTP/REST | Submodel Service Specification" +description: "The Value Profile of the Submodel Service Specification as part of the [Specification of the Asset Administration Shell: Part 2](http://industrialdigitaltwin.org/en/content-hub)." +sidebar_label: Introduction +sidebar_position: 0 +hide_title: true +custom_edit_url: null +--- + +import ApiLogo from "@theme/ApiLogo"; +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; +import Export from "@theme/ApiDemoPanel/Export"; + +Version: V3.0.1_SSP-003 + +# DotAAS Part 2 | HTTP/REST | Submodel Service Specification + + + +The Value Profile of the Submodel Service Specification as part of the [Specification of the Asset Administration Shell: Part 2](http://industrialdigitaltwin.org/en/content-hub). +Publisher: Industrial Digital Twin Association (IDTA) April 2023 + +

Contact

Industrial Digital Twin Association (IDTA): info@idtwin.org

License

CC BY 4.0
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API Submodel/get-description.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API Submodel/get-description.api.mdx new file mode 100644 index 00000000000..340110b9c46 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API Submodel/get-description.api.mdx @@ -0,0 +1,42 @@ +--- +id: get-description +title: "Returns the self-describing information of a network resource (ServiceDescription)" +description: "Returns the self-describing information of a network resource (ServiceDescription)" +sidebar_label: "Returns the self-describing information of a network resource (ServiceDescription)" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Description API"],"operationId":"GetDescription","responses":{"200":{"description":"Requested Description","content":{"application/json":{"schema":{"type":"object","properties":{"profiles":{"minItems":1,"type":"array","items":{"type":"string","enum":["https://admin-shell.io/aas/API/3/0/AssetAdministrationShellServiceSpecification/SSP-001","https://admin-shell.io/aas/API/3/0/AssetAdministrationShellServiceSpecification/SSP-002","https://admin-shell.io/aas/API/3/0/SubmodelServiceSpecification/SSP-001","https://admin-shell.io/aas/API/3/0/SubmodelServiceSpecification/SSP-002","https://admin-shell.io/aas/API/3/0/SubmodelServiceSpecification/SSP-003","https://admin-shell.io/aas/API/3/0/AasxFileServerServiceSpecification/SSP-001","https://admin-shell.io/aas/API/3/0/AssetAdministrationShellRegistryServiceSpecification/SSP-001","https://admin-shell.io/aas/API/3/0/AssetAdministrationShellRegistryServiceSpecification/SSP-002","https://admin-shell.io/aas/API/3/0/SubmodelRegistryServiceSpecification/SSP-001","https://admin-shell.io/aas/API/3/0/SubmodelRegistryServiceSpecification/SSP-002","https://admin-shell.io/aas/API/3/0/DiscoveryServiceSpecification/SSP-001","https://admin-shell.io/aas/API/3/0/AssetAdministrationShellRepositoryServiceSpecification/SSP-001","https://admin-shell.io/aas/API/3/0/AssetAdministrationShellRepositoryServiceSpecification/SSP-002","https://admin-shell.io/aas/API/3/0/SubmodelRepositoryServiceSpecification/SSP-001","https://admin-shell.io/aas/API/3/0/SubmodelRepositoryServiceSpecification/SSP-002","https://admin-shell.io/aas/API/3/0/SubmodelRepositoryServiceSpecification/SSP-003","https://admin-shell.io/aas/API/3/0/SubmodelRepositoryServiceSpecification/SSP-004","https://admin-shell.io/aas/API/3/0/ConceptDescriptionServiceSpecification/SSP-001"]}}},"description":"The Description object enables servers to present their capabilities to the clients, in particular which profiles they implement. At least one defined profile is required. Additional, proprietary attributes might be included. Nevertheless, the server must not expect that a regular client understands them.","example":"{\n \"profiles\": [\n \"https://admin-shell.io/aas/API/3/0/AssetAdministrationShellRegistryServiceSpecification/SSP-002\",\n \"https://admin-shell.io/aas/API/3/0/SubmodelRegistryServiceSpecification/SSP-002\"\n ]\n}"}}}},"401":{"description":"Unauthorized, e.g. the server refused the authorization attempt.","content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array","items":{"type":"object","properties":{"code":{"maxLength":32,"minLength":1,"type":"string"},"correlationId":{"maxLength":128,"minLength":1,"type":"string"},"messageType":{"type":"string","enum":["Undefined","Info","Warning","Error","Exception"]},"text":{"type":"string"},"timestamp":{"pattern":"^-?(([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]))-((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|\\+00:00|-00:00)$","type":"string"}}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array","items":{"type":"object","properties":{"code":{"maxLength":32,"minLength":1,"type":"string"},"correlationId":{"maxLength":128,"minLength":1,"type":"string"},"messageType":{"type":"string","enum":["Undefined","Info","Warning","Error","Exception"]},"text":{"type":"string"},"timestamp":{"pattern":"^-?(([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]))-((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|\\+00:00|-00:00)$","type":"string"}}}}}}}}}},"x-semanticIds":["https://admin-shell.io/aas/API/Descriptor/GetDescription/3/0"],"description":"Returns the self-describing information of a network resource (ServiceDescription)","method":"get","path":"/description","servers":[{"url":"{protocol}://{host_name}:{port}/api/{version_prefix}","variables":{"protocol":{"description":"Allows access through http and https (recommended)","default":"https","enum":["http","https"]},"host_name":{"description":"Hostname of server hosting the api","default":"admin-shell.io"},"port":{"description":"80 is default for http, 443 for https","default":"443","enum":["80","443"]},"version_prefix":{"default":"v3.0","enum":["v3.0"]}}}],"info":{"title":"DotAAS Part 2 | HTTP/REST | Submodel Service Specification","description":"The Value Profile of the Submodel Service Specification as part of the [Specification of the Asset Administration Shell: Part 2](http://industrialdigitaltwin.org/en/content-hub). \nPublisher: Industrial Digital Twin Association (IDTA) April 2023","contact":{"name":"Industrial Digital Twin Association (IDTA)","email":"info@idtwin.org"},"license":{"name":"CC BY 4.0","url":"https://creativecommons.org/licenses/by/4.0/"},"version":"V3.0.1_SSP-003"},"postman":{"name":"Returns the self-describing information of a network resource (ServiceDescription)","description":{"type":"text/plain"},"url":{"path":["description"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/_versioned_docs/version-3.1.0/kits/Digital Twin Kit/Software Development View/API Specs/Submodel//dotaas-part-2-http-rest-submodel-service-specification +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Returns the self-describing information of a network resource (ServiceDescription) + + + +Returns the self-describing information of a network resource (ServiceDescription) + +
+ +Requested Description + +
Schema
    = 1`"} defaultValue={undefined}>
+ +Unauthorized, e.g. the server refused the authorization attempt. + +
Schema
    messages object[]
+ +Forbidden + +
Schema
    messages object[]
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API Submodel/get-submodel-value-only.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API Submodel/get-submodel-value-only.api.mdx new file mode 100644 index 00000000000..ab00e898fd2 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API Submodel/get-submodel-value-only.api.mdx @@ -0,0 +1,54 @@ +--- +id: get-submodel-value-only +title: "Returns the Submodel in the ValueOnly representation" +description: "Returns the Submodel in the ValueOnly representation" +sidebar_label: "Returns the Submodel in the ValueOnly representation" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Submodel API"],"operationId":"GetSubmodel-ValueOnly","parameters":[{"name":"level","in":"query","description":"Determines the structural depth of the respective resource content","required":false,"schema":{"type":"string","default":"deep","enum":["deep"]}},{"name":"extent","in":"query","description":"Determines to which extent the resource is being serialized","required":false,"schema":{"type":"string","default":"withoutBlobValue","enum":["withBlobValue"]}}],"responses":{"200":{"description":"ValueOnly representation of the Submodel","content":{"application/json":{"schema":{"properties":{"submodelElements":{"minItems":1,"type":"array","items":{"allOf":[{"allOf":[{"type":"object","properties":{"extensions":{"minItems":1,"type":"array","items":{"allOf":[{"type":"object","properties":{"semanticId":{"allOf":[{"required":["keys","type"],"type":"object","properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"type":"object","properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]},"supplementalSemanticIds":{"minItems":1,"type":"array","items":{"allOf":[{"required":["keys","type"],"type":"object","properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"type":"object","properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]}}}},{"required":["name"],"properties":{"name":{"maxLength":128,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"valueType":{"type":"string","enum":["xs:anyURI","xs:base64Binary","xs:boolean","xs:byte","xs:date","xs:dateTime","xs:decimal","xs:double","xs:duration","xs:float","xs:gDay","xs:gMonth","xs:gMonthDay","xs:gYear","xs:gYearMonth","xs:hexBinary","xs:int","xs:integer","xs:long","xs:negativeInteger","xs:nonNegativeInteger","xs:nonPositiveInteger","xs:positiveInteger","xs:short","xs:string","xs:time","xs:unsignedByte","xs:unsignedInt","xs:unsignedLong","xs:unsignedShort"]},"value":{"type":"string"},"refersTo":{"minItems":1,"type":"array","items":{"allOf":[{"required":["keys","type"],"type":"object","properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"type":"object","properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]}}}}]}}}},{"required":["modelType"],"properties":{"category":{"maxLength":128,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"idShort":{"type":"string","allOf":[{"maxLength":128,"minLength":1},{"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$"},{"pattern":"^[a-zA-Z][a-zA-Z0-9_]*$"}]},"displayName":{"minItems":1,"type":"array","items":{"allOf":[{"required":["language","text"],"type":"object","properties":{"language":{"pattern":"^(([a-zA-Z]{2,3}(-[a-zA-Z]{3}(-[a-zA-Z]{3}){2})?|[a-zA-Z]{4}|[a-zA-Z]{5,8})(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-(([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3}))*(-[0-9A-WY-Za-wy-z](-([a-zA-Z0-9]){2,8})+)*(-[xX](-([a-zA-Z0-9]){1,8})+)?|[xX](-([a-zA-Z0-9]){1,8})+|((en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang)))$","type":"string"},"text":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}},{"properties":{"text":{"maxLength":128}}}]}},"description":{"minItems":1,"type":"array","items":{"allOf":[{"required":["language","text"],"type":"object","properties":{"language":{"pattern":"^(([a-zA-Z]{2,3}(-[a-zA-Z]{3}(-[a-zA-Z]{3}){2})?|[a-zA-Z]{4}|[a-zA-Z]{5,8})(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-(([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3}))*(-[0-9A-WY-Za-wy-z](-([a-zA-Z0-9]){2,8})+)*(-[xX](-([a-zA-Z0-9]){1,8})+)?|[xX](-([a-zA-Z0-9]){1,8})+|((en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang)))$","type":"string"},"text":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}},{"properties":{"text":{"maxLength":1023}}}]}},"modelType":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataSpecificationIec61360","Entity","File","MultiLanguageProperty","Operation","Property","Range","ReferenceElement","RelationshipElement","Submodel","SubmodelElementCollection","SubmodelElementList"]}}}]},{"type":"object","properties":{"semanticId":{"allOf":[{"required":["keys","type"],"type":"object","properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"type":"object","properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]},"supplementalSemanticIds":{"minItems":1,"type":"array","items":{"allOf":[{"required":["keys","type"],"type":"object","properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"type":"object","properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]}}}},{"required":["modelType"],"type":"object","properties":{"qualifiers":{"minItems":1,"type":"array","items":{"allOf":[{"type":"object","properties":{"semanticId":{"allOf":[{"required":["keys","type"],"type":"object","properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"type":"object","properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]},"supplementalSemanticIds":{"minItems":1,"type":"array","items":{"allOf":[{"required":["keys","type"],"type":"object","properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"type":"object","properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]}}}},{"required":["type","valueType"],"properties":{"kind":{"type":"string","enum":["ConceptQualifier","TemplateQualifier","ValueQualifier"]},"type":{"maxLength":128,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"valueType":{"type":"string","enum":["xs:anyURI","xs:base64Binary","xs:boolean","xs:byte","xs:date","xs:dateTime","xs:decimal","xs:double","xs:duration","xs:float","xs:gDay","xs:gMonth","xs:gMonthDay","xs:gYear","xs:gYearMonth","xs:hexBinary","xs:int","xs:integer","xs:long","xs:negativeInteger","xs:nonNegativeInteger","xs:nonPositiveInteger","xs:positiveInteger","xs:short","xs:string","xs:time","xs:unsignedByte","xs:unsignedInt","xs:unsignedLong","xs:unsignedShort"]},"value":{"type":"string"},"valueId":{"allOf":[{"required":["keys","type"],"type":"object","properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"type":"object","properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]}}}]}},"modelType":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataSpecificationIec61360","Entity","File","MultiLanguageProperty","Operation","Property","Range","ReferenceElement","RelationshipElement","Submodel","SubmodelElementCollection","SubmodelElementList"]}}},{"type":"object","properties":{"embeddedDataSpecifications":{"minItems":1,"type":"array","items":{"required":["dataSpecification","dataSpecificationContent"],"type":"object","properties":{"dataSpecification":{"allOf":[{"required":["keys","type"],"type":"object","properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"type":"object","properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]},"dataSpecificationContent":{"oneOf":[{"allOf":[{"required":["modelType"],"type":"object","properties":{"modelType":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataSpecificationIec61360","Entity","File","MultiLanguageProperty","Operation","Property","Range","ReferenceElement","RelationshipElement","Submodel","SubmodelElementCollection","SubmodelElementList"]}}},{"required":["preferredName"],"properties":{"preferredName":{"minItems":1,"type":"array","items":{"allOf":[{"required":["language","text"],"type":"object","properties":{"language":{"pattern":"^(([a-zA-Z]{2,3}(-[a-zA-Z]{3}(-[a-zA-Z]{3}){2})?|[a-zA-Z]{4}|[a-zA-Z]{5,8})(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-(([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3}))*(-[0-9A-WY-Za-wy-z](-([a-zA-Z0-9]){2,8})+)*(-[xX](-([a-zA-Z0-9]){1,8})+)?|[xX](-([a-zA-Z0-9]){1,8})+|((en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang)))$","type":"string"},"text":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}},{"properties":{"text":{"maxLength":255}}}]}},"shortName":{"minItems":1,"type":"array","items":{"allOf":[{"required":["language","text"],"type":"object","properties":{"language":{"pattern":"^(([a-zA-Z]{2,3}(-[a-zA-Z]{3}(-[a-zA-Z]{3}){2})?|[a-zA-Z]{4}|[a-zA-Z]{5,8})(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-(([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3}))*(-[0-9A-WY-Za-wy-z](-([a-zA-Z0-9]){2,8})+)*(-[xX](-([a-zA-Z0-9]){1,8})+)?|[xX](-([a-zA-Z0-9]){1,8})+|((en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang)))$","type":"string"},"text":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}},{"properties":{"text":{"maxLength":18}}}]}},"unit":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"unitId":{"allOf":[{"required":["keys","type"],"type":"object","properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"type":"object","properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]},"sourceOfDefinition":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"symbol":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"dataType":{"type":"string","enum":["BLOB","BOOLEAN","DATE","FILE","HTML","INTEGER_COUNT","INTEGER_CURRENCY","INTEGER_MEASURE","IRDI","IRI","RATIONAL","RATIONAL_MEASURE","REAL_COUNT","REAL_CURRENCY","REAL_MEASURE","STRING","STRING_TRANSLATABLE","TIME","TIMESTAMP"]},"definition":{"minItems":1,"type":"array","items":{"allOf":[{"required":["language","text"],"type":"object","properties":{"language":{"pattern":"^(([a-zA-Z]{2,3}(-[a-zA-Z]{3}(-[a-zA-Z]{3}){2})?|[a-zA-Z]{4}|[a-zA-Z]{5,8})(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-(([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3}))*(-[0-9A-WY-Za-wy-z](-([a-zA-Z0-9]){2,8})+)*(-[xX](-([a-zA-Z0-9]){1,8})+)?|[xX](-([a-zA-Z0-9]){1,8})+|((en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang)))$","type":"string"},"text":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}},{"properties":{"text":{"maxLength":1023}}}]}},"valueFormat":{"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"valueList":{"required":["valueReferencePairs"],"type":"object","properties":{"valueReferencePairs":{"minItems":1,"type":"array","items":{"required":["value","valueId"],"type":"object","properties":{"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"valueId":{"allOf":[{"required":["keys","type"],"type":"object","properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}},{"properties":{"referredSemanticId":{"required":["keys","type"],"type":"object","properties":{"type":{"type":"string","enum":["ExternalReference","ModelReference"]},"keys":{"minItems":1,"type":"array","items":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","enum":["AnnotatedRelationshipElement","AssetAdministrationShell","BasicEventElement","Blob","Capability","ConceptDescription","DataElement","Entity","EventElement","File","FragmentReference","GlobalReference","Identifiable","MultiLanguageProperty","Operation","Property","Range","Referable","ReferenceElement","RelationshipElement","Submodel","SubmodelElement","SubmodelElementCollection","SubmodelElementList"]},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"}}}}}}}}]}}}}}},"value":{"maxLength":2000,"minLength":1,"pattern":"^([\\t\\n\\r -퟿- ]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$","type":"string"},"levelType":{"required":["max","min","nom","typ"],"type":"object","properties":{"min":{"type":"boolean"},"nom":{"type":"boolean"},"typ":{"type":"boolean"},"max":{"type":"boolean"}}},"modelType":{"pattern":"DataSpecificationIec61360","type":"string"}}}]}]}}}}}}]}}}}}}},"400":{"description":"Bad Request, e.g. the request parameters of the format of the request body is wrong.","content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array","items":{"type":"object","properties":{"code":{"maxLength":32,"minLength":1,"type":"string"},"correlationId":{"maxLength":128,"minLength":1,"type":"string"},"messageType":{"type":"string","enum":["Undefined","Info","Warning","Error","Exception"]},"text":{"type":"string"},"timestamp":{"pattern":"^-?(([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]))-((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|\\+00:00|-00:00)$","type":"string"}}}}}}}}},"401":{"description":"Unauthorized, e.g. the server refused the authorization attempt.","content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array","items":{"type":"object","properties":{"code":{"maxLength":32,"minLength":1,"type":"string"},"correlationId":{"maxLength":128,"minLength":1,"type":"string"},"messageType":{"type":"string","enum":["Undefined","Info","Warning","Error","Exception"]},"text":{"type":"string"},"timestamp":{"pattern":"^-?(([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]))-((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|\\+00:00|-00:00)$","type":"string"}}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array","items":{"type":"object","properties":{"code":{"maxLength":32,"minLength":1,"type":"string"},"correlationId":{"maxLength":128,"minLength":1,"type":"string"},"messageType":{"type":"string","enum":["Undefined","Info","Warning","Error","Exception"]},"text":{"type":"string"},"timestamp":{"pattern":"^-?(([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]))-((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|\\+00:00|-00:00)$","type":"string"}}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array","items":{"type":"object","properties":{"code":{"maxLength":32,"minLength":1,"type":"string"},"correlationId":{"maxLength":128,"minLength":1,"type":"string"},"messageType":{"type":"string","enum":["Undefined","Info","Warning","Error","Exception"]},"text":{"type":"string"},"timestamp":{"pattern":"^-?(([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]))-((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|\\+00:00|-00:00)$","type":"string"}}}}}}}}},"default":{"description":"Default error handling for unmentioned status codes","content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array","items":{"type":"object","properties":{"code":{"maxLength":32,"minLength":1,"type":"string"},"correlationId":{"maxLength":128,"minLength":1,"type":"string"},"messageType":{"type":"string","enum":["Undefined","Info","Warning","Error","Exception"]},"text":{"type":"string"},"timestamp":{"pattern":"^-?(([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]))-((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|\\+00:00|-00:00)$","type":"string"}}}}}}}}}},"x-semanticIds":["https://admin-shell.io/aas/API/GetSubmodelById/3/0"],"description":"Returns the Submodel in the ValueOnly representation","method":"get","path":"/submodel/$value","servers":[{"url":"{protocol}://{host_name}:{port}/api/{version_prefix}","variables":{"protocol":{"description":"Allows access through http and https (recommended)","default":"https","enum":["http","https"]},"host_name":{"description":"Hostname of server hosting the api","default":"admin-shell.io"},"port":{"description":"80 is default for http, 443 for https","default":"443","enum":["80","443"]},"version_prefix":{"default":"v3.0","enum":["v3.0"]}}}],"info":{"title":"DotAAS Part 2 | HTTP/REST | Submodel Service Specification","description":"The Value Profile of the Submodel Service Specification as part of the [Specification of the Asset Administration Shell: Part 2](http://industrialdigitaltwin.org/en/content-hub). \nPublisher: Industrial Digital Twin Association (IDTA) April 2023","contact":{"name":"Industrial Digital Twin Association (IDTA)","email":"info@idtwin.org"},"license":{"name":"CC BY 4.0","url":"https://creativecommons.org/licenses/by/4.0/"},"version":"V3.0.1_SSP-003"},"postman":{"name":"Returns the Submodel in the ValueOnly representation","description":{"type":"text/plain"},"url":{"path":["submodel","$value"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"description":{"content":"Determines the structural depth of the respective resource content","type":"text/plain"},"key":"level","value":""},{"disabled":false,"description":{"content":"Determines to which extent the resource is being serialized","type":"text/plain"},"key":"extent","value":""}],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/_versioned_docs/version-3.1.0/kits/Digital Twin Kit/Software Development View/API Specs/Submodel//dotaas-part-2-http-rest-submodel-service-specification +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Returns the Submodel in the ValueOnly representation + + + +Returns the Submodel in the ValueOnly representation + +
Query Parameters
+ +ValueOnly representation of the Submodel + +
Schema
    = 1`"} defaultValue={undefined}>
+ +Bad Request, e.g. the request parameters of the format of the request body is wrong. + +
Schema
    messages object[]
+ +Unauthorized, e.g. the server refused the authorization attempt. + +
Schema
    messages object[]
+ +Forbidden + +
Schema
    messages object[]
+ +Internal Server Error + +
Schema
    messages object[]
+ +Default error handling for unmentioned status codes + +
Schema
    messages object[]
+ \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API Submodel/sidebar.js b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API Submodel/sidebar.js new file mode 100644 index 00000000000..b0e1ee3922f --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/API Submodel/sidebar.js @@ -0,0 +1 @@ +module.exports = [{"type":"doc","id":"_versioned_docs/version-3.1.0/kits/Digital Twin Kit/Software Development View/API Specs/Submodel//dotaas-part-2-http-rest-submodel-service-specification"},{"type":"category","label":"Submodel API","link":{"type":"generated-index","title":"Submodel API","slug":"/category/_versioned_docs/version-3.1.0/kits/Digital Twin Kit/Software Development View/API Specs/Submodel/submodel-api"},"items":[{"type":"doc","id":"_versioned_docs/version-3.1.0/kits/Digital Twin Kit/Software Development View/API Specs/Submodel//get-submodel-value-only","label":"Returns the Submodel in the ValueOnly representation","className":"api-method get"}]},{"type":"category","label":"Description API","link":{"type":"generated-index","title":"Description API","slug":"/category/_versioned_docs/version-3.1.0/kits/Digital Twin Kit/Software Development View/API Specs/Submodel/description-api"},"items":[{"type":"doc","id":"_versioned_docs/version-3.1.0/kits/Digital Twin Kit/Software Development View/API Specs/Submodel//get-description","label":"Returns the self-describing information of a network resource (ServiceDescription)","className":"api-method get"}]}]; \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/_category_.json b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/_category_.json new file mode 100644 index 00000000000..e5c5b7565a3 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/_category_.json @@ -0,0 +1,3 @@ +{ + "label": "Development View" +} diff --git a/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/page_software-development-view.md b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/page_software-development-view.md new file mode 100644 index 00000000000..62fae2cda79 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/Software Development View/page_software-development-view.md @@ -0,0 +1,459 @@ +--- +id: Specification Digital Twin KIT +title: Developing with the DT KIT +description: 'Digital Twin KIT' +sidebar_position: 4 +--- + + + + +![DT Kit Pictotogram](../assets/img/DTKIT_pictogram_blue.png) + +### Digital Twin KIT + + +## API Specifications + +All openAPI-specifications for the Digital Twin Kit services are rendered in the section [of these docs](API%20AAS%20Discovery/dotaas-part-2-http-rest-discovery-service-specification.info.mdx) + +### Asset Administration Shell + +The Asset Administration Shell (AAS) is a specification that is released by the[Industrial Digital Twin Association (IDTA)](https://industrialdigitaltwin.org/) +with a perspective to be adopted by the [International Electrotechnical Commission (IEC)](https://www.iec.ch/homepage). +Its mission is defining how “information about assets […] can be exchanged in a meaningful way between partners in a value +creation network”. As such, it is well-suited to contribute to the toolbox of Catena-X. While the Spec offers an extensive +suite of meta-model elements and APIs, Catena-X only uses a small subset. What exactly is defined in the Catena-X standard +CX - 0002. + +#### Submodels + +An Asset Administration Shell is organized in Submodels. Each Submodel represents a self-contained aspect of an asset - +typical examples are the *Nameplate* or *SingleLevelBomAsBuilt* (which denotes the hierarchical composition of parts into +a whole). As different aspects of an Asset may be known to different parties on the value-chain, Submodels for a single asset +must be capable to run independently of each other. The specification explicitly allows this, enabling easy cross-company +data integration. + +Recognizing that not all use-cases require the full functionality of the AAS-Spec, Catena-X demands that Data +Providers offer only a subset of the SubmodelServiceSpecification - namely the `$value` serialization. This is an abbreviated +notation of an AAS-Submodel that is focused on data instead of context. While it is advisable to expose Submodels with help of +a full-fletched AAS-server SDK that provides the content-modifiers and API-endpoints out-of-the-box, this is not yet +mandatory. + +#### Digital Twin Registry + +What Catena-X calls the "Digital Twin Registry" (DTR) is actually the union of two different services that the AAS specification +has specified. For the sake of simplicity, they are both defined in a single component. The DTR serves a similar function as the +index in a book: When trying to discover information, it's convenient to have an overview WHAT one will find, HOW and WHERE to +access it. The registry caters exactly that information: For every asset it knows, it holds a number of Submodel Descriptors and in +these, a consumer app will find information what it will find (via the semanticId) and how to access the information (endpoint, +security setup etc.). As the information contained in the DTR may be sensitive and not be trusted with a central entity, +every data provider must offer his own DTR as an EDC Data Asset. While it is only mandatory to implement the GET endpoints +as specified in the [Development View](https://eclipse-tractusx.github.io/docs-kits/next/kits/Digital%20Twin%20Kit/Software%20Development%20View/Specification%20Digital%20Twin%20Kit), +data providers may find it useful to implement other requests for registration on top. Either way, they are free to populate +their DTR in any way they desire. + +### Catena-X specific Services + +DTRs hold sensitive information: a SubmodelDescriptor may not give access to the actual Submodel-data but all in cumulo hint at +production volumes as each Twin represents an asset. Therefore, Catena-X implements decentral DTRs (DDTR), each running with a +business partner. [In an IDTA-Whitepaper](https://industrialdigitaltwin.org/en/wp-content/uploads/sites/2/2023/06/Decentralized-Registries-Taxonomy-of-decentralized-registries-and-an-architectural-overview_.pdf ), +several high-level concepts for DDTRs are introduced. The AAS-specification remains agnostic to the approaches and endorses +none of them. Catena-X must deal with the additional complexity that stems from the interaction with the EDC. + +Leveraging the native capabilities of the EDC and the EDC Discovery Service, Catena-X uses a discovery pattern that has the +same capability as a central [Digital Twin Registry](#digital-twin-registry): It allows to start a Discovery Process with only an AssetId and +As none of the options fit the data-space-specific requirements of Catena-X entirely, yet a different approach is implemented: +However, in Catena-X some of the data is deemed so sensitive that a central authority can't be +trusted with it. Thus, each Data Provider will run their own DTR which poses a challenge for discovery. After all, a +Data Consumer must still find out the address where to fetch the data from. That's why Catena-X has introduced a +three-step discovery pattern made up of the central microservices Discovery Finder, BPN Discovery (or several of them) +and finally the EDC discovery that is part of the CX-Portal. They are also part of this Kit. + +## Discovery Sequence + +The services that make up the Digital Twin Kit partly rely on each other. Executing them in the right sequence allows +a Data Consumer to get access to data whose location was previously unknown. However, this discovery process relies on a +set of assumptions. Most relevant is the presence of the discovery services defined in CX - 0053 ([Discovery Finder](./API%20Discovery%20Finder/discovery-finder.info.mdx), +[BPN Discovery](./API%20BPN%20Discovery/bpn-discovery-service.info.mdx)) and CX - 0001 ([EDC Discovery](./API%20EDC%20Discovery/post-list-of-bpns-or-an-empty-array-to-retrieve-available-company-connector-authorization-required-roles-view-connectors.api.mdx)). +As portrayed in the [Operation View](../page_software-operation-view.md), these +discovery services are assumed to run centrally in a data space. A concept for decentralization will be validated in the +future. + +Apart from their presence, the discovery services also must be populated with data by the data providers. This process +is portrayed in the "setup of registration" section of the diagram below (steps 1-5). They describe the assumed calls +that have been made prior to consumer-side discovery. While step 1 was completed during onboarding of a company to the +Catena-X network, step 2 was executed by the operating company offering the BPN-Discovery Service. Step 3-5 are in the +responsibility of each Data Provider. + +In steps 6-17, the consumer fetches the previously registered data from the central services and initiates data access. +Please note that especially steps 12 & 13 (negotiation at EDC) are simplified in this figure as they are explained in the +Connector Kit already. The discovery sequence ends with step 17, after which the data consumer can make a request for the +data that he set out to find. + +![DT Kit Discovery Sequence](../assets/img/DTKIT_discovery_seq.svg) + +Some use-cases assume that a consumer has prior knowledge of an asset's location in a provider's infrastructure. That's +why discovering data will not always necessitate executing the whole discovery sequence above. For example, +a consumer may know not only the assetId but also the provider's BPN, allowing him to enter the sequence at step 10. +If this prior knowledge is given under all circumstances, registration steps 2-3 can be skipped provider-side. + + +## Sample Data + +Generic sample data for relevant data objects is contained in the openAPI-specs of the respective services. This chapter +contains data structures that are more specifically designed for use in the Digital Twin Kit. They are compliant with +the base-specifications (like AAS) but restrict the application even further for use in this Dataspace. + +### Registration at Digital Twin Registry + +The Digital Twin Registry connects an asset (identified by its assetIds) with links to the Submodels. Since Catena-X uses +the EDC as a gateway for all inter-company interaction, the Digital Twin Registry must account for that. By design, it +includes the possibility to add additional context via the fields `subprotocol`, `subprotocolBody` and `subprotocolEncoding`. +`subprotocol` will always be set to `DSP`, short for the [Dataspace Protocol](https://docs.internationaldataspaces.org/ids-knowledgebase/v/dataspace-protocol/overview/readme) +as standardized by the IDSA. `subprotocolEncoding` is always set to `plain`. + +There's three relevant inputs to discover a referenced Submodel in Catena-X: +- The `subprotocolBody` contains two pieces of information, assigned with `=` and separated by `;`: + - `dspEndpoint` is the URL of the Data Plane where a Data Consumer can negotiate for access to this Submodel. + - When calling the /catalog API of that Data Plane, she should filter for dcat:Dataset entries that have are identified + by the `id` mentioned in the subprotocolBody. +- After having successfully negotiated for a Data Offer associated with the `id`, the Data Consumer can query the Data Plane +of the given EDC to access the data. For that, she must use the URL given in the Submodel-Descriptor's `href` field and +append the additional URL-segment /$value + +#### Registering a new Twin + +Registration of a new twin is (at least in Catena-X) equivalent to the creation of a new twin. Thus, a Data Provider +should +always ensure that there is no shell-descriptor created for the respective assetIds yet. If there already is one, +the submodel-descriptor should +be [added to the existing shell-descriptor](#registering-a-new-submodel-at-an-existing-twin). + +`POST /shell-descriptors` + +```json +{ + "id": "urn:uuid:e5c96ab5-896a-1234-8761-efd74777ca97", + "idShort": "myAas", + "specificAssetIds": [ + { + "name": "manufacturerPartId", + "value": "BPN:123-345-567103", + "externalSubjectId": { + "type": "ExternalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "{{BPN of the a party priviledged}}" + } + ] + } + } + ], + "submodelDescriptors": [ + { + "id": "e5c96ab5-896a-482c-8761-efd74777ca97", + "semanticId": { + "type": "ExternalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "urn:bamm:io.catenax.material_for_recycling:1.1.0#MaterialForRecycling" + } + ] + }, + "endpoints": [ + { + "interface": "SUBMODEL-3.0", + "protocolInformation": { + "href": "https://edc.data.plane/mypath/submodel", + "endpointProtocol": "HTTP", + "endpointProtocolVersion": [ + "1.1" + ], + "subprotocol": "DSP", + "subprotocolBody": "id=123;dspEndpoint=http://edc.control.plane/", + "subprotocolBodyEncoding": "plain", + "securityAttributes": [ + { + "type": "NONE", + "key": "NONE", + "value": "NONE" + } + ] + } + } + ] + } + ] +} +``` + +#### Registering a new Submodel at an existing Twin + +`POST /shell-descriptors/{{aasId}}` + +```json +{ + "id": "e5c96ab5-896a-482c-8761-efd74777ca97", + "semanticId": { + "type": "ExternalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "urn:bamm:io.catenax.material_for_recycling:1.1.0#MaterialForRecycling" + } + ] + }, + "endpoints": [ + { + "interface": "SUBMODEL-3.0", + "protocolInformation": { + "href": "https://edc.data.plane/mypath/submodel", + "endpointProtocol": "HTTP", + "endpointProtocolVersion": [ + "1.1" + ], + "subprotocol": "DSP", + "subprotocolBody": "id=123;dspEndpoint=http://edc.control.plane/", + "subprotocolBodyEncoding": "plain", + "securityAttributes": [ + { + "type": "NONE", + "key": "NONE", + "value": "NONE" + } + ] + } + } + ] +} + +``` + + + +### Registration at EDC + +Integration between the EDC and AAS-Components in the dataspace is a strict prerequisite for robust discovery and data access +in the Catena-X dataspace. As all data that crosses company-boundaries must be exchanged via an EDC, CX-0002 provides +the necessary normative statements to facilitate interoperable data exchange. + +One relevant question is how the EDC-shielded services of this Kit should register with the Asset endpoint of the EDC Management API. +While the EDC's /v3/assets endpoint is internal to the Data Provider only, the objects are also available via the /catalog API +that is specified in the Dataspace Protocol. + +The EDC uses json-ld for Json-ld is a serialization for RDF graphs (see [Resource Description Framework](https://www.w3.org/RDF/)). The json-ld +`@context` section can declare the namespaces that resources explicitly mentioned in the rest of the document belong to. +It may also define default namespace with `@vocab` for resources without explicitly stated namespaces. Outside of +the "@context" section, the `@type` property always defines the class that an object belongs to. +As stated in the openAPI-specification of the EDC Management API's relevant endpoint, all entries in the `asset/properties` +object and the `privateProperties` object can be chosen freely. The section on the `dataAddress` is structured depending +on the `edc:type` property. The example below is determined by the [HttpDataAddress](https://github.com/eclipse-edc/Connector/blob/main/spi/common/core-spi/src/main/java/org/eclipse/edc/spi/types/domain/HttpDataAddress.java) class. Its parameters determine +the behavior of the EDC's HTTP data plane at runtime. How they should be used is not subject to standardization since +they +aren't visible in the Dataspace. Certain values may have to be set in a certain way to enable the data exchange via +the DT Kit. + +It presents the backend resources as dcat:DataSets with properties funnelled through from the assets-API. These +properties can be freely set by the Data Provider. + +For successful discovery of Digital Twins, it is critical to register Submodels and Digital-Twin-Registries in a +harmonized way. The following overview shall explain how the `asset/properties` section could be used. + +- `https://purl.org/dc/terms/type` (mandatory as per CX-0018): denotes the type of Asset that is registered. The property +points to an RDF resource that can be either `https://w3id.org/catenax/taxonomy#DigitalTwinRegistry` or `https://w3id.org/catenax/taxonomy#Submodel` + +- `https://w3id.org/catenax/common/version` (mandatory as per CX-0002): version-string of the registered type of resource. + For all endpoints related to the AAS-spec, this must be set to "3.0" as that's the current normative version of the + AAS specification. + +#### Digital Twin Registry as EDC Data Asset + +- `asset:prop:type` (mandatory as per CX-0002): denotes the type of Asset that is registered. For all AAS-registries + this property must be set to `data.core.digitalTwinRegistry`. This property will likely be removed in the future as + it was overridden by the mandate in CX-0018. + +```json +{ + "@context": { + "edc": "https://w3id.org/edc/v0.0.1/ns/", + "cx-common": "https://w3id.org/catenax/ontology/common#", + "cx-taxo": "https://w3id.org/catenax/taxonomy#", + "dct": "https://purl.org/dc/terms/" + }, + "@id": "{{ _.assetId }}", + "properties": { + "dct:type": {"@id": "cx-taxo:DigitalTwinRegistry"}, + "cx-common:version": "3.0", + "asset:prop:type": "data.core.digitalTwinRegistry" + }, + "privateProperties": { + }, + "dataAddress": { + "@type": "DataAddress", + "type": "HttpData", + "baseUrl": "{{ _.url_backend }}", + "proxyQueryParams": "true", + "proxyPath": "true", + "proxyMethod": "false", + "oauth2:tokenUrl": "{{ _.url_keycl_backend }}", + "oauth2:clientId": "{{ _.client_id_backend }}", + "oauth2:clientSecretKey":"{{ _.sec_name_vault }}" + } +} +``` +The HttpDataAddress above configures the following behavior: +- `baseUrl`: After successful negotiation, the data plane will delegate requests here and forward the answer. For the DTR, +it's critical that the URL inserted here must end before the /shell-descriptors and /lookup segments. +- `proxyPath`: This string can be either "true" or "false". If set to true, the EDC Data Plane will always forward +the URL-segments added to the request to the dataplane to the backend URL. For example: If `baseUrl="http://mydtr.com/api/v3"` +and `proxyPath="true"` then an authorized request to `http://dataplane.com/shell-descriptors` will be delegated to the backend +`http://mydtr.com/api/v3/shell-descriptors` +- `proxyQueryParams`: This string can be either "true" or "false". If set to true, the EDC Data Plane will always forward + query parameters to the backend. For the /lookup APIs of the registry, this is critical. +- `proxyMethod`: This string can be either "true" or "false". If "false", the Data Plane will change the HTTP-Verb to GET +for all incoming requests. As there is no scenario in the Catena-X scope where a business partner manipulates data in a +foreign DTR, it should be set to false. + + +#### Submodel as EDC Data Asset + +A Data Provider may create +one Data Asset per Submodel or bundle them into one - yielding a smaller catalogue hence better performance. The discovery-sequence, +does not strictly require uniformity here. Not even the typization via the EDC-property `dct:type` is functionally +necessary. The discovery-sequence is still intact since a Data Consumer will always know the Submodel's +location relative to the Data Plane's `baseUrl` from the submodel-descriptor's `href` field. +The EDC-Asset shielding the Submodel is known from the descriptor's `subprotocolBody` containing the Control-Plane-URL and +id of the EDC-Asset. For more details, see section [Submodel Descriptor in the Digital Twin Registry](#registration-at-digital-twin-registry). + +The following shows an example for registration of a single AAS-Submodel as EDC Data Asset. The +`properties` section is analogous to that of the DTR but additionally holds `hasSemantics:semanticId`. It is +recommended and shall signify the meaning of the Submodel's payload. + +```json +{ + "@context": { + "edc": "https://w3id.org/edc/v0.0.1/ns/", + "cx-common": "https://w3id.org/catenax/ontology/common#", + "cx-taxo": "https://w3id.org/catenax/taxonomy#", + "dct": "https://purl.org/dc/terms/", + "aas-semantics": "https://admin-shell.io/aas/3/0/HasSemantics/" + }, + "@id": "{{ _.assetId }}", + "properties": { + "dct:type": {"@id": "cx-taxo:Submodel"}, + "cx-common:version": "3.0", + "aas-semantics:semanticId": {"@id": "urn:bamm:io.catenax.asset_tracker_links:1.0.0#AssetTrackerLinks"} + }, + "privateProperties": { + }, + "dataAddress": { + "@type": "DataAddress", + "type": "HttpData", + "baseUrl": "{{ _.url_backend }}", + "oauth2:tokenUrl": "{{ _.url_keycl_backend }}", + "oauth2:clientId": "{{ _.client_id_backend }}", + "oauth2:clientSecretKey":"{{ _.sec_name_vault }}", + "proxyQueryParams": "false", + "proxyPath": "true", + "proxyMethod": "false" + } +} +``` + +There is no normative guidance yet on how to register multiple Submodels bundled together yet. These bundles may include +all the Submodels of a specific semanticId, all Submodels of an asset or any other arbitrary quality. This may be added to +CX-0002 in future iterations. Even though the IDTA specifies a [Submodel Repository API](https://app.swaggerhub.com/apis/Plattform_i40/SubmodelRepositoryServiceSpecification/V3.0.1_SSP-002), +in the context of the Catena-X architecture it is not strictly necessary to adhere to it. Submodels will be found regardless, +given the URL-path relative to the `baseUrl` is appended correctly to the Data Plane's URL in the `href` field. The only +differences are the changed typization. `proxyPath` parameter should be set `"true"` either way. + +```json +{ + "@context": { + "edc": "https://w3id.org/edc/v0.0.1/ns/", + "cx-common": "https://w3id.org/catenax/ontology/common#", + "cx-taxo": "https://w3id.org/catenax/taxonomy#", + "dct": "https://purl.org/dc/terms/" + }, + "@id": "{{ _.assetId }}", + "properties": { + "dct:type": {"@id": "cx-taxo:SubmodelBundle"}, + "cx-common:version": "3.0" + }, + "privateProperties": { + }, + "dataAddress": { + "@type": "DataAddress", + "type": "HttpData", + "baseUrl": "{{ _.url_backend }}", + "oauth2:tokenUrl": "{{ _.url_keycl_backend }}", + "oauth2:clientId": "{{ _.client_id_backend }}", + "oauth2:clientSecretKey":"{{ _.sec_name_vault }}", + "proxyQueryParams": "false", + "proxyPath": "true", + "proxyMethod": "false" + } +} +``` + +### EDC Usage Policies + +The decision what policies shall be implemented for the exchange of data is at the discretion of each use-case and cannot +be standardized in the context of the semantics-standards or the DT Kit. + +## Data Provisioning + +### Versioning + +Versioning in the Catena-X network is an essential task. This holds true for Digital Twins more specifically, too. The +network builds on several specifications where changes in API or specifications could break existing communication +channels. +In a simple scenario (where the Data Provider offers access to a Submodel via DTR and a Data Consumer GETs both +resources), +these are the layers of complexity: + +| Versioned Object | Presence in the [DT-Discovery](#discovery-sequence) Process | Description | Method to increment | +|--------------------|-------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------| +| Dataspace Protocol | 12, 22 | The body of the `{{consumerControlPlane}}/v2/catalog/request`-request points to a versioned endpoint of a business partner's DSP endpoint like `{{providerControlPlane}}/api/v1/dsp` | Unclear, under discussion in Connector Kit. | +| AAS Specification | 4, 5, 15, 25 | For all AAS-related EDC-Assets (styled as dcat:Dataset in the catalog), a property cx-common:version must be added referring to the major and minor version of the AAS-spec. | Unclear, under discussion in DT Kit. | +| Data Model Version | 5, 21, 29 | The structure of the Submodel is determined by the aspect-model's URN. It includes a section on versioning. | A new version of the schema requires setup of a new submodel. This includes registration at the DTR. | + +Here's a list of duties for Data Providers in case they integrate a new Submodel (or version of an existing one) to an existing +twin: + +- Expose a new Submodel to the Dataspace. If its URL is a subpath of one that's already registered as a EDC-Asset, +there is no need to specifically register it as a new EDC-Asset and create a Contract Definition for it. However, +if there is no such EDC-Asset, that's what a Data Provider must do: create an Asset, connect it to policies via the contract- +definition-API and let consumers negotiate for it. +- If only assetIds are known, the aasId can be discovered via `GET https://mydtr.com/api/v3.0/lookup/shells?assetIds=...` as specified +by CX-0002. +- `POST https://mydtr.com/api/v3.0/shell-descriptors/{{aasId}}/submodel-descriptors` with the (known or obtained) aasId in the path +and the new submodel-descriptor in the body of the request. The attribute `semanticId` is mandatory for submodel-descriptors in Catena-X. +As defined in CX-0002, semanticIds in Catena-X are aspect-model-urns (see CX-0003) including a version. + +### Patterns for Submodel Deployment + +Data Providers will usually follow one of two patterns: +1. Digital Twin Repository: Deploying a dedicated Repository for the persistence of digital twins and related data is the most + convenient way to get started with the AAS. Due to the risk of data duplication and unclear initial ingestion + mechanisms, it may not scale to industrial sizes. +2. Delegation: Wrapping another API or a database may deploy the Submodel API as a new facade. It delegates the incoming + requests to the respective backend systems. This is particularly feasible in the Catena-X dataspace since it + +Offering data to the network requires mappings that are naturally dependent on the data source format. More on data integration +can be found in the corresponding [CX e.V. guide](https://catena-x.net/fileadmin/user_upload/04_Einfuehren_und_umsetzen/Onboarding/DataIntegrationPatterns_Guide_Final_V1.pdf). + +### Patterns for DTRs + +Usually, a DTR will implement a persistence with the specified AAS-APIs for data ingestion specified in the SSP-001 by +means of POST endpoints, updatable with PUT and PATCH requests ( +see [reference implementation](https://github.com/eclipse-tractusx/sldt-digital-twin-registry)). +These APIs should only be accessible by the Data Provider (for instance by introduction of proper access control scopes +or setting `proxyMethod = false`, see [registration](#digital-twin-registry-as-edc-data-asset)). Delegation +as backend integration pattern is more inconvenient as the DTR must process and return reproducable IDs not only for +the assets but also for the AAS - this is hard to realize in a pure stateless implementation. diff --git a/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/assets/img/DTKIT_discovery_seq.svg b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/assets/img/DTKIT_discovery_seq.svg new file mode 100644 index 00000000000..2d2b3e07e63 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/assets/img/DTKIT_discovery_seq.svg @@ -0,0 +1 @@ +Data ConsumerSubmodel ServerDigital Twin RegistryConsumer EDC Control PlaneProvider EDC Control PlaneEDC DiscoveryBPN Discovery ServiceDiscovery FinderProvider Setup AdminData ConsumerSubmodel ServerDigital Twin RegistryConsumer EDC Control PlaneProvider EDC Control PlaneEDC DiscoveryBPN Discovery ServiceDiscovery FinderProvider Setup Admincritical[: setup of registration]loop[forEach BPN Discovery instance]critical[: discovery from data consumer side]POST /api/administration/connectors with Link between BPN and EDC endpoint1POST /api/administration/connectors/discovery with IdType-to-BPN-Discover-URL-Mapping2POST /api/administration/connectors/bpnDiscovery with assetId, idType ("van", "cxId" etcetc)3POST /api/management/v2/assets with baseUrl and typization for AAS Registry4POST /shell-descriptors for all shell descriptors of a data provider5POST /api/administration/connectors/discovery/search with body containing relevant idTypes6bpn-discovery-endpoints7POST /api/administration/connectors/bpnDiscovery/search with body containing assetId8provider-bpn9POST /api/administration/connectors/discovery with provider-bpn10EDC-endpoint11POST /catalog/request with filter looking for DTR12forward13return14dcat: Dataset for DTR15negotiate for DTR and retrieve token16access token17GET /lookup/shells?assetIds=xyz18aas-id19GET /shell-descriptors/{{aas-id}} with aas-id encoded base64url20shell-descriptor including the submodel's Dataset-ID (subprotocolBody)21POST /catalog/request with filter looking for Dataset-ID22forward23return24Dataset for submodel(-bundle)25negotiate for Dataset and retrieve token26access token27GET {{submodel-descriptor/href}}/$value28data29 \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/assets/img/DTKIT_high_level_arch.svg b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/assets/img/DTKIT_high_level_arch.svg new file mode 100644 index 00000000000..4a95da42a81 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/assets/img/DTKIT_high_level_arch.svg @@ -0,0 +1 @@ +AAS Registry & DiscoveryAAS SubmodelsProvider EDCConsumer EDCAny Consumer AppDiscovery FinderBPN DiscoveryEDC DiscoveryData ConsumerData ProviderOpCoStandard adopted from IDTAStandard specified by CX e.V.Standard adopted from IDSAInteractionOrganizationalboundaries \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/assets/img/DTKIT_pictogram_blue.png b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/assets/img/DTKIT_pictogram_blue.png new file mode 100755 index 00000000000..7e39e02eb83 Binary files /dev/null and b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/assets/img/DTKIT_pictogram_blue.png differ diff --git a/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/assets/img/DTKIT_terminology.svg b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/assets/img/DTKIT_terminology.svg new file mode 100644 index 00000000000..86d4c33bc08 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/assets/img/DTKIT_terminology.svg @@ -0,0 +1 @@ +AspectDigital TwinAspect ModelAsset Administration ShellSubmodelDigital RepresentationSubmodelElementssemantic definition forassociated withis acontainsis aassociated withimplements anImplements aDigital Twin RegistryAAS RegistryAAS DiscoveryEDCregistered inEDC Discoveryregistered inDiscovery FinderBPN Discoveryregistered inregistered inimplementsimplementsregistered inregistered inStandardized elsewhereAssetregistered inrepresents anStandardized in CX -0002 \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/page_adoption-view.md b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/page_adoption-view.md new file mode 100644 index 00000000000..7ad1419e61d --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/page_adoption-view.md @@ -0,0 +1,94 @@ +--- +id: Adoption View Digital Twin Kit +title: Adoption View +description: 'Digital Twin Kit' +sidebar_position: 2 +--- + + + +![DT Kit Pictotogram](assets/img/DTKIT_pictogram_blue.png) + +### Digital Twin KIT + + +## Vision & Mission + +### Vision + +The aim of the Digital Twin Kit is to trace parts and materials across the entire value chain to enable data driven use +cases over all n-tier levels without compromising data sovereignty. This Kit enables data and app providers to deliver +solutions for building data chains and to send quality notifications on all levels and industries. + +The Kits purpose is to provide the Catena-X Automotive Network with a uniform infrastructure to enable data-level +interoperability between Business Partners. Regardless of the data's provenance, the Kit sets the scene +for a comprehensive landscape of distributed Digital Twins of assets (mostly parts) along the entire lifecycle of the +supply chain. + +### Mission + +The Digital Twin Kit bundles the necessary standards, APIs, interaction patterns and reference implementations on how +to build a Digital Twin for an asset. By adopting established standards and integrating them, the Digital Twin Kit leverages +the conceptual and implementation work of existing communities while contributing feedback and Open-Source-Contributions +back to the public. A priority is the seamless integration with other Catena-X developments such as the +[Connector Kit](https://eclipse-tractusx.github.io/docs-kits/category/connector-kit). + +### Customer Journey + +With the Digital Twin Kit, all roles mentioned in the [Operating Model Whitepaper](https://catena-x.net/fileadmin/user_upload/Publikationen_und_WhitePaper_des_Vereins/CX_Operating_Model_Whitepaper_02_12_22.pdf) +are given the necessary tooling to format their data and APIs in a standardized manner. + + +## Business Value + +Point-to-Point integration between Business Partners is challenging. On the one hand, all questions of sovereignty, +authorization, authentication must be agreed upon and implemented. In the Catena-X network, that is covered by the +[Connector Kit](https://eclipse-tractusx.github.io/docs-kits/category/connector-kit) and the services it relies on. + +What this Kit adds is a set of technologies to reduce the integration efforts on the data level. Data Consumers can +develop their applications against data formats and interfaces that are standardized encouraging client-side reuse. +Consequently, data providers present data agnostic to who will consume the data from. This reduces the investment necessary +to onboard to additional Catena-X use-cases significantly. Consuming applications can be substituted seamlessly as +they are developed against the relevant Catena-X standards - further lowering the bar of entry for new applications in +the ecosystem. + + +## Use Case + +### Status Quo / Today’s challenge + +This Kit's aim is not to solve a dedicated business problem. It is an infrastructure component, critical for scalable +data sharing and integration. It does however deliver a broad set of capabilities that the use cases can leverage, namely: + +- Well-defined API structures extensible by domain models. Each use case will want to share different data and the API +expands with the scope of the model. + +- A distributed infrastructure of central and decentral components integrating hand-in-hand with backend-systems southward +and the network northward. + +- Extensive meta-model to create a virtual representation of asses across their entire lifecycle. + +### Example + +The [Traceability Kit](https://eclipse-tractusx.github.io/docs-kits/kits/Traceability%20Kit/Adoption%20View%20Traceability%20Kit#logic--schema) +and the [Data Chain Kit](https://eclipse-tractusx.github.io/docs-kits/kits/Data%20Chain%20Kit/Documentation/irs_arc42) +build on Digital Twins and leverage many of this Kit's content. The Data Chain Kit would be unimagineable without the +pre-defined endpoint- and payload-definition that is the Digital Twin Kit. Likewise, +coupling the chains' elements would be impossible without a unified hierarchical structure running with all participants. +For more info how specifically the Asset Administration Shell is used, consult the Kits. + +## Additional Resources + +### CX-Standards + +- [CX - 0001 EDC Discovery API](https://catena-x.net/fileadmin/user_upload/Standard-Bibliothek/Update_PDF_Maerz/9_Data-Discovery-Services/CX_-_0001_EDC_DISCOVERY_API_PlatformCapabilityDS_v_1.0.1-1.pdf) +- [CX - 0002 Digital Twins in Catena-X](https://catena-x.net/fileadmin/user_upload/Standard-Bibliothek/Archiv/Update_Juli_23_R_3.2/CX-0002-DigitalTwinsInCatena-X-v.1.0.2.pdf)*(linked version 1.0.2, this KIT refers to v2.0.0, to be released in 09/23)* +- CX - 0053 BPN Discovery Services *(v1.0.0 to be released in 09/23)* + +### Terminology + +The following figure is also a non-normative part of CX-0002 "Digital Twins in Catena-X" v2.0.0. When published, that +standard can be found in the [Catena-X standard library](https://catena-x.net/de/standard-library). +![How words relate in the DT Kit](assets/img/DTKIT_terminology.svg) diff --git a/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/page_changelog.md b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/page_changelog.md new file mode 100644 index 00000000000..3b44dba4a17 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/page_changelog.md @@ -0,0 +1,69 @@ +--- +id: Digital Twin Kit Changelog +title: Changelog +description: 'Digital Twin Kit' +sidebar_position: 1 +--- + +![DT Kit Pictotogram](assets/img/DTKIT_pictogram_blue.png) + +### Digital Twin KIT + +All notable changes to this Kit will be documented in this file. + +## [1.1.0] - 2023-12-05 + +### Added + +- remarks on versioning +- guidance for adding submodels to existing twins + +### Changed + +- A couple of clarifications and bugfixes for R23-12 +- Version of Kit incremented as minor revision since no breaking changes occurred. + + +## [1.0.0] - 2023-08-17 + +### Added + +- version from release + +### Changed + +- couple of bugfixes raised by reviewers + +## [0.2.0] - 2023-08-08 + +

Added

+ +- Additional figure on terminology +- section on entire discovery mechanism +- pictograms + +

Changed

+ +- Clarification on decentralization of registries +- Minor improvements based on stakeholders' feedback +- figures optimized for dark backgrounds +- example data adjusted to standards for CX R3.2 + +

Removed

+ +- ./. + + +## [0.1.0] - 2023-07-12 + +

Added

+ +- Initial version of the Kit including adoption, operation and development view incl. all relevant API specifications. + +

Changed

+ +- ./. + +

Removed

+ +- ./. diff --git a/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/page_software-operation-view.md b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/page_software-operation-view.md new file mode 100644 index 00000000000..601ac7d73a8 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Digital Twin Kit/page_software-operation-view.md @@ -0,0 +1,30 @@ +--- +id: Operation View Digital Twin Kit +title: Operation View +description: 'Digital Twin Kit' +sidebar_position: 3 +--- + +![DT Kit Pictotogram](assets/img/DTKIT_pictogram_blue.png) + +### Digital Twin KIT + + + +Based on the information provided in this kit, it is possible to run and program against an infrastructure of +Digital Twins the Catena-X-way. This infrastructure empowers Data Consumers to consume the network's data as agreed with +each Data Provider and facilitated by an Operating Company. They run central and decentral services that allow them to +discover each other, exchange information and contextualize it according to a standardized semantics. + +| Service Name | Description | Reference Implementation | [Standardized in](https://catena-x.net/de/standard-library) | +|-----------------------|----------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------| +| Discovery Finder | A microservice resolving a type of identifiers against a set of BPN-Discovery Servers. | [Tractus-X Discovery Finder](https://github.com/eclipse-tractusx/sldt-discovery-finder) | CX - 0053 | +| BPN Discovery | A microservice resolving a particular assetId against the registered BPN of its owner. | [Tractus-X BPN Discovery](https://github.com/eclipse-tractusx/sldt-bpn-discovery) | CX - 0053 | +| EDC Discovery | A microservice that resolves a BPN against an EDC endpoint. | [Tractus-X Portal including EDC Discovoery API](https://github.com/eclipse-tractusx/portal-backend) | CX - 0001 | +| Digital Twin Registry | An exhaustive list of all Submodel Servers, with link to their assets, adhering to the AAS Registry API. | [Tractus-X Digital Twin Registry](https://github.com/eclipse-tractusx/sldt-digital-twin-registry) | CX - 0002 | +| Submodel Server | The data source adhering to a subset of the Submodel API as defined in AAS Part-2 3.0. | [FA³ST-Framework](https://github.com/FraunhoferIOSB/FAAAST-Service), [Eclipse Basyx](https://github.com/eclipse-basyx/basyx-java-sdk), [AASX Server](https://github.com/admin-shell-io/aasx-server) | CX - 0002 | + + +![High Level Architecture of an App leveraging the Digital Twin Kit](assets/img/DTKIT_high_level_arch.svg) \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Eco_Pass_KIT/changelog.md b/docs-kits_versioned_docs/version-23.12/kits/Eco_Pass_KIT/changelog.md new file mode 100644 index 00000000000..0c37302194e --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Eco_Pass_KIT/changelog.md @@ -0,0 +1,29 @@ +--- +title: Changelog +--- + +## [0.1.0] - 2023-08-11 + +### Added + +- move KIT to Tractus-X repository + +### Changed + +### Removed + +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2023,2023 ZF Friedrichshafen AG +- SPDX-FileCopyrightText: 2023,2023 Robert Bosch GmbH +- SPDX-FileCopyrightText: 2023,2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +- SPDX-FileCopyrightText: 2023,2023 T-Systems International GmbH +- SPDX-FileCopyrightText: 2023,2023 SAP SE +- SPDX-FileCopyrightText: 2023,2023 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. für ihre Institute IPK und IPK +- SPDX-FileCopyrightText: 2023,2023 BASF SE +- SPDX-FileCopyrightText: 2023,2023 Henkel AG & Co. KGaA +- SPDX-FileCopyrightText: 2023,2023 Contributors to the Eclipse Foundation +- Source URL: diff --git a/docs-kits_versioned_docs/version-23.12/kits/Eco_Pass_KIT/page-adoption-view.md b/docs-kits_versioned_docs/version-23.12/kits/Eco_Pass_KIT/page-adoption-view.md new file mode 100644 index 00000000000..c780825a0d4 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Eco_Pass_KIT/page-adoption-view.md @@ -0,0 +1,282 @@ +--- +title: Adoption View +--- + +## Introduction + +The EcoPass KIT will be the key enabler for various stakeholders to use digital product passports, which represent a digital collection of specific information about a physical product in a standardized exchange format. This data is governed by agreed-upon ownership and access rights, which are conveyed through the Eclipse Data Space Connector (EDC). The primary purpose of the product pass is to enable the electronic registration, processing and sharing of product-related details among various entities in the supply chain, including several businesses and authorities. The demand for interoperable product passports exists worldwide, driven by the need to establish sustainable and transparent supply chains across different types of products, for which the adoption of standards will become crucial. +In this context, Catena-X offers a decentralized ecosystem supported by standards and principles like data sovereignty, which can effectively implement such a product passport system. The objective of the EcoPass KIT is therefore to: + +- Provide a comprehensive overview of the business context and benefits of product passports. +- Offer guidelines for industry stakeholders. +- Provide a detailed description and offer tools to implement product passports. + +## Vision & Mission + +### Vision: Empowering Sustainability – One Product at a Time + +The EcoPass KIT envisions a future where sustainability is at the core of every product's lifecycle, from design and manufacturing to usage and end-of-life. By fostering transparency, traceability and informed decision-making, we aim to inspire solution and service providers to create innovative, eco-friendly products that reduce environmental impact and drive the global economy towards a circular model. + +### Mission: Unleashing Circularity Potential + +The EcoPass KIT enables the scalable usage of digital product passports in order to address the pressing issue of inefficient resource usage and lack of product transparency. With growing concerns over environmental impact, limited resources and waste generation, there is an urgent need for a comprehensive solution to drive sustainable practices across the value chain. The KIT offers unified data models, a reference application for passport utilization as well as the required API. Low entry barriers will allow you to adapt digital product passports rapidly and pay your contribution to a fully circular value chain without the necessity of vast expertise or resources. Designed for multiple products, the KIT offers scalability, high-quality product information and a set of tools for regulatory compliance. Our mission is to unlock the circular potential of every component and material, fostering a culture of sustainability, innovation, and shared responsibility among all stakeholders. + +All described specifications in the KIT are based on [Catena-X standards](https://catena-x.net/de/standard-library) such as the Asset Administration Shell, SSI and decentral Digital Twin Registry. They refer to other Catena-X KITs like the [Connector KIT](https://eclipse-tractusx.github.io/docs-kits/kits/tractusx-edc/docs/kit/adoption-view/Adoption%20View/) (EDC), [Data Chain KIT](https://eclipse-tractusx.github.io/docs-kits/category/data-chain-kit/) (Item Relationship Service = IRS) and [Business Partner KIT](https://eclipse-tractusx.github.io/docs-kits/category/business-partner-kit/) to ensure interoperability and data sovereignty according to IDSA and Gaia-X principles. + +## Business Value + +Following this mission, the EcoPass KIT serves as an instrumental tool promoting sustainable and circular value chains. The improved transparency, traceability and accountability offered with digital product passports will facilitate informed decision-making for various stakeholders. This will bring ethical sourcing, efficient use of resources and reduction of environmental impacts to a new level. By making use of the Catena-X standards defined within the EcoPass KIT, product passports will ensure interoperability for stakeholders and systems to communicate seamlessly. This standardized language is crucial to improve efficiency, lower operational costs and create faster data processing. It ensures a consistent approach to data collection, storage and visualization to enhance the accuracy, reliability and comparability of information. +The following section will highlight the five major advantages of the Catena-X EcoPass KIT, which are also displayed below. + +#### Figure 1 + +![AdoptionView Business Value](resources/adoption-view/adoption-view-BusinessValue.png) + +**Seamless Integration and Collaboration**: By leveraging the EcoPass KIT, service providers can easily integrate with the Catena-X marketplace, promoting efficient collaboration and exchange of information with other businesses in the network. The unified data model and API specification simplifies the process, reducing the time and resources needed for integration and fostering interoperability between various players. + +**Enhanced Consumer Trust and Brand Loyalty**: Utilizing the KIT to develop solutions for the Catena-X marketplace allows service providers to showcase their commitment to transparency and sustainability. This fosters consumer trust and brand loyalty, as increasingly conscious customers prefer products and services that align with their values and make a positive impact on the environment. + +**Data-Driven Decision Making**: The EcoPass KIT enables service providers to harness the power of high-quality data sets from various sources in the Catena-X network. This wealth of information supports data-driven decision-making, helping businesses optimize their processes, reduce waste and identify opportunities for growth and innovation. Leveraging the dynamic data attributes within a passport, the product's evolving condition can be reflected, which offers a highly valuable increase of knowledge about the product’s behavior, quality and performance. + +**Regulatory Compliance and Risk Mitigation**: By offering solutions based on the KIT, service providers can help businesses comply with evolving regulations and industry standards. The increased transparency and traceability provided by digital product passports facilitate compliance management, offer the creation of certificates, and reduce the risks associated with non-compliance, such as penalties and reputational damage. + +**Competitive Advantage through Innovation**: The KIT's foundation for value-added services and innovative solutions provides service providers with a unique competitive edge in the Catena-X marketplace. By developing and offering cutting-edge products and services that cater to the growing demand for sustainable and transparent solutions, service providers can differentiate themselves in a crowded market and seize new business opportunities. + +## Use Case Explanation + +### Today's Challenges + +Today's globalized supply chains often struggle with transparency, data fragmentation and inefficiencies through the lack of digitally available product information. Traceability becomes difficult, hindering the ability to track products' origins and ensure accountability. Risk management and compliance efforts are compromised, impacting product quality and sustainability. Customer expectations for transparency and sustainability information remain unmet, potentially leading to dissatisfaction and loss of market share. Moreover, supply chains lack the resilience and responsiveness needed to adapt to disruptions effectively. +Embracing a digital product pass can address these challenges, enabling transparent, efficient and sustainable supply chains. Implementing the EcoPass KIT can enable companies to address these challenges by creating a comprehensive, accurate and up-to-date record of their products' lifecycles. This information can be used to improve resource efficiency, optimize recycling processes and reduce waste, ultimately driving the adoption of circular economy principles. + +### How can the EcoPass KIT help to address regulatory challenges? + +- Manufacturers are required to disclose information regarding the environmental impact of their products under the European Union's (EU) Ecodesign Directive. The EcoPass KIT can assist producers in adhering to this rule by offering a digital record of the environmental impact of their products. +- Companies are required to provide information regarding their efforts to address forced labor and human trafficking in their supply chains under the California Transparency in Supply Chains Act (CTSCA). The EcoPass KIT's digital record of a company's supply chain operations can assist businesses to comply with this law. +- Certain manufacturers of products are required to take back and recycle their products at the end of their functional lifespans under the German Waste Management Act (Kreislaufwirtschaftsgesetz). The EcoPass KIT, which offers a digital record of the goods that have been returned and recycled, can assist producers in adhering to this obligation. + +### Ecopass KIT benefits for value chain partners and solution providers + +Stakeholders along the value chain, as well as solution providers can reap the benefits of utilizing KITs in their organization. The [Figure 2](page-adoption-view#figure-2) below shows an overview of these benefits, further explanation can be found below the illustration. + +#### Figure 2 + +![ValueChain Benefits](resources/adoption-view/adoption-view-ValueChainBenefits.png) + + +**Value Chain Partners** can benefit from the EcoPass KIT especially by bringing the product transparency to a next level which will allow for several areas to increase the company’s value. Multiple risks (e.g. regulatory compliance) can be mitigated, cost and process efficiency may be improved, the strategic knowledge about products increases and the possibility for new business is being established. + +1. **Regulatory Compliance**: Improve compliance with regulations and industry standards by utilizing a digital product passport to demonstrate responsible sourcing, production and waste management practices. +2. **Enhanced Transparency**: Visibility of the product's condition, origins and components will lead to better decision-making and higher resource efficiency. +3. **Efficient Data Management**: Adopting a digital product pass will reduce administrative burdens and facilitate seamless data exchange between stakeholders. +4. **Increased Accountability**: A clear chain of custody for products fosters accountability among value chain participants for product quality, safety and sustainability. +5. **Risk Mitigation**: Comprehensive product data helps value chain participants to proactively identify and mitigate risks, ensuring higher product quality and safety standards. +6. **Strengthened Customer Trust**: Offering transparency of business practices and sustainability efforts builds trust with customers and enhances brand loyalty. +7. **Supply Chain Optimization**: Data-driven insights enable the optimization of supply chain processes to support the integration of sustainable approaches. +8. **Foster Collaborations**: Connecting and sharing information across the value chain facilitates collaboration with other stakeholders to promote joint efforts towards sustainability challenges. + +**Solution Providers** will gain a head start in delivering comprehensive and efficient digital product pass solutions. The pre-built features accelerate time-to-market, reduce costs and ensure a reliable, scalable and compliant system. In addition, solution providers can leverage a KIT as the basis to build their own customized solutions and to offer their customers innovative and value-driven digital product pass services in an efficient and simplified way. + +1. **New Market & Customer Base**: The possibility of developing innovative solutions and providing them through the Catena-X marketplace fosters new market opportunities and scalability of the customer base. +2. **Accelerated Time-to-Market**: The KIT provides the thematical and technical basis to build solutions, significantly reducing the time and resources required to develop digital product pass solutions. +3. **Flexibility and Customization**: While the KIT offers a solid foundation, it is designed to allow solution providers for customizing and tailoring the platform to meet specific needs and preferences of the target market and value chain participants. +4. **Risk Mitigation**: The predefined KIT tools support solution providers in reducing the risk of development errors and vulnerabilities. +5. **Cost Efficiency**: The KIT's standardized data model and open interface simplify the process of connecting to the Catena-X network, reducing the investment needs for integration. +6. **Competitive Advantage**: Adopting the KIT quickly positions solution providers in the market faster with cutting-edge services gaining a competitive advantage. +7. **Alignment with Industry Standards**: The KITs adhere to industry standards, making it easier for solution providers to align with existing supply chain ecosystems and collaborate with other stakeholders. +8. **Data Utilization**: The wealth of data available in the Catena-X network is leveraged to drive innovation and develop data-driven solutions tailored to the unique needs of various industries. + +#### Battery Pass: A real-world example + +In the automotive industry, a Battery Pass or digital product passport for batteries plays a crucial role in ensuring transparency, traceability, and sustainability in the battery supply chain. Here's a real-world example of how a digital product pass might be set up for a battery used in electric vehicles (EVs), including its benefits, illustrated below: + +#### Figure 3 + +![BP realWorldExample](resources/adoption-view/adoption-view-BatteryPass_a_example.png) + +1. **Battery Manufacturing**: During the production stage, the battery manufacturer collects and records relevant data, such as the battery's unique identifier, type and model, manufacturing date and location, energy capacity and raw materials composition, including the content of critical elements like lithium, cobalt and nickel. +2. **Supply Chain Transparency**: Information about the battery's sourcing, manufacturing and distribution processes is documented, ensuring compliance with environmental and social standards. This includes data on the origin of raw materials, labor practices and the environmental footprint of each stage of the supply chain. +3. **Vehicle Integration**: When the battery is integrated into an electric vehicle, the Battery Pass is linked to the car's unique identification number (VIN), allowing seamless tracking and communication between the battery, the vehicle and relevant stakeholders. +4. **In-Use Performance Tracking**: As the vehicle is used, the Battery Pass continuously collects data on the battery's performance, such as its state of charge, charging cycles and degradation over time. This information is essential for the vehicle owner, automaker and service providers to monitor the battery's health and optimize its lifespan. +5. **End-of-Life Management**: When the battery reaches the end of its useful life, the Battery Pass provides detailed instructions for proper disposal and recycling, ensuring compliance with regulations and facilitating the recovery of valuable materials. The data stored in the Battery Pass helps recycling facilities to efficiently process the battery, reducing waste and promoting a circular economy. + +Throughout this process, the Battery Pass serves as a single, secure, and easily accessible source of information for various stakeholders, such as vehicle manufacturers, suppliers, service providers, regulators and vehicle owners. By implementing a digital product passport like the Battery Pass in the automotive industry, companies can promote transparency, traceability, and sustainability, ultimately contributing to a more eco-friendly and circular economy. + + +### How the KIT can help + +The EcoPass KIT addresses the real-world problem of battery traceability and sustainability in the automotive industry by providing a standardized, easy-to-implement solution for creating and managing digital product passports. Here's how the EcoPass KIT can help and scale in this context: + +1. **Standardization and Interoperability**: The EcoPass KIT offers a unified data model and is planning an API specification, allowing for seamless integration across different stakeholders, including manufacturers, suppliers, service providers and regulatory bodies. This standardization promotes interoperability and streamlines communication throughout the battery lifecycle. +2. **Simplified Adoption**: By providing a comprehensive and easy-to-use KIT, EcoPass can lower the barrier to entry for businesses of all sizes, enabling them to implement digital product passports without extensive technical expertise or resources. This can encourage widespread adoption of the solution, resulting in a larger-scale positive impact on sustainability and traceability. +3. **Scalable Solution**: The EcoPass KIT is designed to accommodate various product types, sizes and applications, ensuring its relevance and adaptability to the evolving automotive industry. This scalability allows the KIT to be utilized for a wide range of battery technologies, facilitating its adoption across diverse sectors. +4. **Enhanced Data Quality and Analysis**: The EcoPass KIT enables the collection and management of high-quality data throughout the product lifecycle. This wealth of information can be used by stakeholders to make data-driven decisions, optimize processes and identify opportunities for innovation and improvement in battery design, manufacturing and recycling. +5. **Facilitated Regulatory Compliance**: With the EcoPass KIT in place, businesses can more easily comply with the evolving regulations and industry standards related to battery traceability and sustainability. The digital product passport provides a comprehensive record of the battery's lifecycle, supporting compliance management and reducing the risk of penalties and reputational damage. + +By providing a standardized, scalable and easy-to-adopt solution, the EcoPass KIT will play a significant role in addressing the challenges of product traceability and sustainability in the automotive industry, promoting a more transparent, environmentally friendly and circular economy. + +## Semantic Models + +Depending on the use case and related KIT, Catena-X provides different semantic models that help to structure and make use of data via semantic information. These models help to provide a basic meaning to the data and their relationship, thereby enabling interoperability between data sets. Catena-X data models rely on principles as understandability, standardization, accuracy, differentiation, auditability, comprehensiveness, and provision of insights to drive improvement actions. +In its first version the KIT entails the data models Battery Pass and Transmission Pass, further data models will follow. The goal of these passports is to create unified data models that can be used and adapted across the automotive industry. These data models follow the Catena-X Standards [CX-0034](https://catena-x.net/fileadmin/user_upload/Standard-Bibliothek/Update_PDF_Maerz/Sustainability_Use_Case_Circular_Economy/CX_-_0034_Data_Model_BatteryPass_UseCase_CE_v_1.0.1.pdf), CX-0095 (insert once published) and are modeled according to the [CX-0003](https://catena-x.net/fileadmin/user_upload/Standard-Bibliothek/Archiv/Update_Juli_23_R_3.2/CX-0003-SAMMSemanticAspectMetaModel-v.1.0.2.pdf) BAMM Standard (BAMM has been renamed to SAMM thereafter) in Version 1.0.0 . For detailed information please follow the embedded links to the Catena-X Standard library. + +### Battery Pass + +#### Battery Pass Introduction + +The Catena-X standards, which are crucial to create a more sustainable battery business, serve as the foundation for the data model behind the Battery Pass. The Battery Pass assists in enhancing the traceability and sustainability of batteries by offering a thorough record of a battery's life cycle. This will mitigate the battery industry's environmental effect and make it easier to recycle batteries. +Accordingly, the Battery Pass establishes the fundamental framework for digital infrastructures aimed at documenting and facilitating the exchange of essential information and update-relevant technical data. Specifically, it focuses on data that provides a comprehensive account of supply chain responsibility, e.g. the carbon footprint, working conditions during raw material extraction and the assessment of battery conditions. It is structured according to the following categories: + +- General Information +- Product Condition +- Composition +- Cell Chemistry +- Electrochemical Properties +- Additional Information + In addition, the Battery Pass data model offers the following advantages: +- It is self-describing, which means it has all the details necessary to comprehend what it includes. Different systems can easily interpret the Battery Pass as a result. +- It is extendable, therefore new information can be added without much difficulty. As a result, the Battery Pass will be able to adapt to the changing requirements of the battery sector. +- It establishes a common semantic in Catena-X which other passes can build upon. + +#### Link to current model + +The semantic models are located [here](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/38605f6ddf19a0b4540dd483720d1d8c057ca332/io.catenax.battery.battery_pass). For each version there is a separated directory containing the ttl-file and a generated samples. + +#### Example Payload + +```json +{ + "electrochemicalProperties": { + "ratedCapacity": 210, + "batteryEnergy": { "foo": "bar" }, + "ratioMaximumAllowedBatteryPowerAndMaximumAllowedBatteryEnergy": 0.611, + "batteryVoltage": { "foo": "bar" }, + "internalResistance": { "foo": "bar" }, + "capacityThresholdExhaustion": 23, + "batteryPower": { "foo": "bar" }, + "capacityFade": 34 + }, + "document": { + "responsibleSourcing": [{ "foo": "bar" }], + "packagingInstructions": [{ "foo": "bar" }], + "transportationInstructions": [{ "foo": "bar" }], + "vehicleDismantlingProcedure": [{ "foo": "bar" }], + "testReportsResults": [{ "foo": "bar" }], + "batteryDismantlingProcedure": [{ "foo": "bar" }], + "safetyMeasures": [{ "foo": "bar" }], + "declarationOfConformity": [{ "foo": "bar" }] + }, + "datePlacedOnMarket": "2023-03-14T17:10:25.344+01:00", + "cellChemistry": { "foo": "bar" }, + "physicalDimensions": { "foo": "bar" }, + "temperatureRangeIdleState": { "foo": "bar" }, + "batteryCycleLife": { "foo": "bar" }, + "manufacturer": { "foo": "bar" }, + "warrantyPeriod": 60, + "composition": { "foo": "bar" }, + "manufacturing": { "foo": "bar" }, + "batteryIdentification": { "foo": "bar" }, + "stateOfBattery": { + "stateOfHealth": 12, + "statusBattery": "first life/ waste/ repaired/ repurposed/ recycled", + "stateOfCharge": 23 + }, + "cO2FootprintTotal": 124.0 +} +``` + +### Transmission Pass + +#### Transmission Pass Introduction + +In addition to the Battery Pass, numerous other components will require digital product passports. One example is the vehicle transmission, for which a standardized passport already exists. The Transmission Passport serves as tool for advancing a sustainable and circular transmission value chain. +To enable stakeholders to access relevant data, the passport leverages Catena-X shared services, a standardized data model, and an application. The initial version of the Transmission Passport model includes the following information: + +- Transmission Identification +- General Information +- Sustainability Information +- State of Health Information +- Product Specific Parameters +- Instructions +- Track and Trace Data + +By incorporating circularity parameters, the Transmission Passport aims to enhance transparency and promote a circular economy within the European Union. Detailed descriptions can be found in the Ecodesign for Sustainable Products Regulation Proposal (ESPR). This proposal identifies content clusters for circularity and establishes concrete circularity parameters for the Transmission Passport. The data sets encompass information relevant to both closed and open loop business models. +It is important to note that the data model includes optional and mandatory information fields to fulfill regulatory requirements. Sharing information within the network relies on decentralized technologies and is always subject to individual decisions by each provider. The data model aligns with the newly proposed Ecodesign Regulation (ESPR-2022) and will be continuously adapted to changing circumstances. As one of the first extensions of the EcoPass KIT, more product passes are expected soon to serve the demand of data models across the automotive industry. +Link to current model + +#### Link to current model + +The semantic models are located [here](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/38605f6ddf19a0b4540dd483720d1d8c057ca332/io.catenax.transmission.transmission_pass). For each version there is a separated directory containing the ttl-file and a generated samples. + +#### Example Payload + +```json +{ + "productSpecificParameters": { + "torqueConverter": ["RYtGKbgicZaHCBRQDSx"], + "driveType": "combustion engine", + "oilType": "ZF Lifeguard Hybrid 2", + "spreading": 6.79, + "torque": 500.0, + "power": 300.0, + "standardGearRatio": { + "gear": "1", + "ratio": 4.1567 + }, + "oilCapacity": 8.9, + "electricPerformance": ["VLhpfQGTMDYpsBZxvfBoeygjb"], + "speedResistance": { + "speed": 7800, + "gear": "1" + } + }, + "instructions": { + "packagingInstructions": [{ "foo": "bar" }], + "transportationInstructions": [{ "foo": "bar" }], + "dismantlingProcedure": [{ "foo": "bar" }], + "safetyMeasures": [{ "foo": "bar" }], + "vehicleDismantlingProcedure": [{ "foo": "bar" }] + }, + "identification": { + "manufacturerId": "BPNL1234567890ZZ", + "localIdentifiers": [{ "foo": "bar" }], + "dataMatrixCode": "UMaAIKKIkknjWEXJUfPxxQHeWKEJ" + }, + "sparePartSupplier": [{ "foo": "bar" }], + "stateOfHealth": { "foo": "bar" }, + "generalInformation": { "foo": "bar" }, + "sustainability": { "foo": "bar" } +} +``` + +## Business Architecture + +The Business Architecture illustrates the interaction between the EcoPass KIT and other KITs, components, data models, and artifacts used for identity and access management, illustrated by the [Figure 4](page-adoption-view#figure-4) below. + +#### Figure 4 + +![Image: Business Architecture](resources/adoption-view/adoption-view-EcoPassKITBusinessArch.png) + +The core of the network is to provide interoperability between different applications. For this reason, a common semantic is indispensable. In the Catena-X ecosystem, it has been agreed to use the description language SAMM to describe data models. +To additionally provide a standardized interface, the open standard of the International Digital Twin Association (IDTA) is used, abbreviated as IDTA. This standard corresponds to the Asset Administration Shell (AAS). +It is used to discover digital twins and exchange actual usage data. +To control access to both usage and meta data, the EcoPass KIT relies on the [Connector KIT](https://eclipse-tractusx.github.io/docs-kits/kits/tractusx-edc/docs/kit/adoption-view/Adoption%20View/). Interactions between two parties occur exclusively peer-to-peer via the standardized interfaces of the Connector KIT, based on the International Data Space Protocol. +Data sovereignty is enabled by so-called verifiable credentials. These rely on the technology of Self-Sovereign Identity (SSI) and are enabled through the Connector KIT. In short, consumers must present their signed credentials, defined by a data provider, before a data contract (and thus a data exchange) can take place. It should be mentioned that this concept is still in the prototype phase as of Release 3.2 and will be expanded in future releases. + +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2023,2023 ZF Friedrichshafen AG +- SPDX-FileCopyrightText: 2023,2023 Robert Bosch GmbH +- SPDX-FileCopyrightText: 2023,2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +- SPDX-FileCopyrightText: 2023,2023 T-Systems International GmbH +- SPDX-FileCopyrightText: 2023,2023 SAP SE +- SPDX-FileCopyrightText: 2023,2023 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. für ihre Institute IPK und IPK +- SPDX-FileCopyrightText: 2023,2023 BASF SE +- SPDX-FileCopyrightText: 2023,2023 Henkel AG & Co. KGaA +- SPDX-FileCopyrightText: 2023,2023 Contributors to the Eclipse Foundation +- Source URL: diff --git a/docs-kits_versioned_docs/version-23.12/kits/Eco_Pass_KIT/page-software-development-view.md b/docs-kits_versioned_docs/version-23.12/kits/Eco_Pass_KIT/page-software-development-view.md new file mode 100644 index 00000000000..f7b6dcd5077 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Eco_Pass_KIT/page-software-development-view.md @@ -0,0 +1,79 @@ +--- +title: Development View +--- + +## Introduction + +### General Development Information + +The developer view provides developers with resources to utilize the EcoPass KIT effectively. On the one side developers can learn how to integrate the EcoPass KIT into their applications and to make use of the product passport exchanging feature via the Catena-X network. On the other side, IT-Administrators will learn how to provide the needed passport data and which components are required. +Thereby, this KIT covers various aspects, starting from how the available API Endpoints can be utilized for data models and how to make them available in the Catena-x Data Space. + +### Architecture Overview + +The following [Figure 1](page-software-development-view#figure-1) shows how the EcoPass KIT (represented by Product Passport Frontend and Backend) is embedded in the overall architecture. + +#### Figure 1 + +![EcoPassKIT IT Arch Picture](resources/development-view/adoption-view-EcoPassKIT_IT_Arch.png) + +After authorization, the sequence diagram below [Figure 2](page-software-development-view#figure-2) illustrates the identification process of the decentral Digital Twin Registry. The process is divided into 25 steps, starting within the Data Consumer Environment, which is providing the digital product passport consumer application/service. In summary, the sequence details the interaction of EDC(s), corresponding BPN(s), and the decentral Digital Twin Registry (dDTR). It also illustrates how the consumer not only requests data via the EDC(s), but also how the data is exchanged via the provider, thereby leveraging the EDC component at all stages. The sequence is concluded by data requests for digital twins and corresponding sub models. + +The Figure below describes the process of searching for a DPP based on a part identification. The process shown in the figure assumes that the following conditions are met. The consumer has a part identifier and wants to obtain the corresponding digital twin. It also assumes that the consumer knows the BPN of the data room participant that is the owner of the digital twin. +This process can be roughly divided into three steps. In the first step, [001] to [006], the EDCs of the data provider are identified. Then, the consumer has received a list of EDC endpoints, all belonging to the data space participant that can provide the requested digital twin. In the second step, calls [007] to [011], the consumer determines which specific DTR asset to query to obtain the correct DPP. This is accomplished by traversing the received list of EDC endpoints until the DTR asset that can provide the DPP being sought is found. Once the DTR facility is located, the contract negotiation workflow is initiated by the consumer. During this workflow, it is determined if the consumer has the necessary rights to access and receive the DPP they are looking for. The rights are dependend on the frame contracts the consumer aggreed to. On top the provider can white or blacklist ceratain BPNs which ensures that the provider has full controll of their data. At this point, the consumer knows where to find the DPP, and a usage and access policy is negotiated. In the last step, calls [012] to [023], the actual retrieval of the DPP is performed. In order to retrieve the DPP, its unique identifier (UUID) is required. This UUID is determined by retrieving the DPP that is associated with the part ID. After retrieving the UUID, the consumer requests the asset. + +#### Figure 2 + +![Sequence Diagramm](resources/development-view/developmentview-sequence-diagramm.svg) + +#### API calls + +| Call | Method | Path | Params | +| ------ | ------ | -------------------------------------------------- | ------------------------------------------ | +| [001] | POST | /api/administration/connectors/discovery/search | key:ManufactureID | +| [003] | POST | /api/administration/connectors/bpnDiscovery/search | key:ManufactureID | +| [005] | POST | /api/administration/connectors/discovery/search | `{[]}` | +| [0012] | GET | /lookup/shells | key:partInstanceID, value: batteryDMC-Code | + +## API Specification + +| Service Name | Description | Reference Implementation | Standardization Number | +| --------------------- | -------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Portal/IAM | Portal | [Portal](https://github.com/eclipse-tractusx/portal-backend) | [CX - 0015](https://catena-x.net/fileadmin/user_upload/Standard-Bibliothek/Update_PDF_Maerz/4_IAM/CX_-_0015_IAM___Access_Control_Paradigm_PlatformCapabilityIAM_v_1.0.1.pdf) | +| Discovery Finder | A microservice resolving a type of identifiers against a set of BPN-Discovery Servers. | [Tractus-X Discovery Finder](https://github.com/eclipse-tractusx/sldt-discovery-finder) | [CX - 0053](https://catena-x.net/fileadmin/user_upload/Standard-Bibliothek/Archiv/Update_Juli_23_R_3.2/CX-0053-BPNDiscoveryServiceAPIs.pdf) | +| BPN Discovery Service | A microservice resolving a particular assetId against the registered BPN of its owner. | [Tractus-X BPN Discovery](https://github.com/eclipse-tractusx/sldt-bpn-discovery) | [CX - 0053](https://catena-x.net/fileadmin/user_upload/Standard-Bibliothek/Archiv/Update_Juli_23_R_3.2/CX-0053-BPNDiscoveryServiceAPIs.pdf) | +| EDC Discovery Service | A microservice that resolves a BPN against an EDC endpoint. | [Tractus-X Portal including EDC Discovoery API](https://github.com/eclipse-tractusx/portal-backend) | [CX - 0001](https://catena-x.net/fileadmin/user_upload/Standard-Bibliothek/Update_PDF_Maerz/9_Data-Discovery-Services/CX_-_0001_EDC_DISCOVERY_API_PlatformCapabilityDS_v_1.0.1-1.pdf) | +| EDC | Eeclipse Dataspace Connector | [Tractus-X EDC](https://github.com/eclipse-tractusx/tractusx-edc) | [CX - 0018](https://catena-x.net/fileadmin/user_upload/Standard-Bibliothek/Update_PDF_Maerz/3_Sovereign_Data_Exchange/CX_-_0018_EDC_PlatformCapabilitySovereignDataExchange_v_1.0.1.pdf) | + +Please note: In order to provide a passport asset for consumption a corresponding offer must exist. Please refer to “[Setup Data Offer](https://github.com/eclipse-tractusx/tractusx-edc/blob/main/docs/samples/Transfer%20Data.md#2-setup-data-offer)” in the EDC documentation. + +## Reference Implementationfernce + +A reference implementation and a corresponding documentation can be found [here](https://github.com/eclipse-tractusx/digital-product-pass/tree/main). + +This reference includes a frontend and a backend allowing users to look up and display Battery Passport assets. +The Helm charts of this reference implementation are located [here](https://github.com/eclipse-tractusx/digital-product-pass/tree/main/charts/digital-product-pass). + +### Documentation in the context development + +The following represents a collection of relevant documentation regarding the presented adaptation and all related services: + +**[EDC Domain Model](https://github.com/eclipse-edc/Connector/blob/main/docs/developer/architecture/domain-model.md)** + +**[Reference Implementation (+Arch42)](https://github.com/eclipse-tractusx/digital-product-pass/tree/main/docs)** + +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2023,2023 ZF Friedrichshafen AG +- SPDX-FileCopyrightText: 2023,2023 Robert Bosch GmbH +- SPDX-FileCopyrightText: 2023,2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +- SPDX-FileCopyrightText: 2023,2023 T-Systems International GmbH +- SPDX-FileCopyrightText: 2023,2023 SAP SE +- SPDX-FileCopyrightText: 2023,2023 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. für ihre Institute IPK und IPK +- SPDX-FileCopyrightText: 2023,2023 BASF SE +- SPDX-FileCopyrightText: 2023,2023 Henkel AG & Co. KGaA +- SPDX-FileCopyrightText: 2023,2023 Contributors to the Eclipse Foundation +- Source URL: diff --git a/docs-kits_versioned_docs/version-23.12/kits/Eco_Pass_KIT/resources/adoption-view/adoption-view-BatteryPass_a_example.png b/docs-kits_versioned_docs/version-23.12/kits/Eco_Pass_KIT/resources/adoption-view/adoption-view-BatteryPass_a_example.png new file mode 100644 index 00000000000..4f06b81bb74 Binary files /dev/null and b/docs-kits_versioned_docs/version-23.12/kits/Eco_Pass_KIT/resources/adoption-view/adoption-view-BatteryPass_a_example.png differ diff --git a/docs-kits_versioned_docs/version-23.12/kits/Eco_Pass_KIT/resources/adoption-view/adoption-view-BatteryPass_a_example.png.license b/docs-kits_versioned_docs/version-23.12/kits/Eco_Pass_KIT/resources/adoption-view/adoption-view-BatteryPass_a_example.png.license new file mode 100644 index 00000000000..e24cf459351 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Eco_Pass_KIT/resources/adoption-view/adoption-view-BatteryPass_a_example.png.license @@ -0,0 +1,15 @@ +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2023,2023 ZF Friedrichshafen AG +- SPDX-FileCopyrightText: 2023,2023 Robert Bosch GmbH +- SPDX-FileCopyrightText: 2023,2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +- SPDX-FileCopyrightText: 2023,2023 T-Systems International GmbH +- SPDX-FileCopyrightText: 2023,2023 SAP SE +- SPDX-FileCopyrightText: 2023,2023 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. für ihre Institute IPK und IPK +- SPDX-FileCopyrightText: 2023,2023 BASF SE +- SPDX-FileCopyrightText: 2023,2023 Henkel AG & Co. KGaA +- SPDX-FileCopyrightText: 2023,2023 Contributors to the Eclipse Foundation +- Source URL: https://github.com/eclipse-tractusx/eco-pass-kit diff --git a/docs-kits_versioned_docs/version-23.12/kits/Eco_Pass_KIT/resources/adoption-view/adoption-view-BusinessValue.png b/docs-kits_versioned_docs/version-23.12/kits/Eco_Pass_KIT/resources/adoption-view/adoption-view-BusinessValue.png new file mode 100644 index 00000000000..c877cf39ec0 Binary files /dev/null and b/docs-kits_versioned_docs/version-23.12/kits/Eco_Pass_KIT/resources/adoption-view/adoption-view-BusinessValue.png differ diff --git a/docs-kits_versioned_docs/version-23.12/kits/Eco_Pass_KIT/resources/adoption-view/adoption-view-BusinessValue.png.license b/docs-kits_versioned_docs/version-23.12/kits/Eco_Pass_KIT/resources/adoption-view/adoption-view-BusinessValue.png.license new file mode 100644 index 00000000000..e24cf459351 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Eco_Pass_KIT/resources/adoption-view/adoption-view-BusinessValue.png.license @@ -0,0 +1,15 @@ +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2023,2023 ZF Friedrichshafen AG +- SPDX-FileCopyrightText: 2023,2023 Robert Bosch GmbH +- SPDX-FileCopyrightText: 2023,2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +- SPDX-FileCopyrightText: 2023,2023 T-Systems International GmbH +- SPDX-FileCopyrightText: 2023,2023 SAP SE +- SPDX-FileCopyrightText: 2023,2023 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. für ihre Institute IPK und IPK +- SPDX-FileCopyrightText: 2023,2023 BASF SE +- SPDX-FileCopyrightText: 2023,2023 Henkel AG & Co. KGaA +- SPDX-FileCopyrightText: 2023,2023 Contributors to the Eclipse Foundation +- Source URL: https://github.com/eclipse-tractusx/eco-pass-kit diff --git a/docs-kits_versioned_docs/version-23.12/kits/Eco_Pass_KIT/resources/adoption-view/adoption-view-EcoPassKITBusinessArch.png b/docs-kits_versioned_docs/version-23.12/kits/Eco_Pass_KIT/resources/adoption-view/adoption-view-EcoPassKITBusinessArch.png new file mode 100644 index 00000000000..7ec80e269c3 Binary files /dev/null and b/docs-kits_versioned_docs/version-23.12/kits/Eco_Pass_KIT/resources/adoption-view/adoption-view-EcoPassKITBusinessArch.png differ diff --git a/docs-kits_versioned_docs/version-23.12/kits/Eco_Pass_KIT/resources/adoption-view/adoption-view-EcoPassKITBusinessArch.png.license b/docs-kits_versioned_docs/version-23.12/kits/Eco_Pass_KIT/resources/adoption-view/adoption-view-EcoPassKITBusinessArch.png.license new file mode 100644 index 00000000000..e24cf459351 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Eco_Pass_KIT/resources/adoption-view/adoption-view-EcoPassKITBusinessArch.png.license @@ -0,0 +1,15 @@ +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2023,2023 ZF Friedrichshafen AG +- SPDX-FileCopyrightText: 2023,2023 Robert Bosch GmbH +- SPDX-FileCopyrightText: 2023,2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +- SPDX-FileCopyrightText: 2023,2023 T-Systems International GmbH +- SPDX-FileCopyrightText: 2023,2023 SAP SE +- SPDX-FileCopyrightText: 2023,2023 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. für ihre Institute IPK und IPK +- SPDX-FileCopyrightText: 2023,2023 BASF SE +- SPDX-FileCopyrightText: 2023,2023 Henkel AG & Co. KGaA +- SPDX-FileCopyrightText: 2023,2023 Contributors to the Eclipse Foundation +- Source URL: https://github.com/eclipse-tractusx/eco-pass-kit diff --git a/docs-kits_versioned_docs/version-23.12/kits/Eco_Pass_KIT/resources/adoption-view/adoption-view-ValueChainBenefits.png b/docs-kits_versioned_docs/version-23.12/kits/Eco_Pass_KIT/resources/adoption-view/adoption-view-ValueChainBenefits.png new file mode 100644 index 00000000000..4cc9b0d5ce1 Binary files /dev/null and b/docs-kits_versioned_docs/version-23.12/kits/Eco_Pass_KIT/resources/adoption-view/adoption-view-ValueChainBenefits.png differ diff --git a/docs-kits_versioned_docs/version-23.12/kits/Eco_Pass_KIT/resources/adoption-view/adoption-view-ValueChainBenefits.png.license b/docs-kits_versioned_docs/version-23.12/kits/Eco_Pass_KIT/resources/adoption-view/adoption-view-ValueChainBenefits.png.license new file mode 100644 index 00000000000..e24cf459351 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Eco_Pass_KIT/resources/adoption-view/adoption-view-ValueChainBenefits.png.license @@ -0,0 +1,15 @@ +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2023,2023 ZF Friedrichshafen AG +- SPDX-FileCopyrightText: 2023,2023 Robert Bosch GmbH +- SPDX-FileCopyrightText: 2023,2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +- SPDX-FileCopyrightText: 2023,2023 T-Systems International GmbH +- SPDX-FileCopyrightText: 2023,2023 SAP SE +- SPDX-FileCopyrightText: 2023,2023 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. für ihre Institute IPK und IPK +- SPDX-FileCopyrightText: 2023,2023 BASF SE +- SPDX-FileCopyrightText: 2023,2023 Henkel AG & Co. KGaA +- SPDX-FileCopyrightText: 2023,2023 Contributors to the Eclipse Foundation +- Source URL: https://github.com/eclipse-tractusx/eco-pass-kit diff --git a/docs-kits_versioned_docs/version-23.12/kits/Eco_Pass_KIT/resources/development-view/adoption-view-EcoPassKIT_IT_Arch.png b/docs-kits_versioned_docs/version-23.12/kits/Eco_Pass_KIT/resources/development-view/adoption-view-EcoPassKIT_IT_Arch.png new file mode 100644 index 00000000000..713ca78a154 Binary files /dev/null and b/docs-kits_versioned_docs/version-23.12/kits/Eco_Pass_KIT/resources/development-view/adoption-view-EcoPassKIT_IT_Arch.png differ diff --git a/docs-kits_versioned_docs/version-23.12/kits/Eco_Pass_KIT/resources/development-view/adoption-view-EcoPassKIT_IT_Arch.png.license b/docs-kits_versioned_docs/version-23.12/kits/Eco_Pass_KIT/resources/development-view/adoption-view-EcoPassKIT_IT_Arch.png.license new file mode 100644 index 00000000000..e24cf459351 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Eco_Pass_KIT/resources/development-view/adoption-view-EcoPassKIT_IT_Arch.png.license @@ -0,0 +1,15 @@ +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2023,2023 ZF Friedrichshafen AG +- SPDX-FileCopyrightText: 2023,2023 Robert Bosch GmbH +- SPDX-FileCopyrightText: 2023,2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +- SPDX-FileCopyrightText: 2023,2023 T-Systems International GmbH +- SPDX-FileCopyrightText: 2023,2023 SAP SE +- SPDX-FileCopyrightText: 2023,2023 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. für ihre Institute IPK und IPK +- SPDX-FileCopyrightText: 2023,2023 BASF SE +- SPDX-FileCopyrightText: 2023,2023 Henkel AG & Co. KGaA +- SPDX-FileCopyrightText: 2023,2023 Contributors to the Eclipse Foundation +- Source URL: https://github.com/eclipse-tractusx/eco-pass-kit diff --git a/docs-kits_versioned_docs/version-23.12/kits/Eco_Pass_KIT/resources/development-view/developmentview-sequence-diagramm.svg b/docs-kits_versioned_docs/version-23.12/kits/Eco_Pass_KIT/resources/development-view/developmentview-sequence-diagramm.svg new file mode 100644 index 00000000000..b1604843f59 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Eco_Pass_KIT/resources/development-view/developmentview-sequence-diagramm.svg @@ -0,0 +1 @@ +Data Provider EnviromentCatenaX DeploymentDataConsumer EnviromentdDTRProviderEDCEDCDiscoveryServiceBPNDiscoveryServiceDiscoveryFinderConsumerEDCConsumerApplicationdDTRProviderEDCEDCDiscoveryServiceBPNDiscoveryServiceDiscoveryFinderConsumerEDCConsumerApplicationloop[for each EDC inList][001] Request BPN Discovery Endpoints[002] Response Collection of Endpoints[003] Request BPN(s) based on key value pairs[004] Response BPNs[005] Request EDC Enpoints based on BPNs[006] Response EDC Endpoints[007] Request Data Catalogue[008] Request Data Catalogue[009] Response Catalogue based on policies[010] Catalogue[011] Search for DTR Asset[012] Request digital twin of batteries with partInstanceID[013] Request digital twin of batteries with partInstanceID[014] Request digital twin of batteries with partInstanceID[015] Response DT UUID of batteries matching the key-value pair[016] Response DT UUID of batteries matching the key-value pair[017] DT UUID of batteries matching the key-value pair[018] Request sub-model based on DT UUID[019] Request sub-model based on DT UUID[020] Request sub-model based on DT UUID[021] Reponse passport sub-model[022] Reponse passport sub-model[023] Reponse passport sub-model \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Eco_Pass_KIT/resources/development-view/developmentview-sequence-diagramm.svg.license b/docs-kits_versioned_docs/version-23.12/kits/Eco_Pass_KIT/resources/development-view/developmentview-sequence-diagramm.svg.license new file mode 100644 index 00000000000..e24cf459351 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Eco_Pass_KIT/resources/development-view/developmentview-sequence-diagramm.svg.license @@ -0,0 +1,15 @@ +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2023,2023 ZF Friedrichshafen AG +- SPDX-FileCopyrightText: 2023,2023 Robert Bosch GmbH +- SPDX-FileCopyrightText: 2023,2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +- SPDX-FileCopyrightText: 2023,2023 T-Systems International GmbH +- SPDX-FileCopyrightText: 2023,2023 SAP SE +- SPDX-FileCopyrightText: 2023,2023 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. für ihre Institute IPK und IPK +- SPDX-FileCopyrightText: 2023,2023 BASF SE +- SPDX-FileCopyrightText: 2023,2023 Henkel AG & Co. KGaA +- SPDX-FileCopyrightText: 2023,2023 Contributors to the Eclipse Foundation +- Source URL: https://github.com/eclipse-tractusx/eco-pass-kit diff --git a/docs-kits_versioned_docs/version-23.12/kits/Modular Production Kit/Software Development View/Consumer/provide-production-forecast-information.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Modular Production Kit/Software Development View/Consumer/provide-production-forecast-information.api.mdx new file mode 100644 index 00000000000..217e48fc2f9 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Modular Production Kit/Software Development View/Consumer/provide-production-forecast-information.api.mdx @@ -0,0 +1,74 @@ +--- +id: provide-production-forecast-information +title: "Information provided by MP to Client" +description: "Information provided by MP to Client" +sidebar_label: "Information provided by MP to Client" +hide_title: true +hide_table_of_contents: true +api: {"operationId":"ProvideProductionForecastInformation","requestBody":{"description":"Optional description in *Markdown*","required":true,"content":{"application/json":{"schema":{"description":"Answer to a customer with all information about the requested items","type":"object","properties":{"productionForecastResponse":{"description":"The concrete information about a production forecast","type":"object","properties":{"listOfForecastItems":{"description":"List of ForecastItems matching the items to an order","type":"array","items":{"description":"ForecastItem entry for the requested order","type":"object","properties":{"positionId":{"description":"Identifier of a position of an order","type":"string"},"productionForecast":{"description":"Date of completion","type":"string","pattern":"-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?|(24:00:00(\\.0+)?))(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?"},"precisionOfForecast":{"description":"Accuracy of the prediction","type":"object","properties":{"timeUnit":{"description":"Specifies the unit in which the time is represented","type":"string","pattern":"[a-zA-Z]*:[a-zA-Z]+","enum":["unit:secondUnitOfTime","unit:minuteUnitOfTime","unit:hour","unit:day","unit:week","unit:month","unit:year"]},"value":{"description":"The amount of timeUnits considered","type":"number"}},"required":["timeUnit","value"]},"productionStatus":{"description":"Status of the order/position within MP","type":"string","enum":["itemReceived","itemPlanned","itemInProduction","itemCompleted","statusUndefined"]},"reasonsForDelay":{"description":"Optional field to provide information to the customer why a delivery date is not met","type":"string","enum":["supplyProblems","otherCircumstances","internalProblems","noInformationAvailable"]},"returnCode":{"description":"Return code that indicates whether a single item of an order matches the customers desired request","type":"string","enum":["ok","lowerAccuracyOfPrecision","noForecastAvailable"]},"forecastDate":{"description":"Date/time of the forecast calculation","type":"string","pattern":"-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?|(24:00:00(\\.0+)?))(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?"}},"required":["positionId","productionForecast","precisionOfForecast","productionStatus","returnCode","forecastDate"]}},"iterationNumber":{"description":"Only set in CommunicationMode == \"notification/cyclic\" to be able to check the order of the notifications. \n\nNot required for communication mode = \"synchronous\"","type":"number"},"communicationMode":{"description":"Specification of the communication mode","type":"string","enum":["synchronous","cyclic","notification"]},"versionDataModel":{"description":"Specifies the used version of the data model","type":"string"}},"required":["listOfForecastItems","communicationMode","versionDataModel"]},"header":{"description":"Contains information common to all messages","type":"object","properties":{"messageId":{"description":"Unique ID identifying the message. The purpose of the ID is to uniquely identify a single message, therefore it MUST not be reused.","type":"string"},"context":{"description":"Information about the context the message should be considered in.\r\nDefault: For Use Cases which need to validate against the Semantic Hub automatically.\r\nFallback: For Use Cases which do not use automatic validation.\r\nIn both cases: Versioning only refers to major versions.\r\nString pattern of the value follows: ---","type":"string"},"sentDateTime":{"description":"Time zone aware timestamp holding the date and the time the message was sent by the sending party. The value MUST be formatted according to the ISO 8601 standard","type":"string","pattern":"-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?|(24:00:00(\\.0+)?))(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?"},"senderBpn":{"description":"The Business Partner Number of the sending party. The value MUST be a valid BPN. BPNA and BPNS are not allowed. Applicable constraints are defined in the corresponding standard","type":"string"},"receiverBpn":{"description":"The Business Partner Number of the receiving party. The value MUST be a valid BPN. BPNA and BPNS are not allowed. Applicable constraints are defined in the corresponding standard.","type":"string"},"expectedResponseBy":{"description":"Time zone aware timestamp holding the date and time by which the sending party expects a certain type of response from the receiving party. The meaning and interpretation of the fields's value are context-bound and MUST therefore be defined by any business domain or platform capability making use of it. The value MUST be formatted according to the ISO 8601 standard","type":"string","pattern":"-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?|(24:00:00(\\.0+)?))(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?"},"relatedMessageId":{"description":"Unique ID identifying a message somehow related to the current one","type":"string"},"version":{"description":"The version of the standard defining the semantics and the structure of the message's header. The version number should follow the Semantic Versioning 2.0.0 specification.","type":"string"}},"required":["messageId","context","sentDateTime","senderBpn","receiverBpn","version"]}},"required":["productionForecastResponse","header"]}}}},"responses":{"200":{"description":"OK. The request has succeeded"},"400":{"description":"Bad request. 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. Although the HTTP standard specifies \"unauthorized\", semantically this response means \"unauthenticated\". That is, the client must authenticate itself to get the requested response."},"403":{"description":"Forbidden. 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."},"420":{"description":"lowerAccuracyOfPrecision. the returned data has a lower precision than requested"},"421":{"description":"noForecastAvailable. No data available"}},"description":"Information provided by MP to Client","method":"post","path":"/ProvideProductionForecastInformation","servers":[{"url":"http://example.mp.org"}],"jsonRequestBodyExample":{"productionForecastResponse":{"listOfForecastItems":[{"positionId":"string","productionForecast":"string","precisionOfForecast":{"timeUnit":"unit:secondUnitOfTime","value":0},"productionStatus":"itemReceived","reasonsForDelay":"supplyProblems","returnCode":"ok","forecastDate":"string"}],"iterationNumber":0,"communicationMode":"synchronous","versionDataModel":"string"},"header":{"messageId":"string","context":"string","sentDateTime":"string","senderBpn":"string","receiverBpn":"string","expectedResponseBy":"string","relatedMessageId":"string","version":"string"}},"info":{"version":"1.0.0","title":"SIS EDC Consumer","license":{"name":"MIT"}},"postman":{"name":"Information provided by MP to Client","description":{"type":"text/plain"},"url":{"path":["ProvideProductionForecastInformation"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/Modular Production Kit/Software Development View/Consumer//sis-edc-consumer +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Information provided by MP to Client + + + +Information provided by MP to Client + +
Request Body required
+ +Optional description in *Markdown* + +
    productionForecastResponse object required
    + +The concrete information about a production forecast + +
    listOfForecastItems object[] required
    + +List of ForecastItems matching the items to an order + +
    precisionOfForecast object required
    + +Accuracy of the prediction + +
    header object required
    + +Contains information common to all messages + +
    ---"} schemaName={"string"} qualifierMessage={undefined} defaultValue={undefined}>
    + +OK. The request has succeeded + +
    + +Bad request. 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). + +
    + +Unauthorized. Although the HTTP standard specifies "unauthorized", semantically this response means "unauthenticated". That is, the client must authenticate itself to get the requested response. + +
    + +Forbidden. 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. + +
    + +lowerAccuracyOfPrecision. the returned data has a lower precision than requested + +
    + +noForecastAvailable. No data available + +
    + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Modular Production Kit/Software Development View/Consumer/sidebar.js b/docs-kits_versioned_docs/version-23.12/kits/Modular Production Kit/Software Development View/Consumer/sidebar.js new file mode 100644 index 00000000000..28dce47df2d --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Modular Production Kit/Software Development View/Consumer/sidebar.js @@ -0,0 +1 @@ +module.exports = [{"type":"category","label":"UNTAGGED","items":[{"type":"doc","id":"kits/Modular Production Kit/Software Development View/Consumer//provide-production-forecast-information","label":"Information provided by MP to Client","className":"api-method post"}]}]; \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Modular Production Kit/Software Development View/Provider/get-production-forecast-information.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Modular Production Kit/Software Development View/Provider/get-production-forecast-information.api.mdx new file mode 100644 index 00000000000..f22cbce066f --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Modular Production Kit/Software Development View/Provider/get-production-forecast-information.api.mdx @@ -0,0 +1,112 @@ +--- +id: get-production-forecast-information +title: "Client asking for MP information" +description: "Client asking for MP information" +sidebar_label: "Client asking for MP information" +hide_title: true +hide_table_of_contents: true +api: {"operationId":"GetProductionForecastInformation","requestBody":{"description":"Optional description in *Markdown*","required":true,"content":{"application/json":{"schema":{"description":"Aspect Model to request a production forecast","type":"object","properties":{"request":{"description":"Data model for a request","type":"object","properties":{"offset":{"description":"Send/start time of the first message/notification\n- \"0\" ==> immediate response","type":"object","properties":{"timeUnit":{"description":"Specifies the unit in which the time is represented","type":"string","pattern":"[a-zA-Z]*:[a-zA-Z]+","enum":["unit:secondUnitOfTime","unit:minuteUnitOfTime","unit:hour","unit:day","unit:week","unit:month","unit:year"]},"value":{"description":"The amount of timeUnits considered","type":"number"}},"required":["timeUnit","value"]},"customerId":{"description":"Internal customerId","type":"string"},"precisionOfForecast":{"description":"Accuracy of the time specification of the completion date.\n- default: implicitly defined by production\n- only as a REQUEST of the requester since it cannot be guaranteed that the store floor can provide the data in this accuracy.","type":"object","properties":{"timeUnit":{"description":"Specifies the unit in which the time is represented","type":"string","pattern":"[a-zA-Z]*:[a-zA-Z]+","enum":["unit:secondUnitOfTime","unit:minuteUnitOfTime","unit:hour","unit:day","unit:week","unit:month","unit:year"]},"value":{"description":"The amount of timeUnits considered","type":"number"}},"required":["timeUnit","value"]},"productionForecastForAll":{"description":"Boolean variable that detemines whether the customer request information about each position of an order, or information about the complete order","type":"boolean"},"orderId":{"description":"The Id identifying subject of the request","type":"string"},"deviationOfSchedule":{"description":"Mandatory property for the notification mode. The property specifies the deviation from targeted delivery date that must be met to send a notification to a subscriber\n\nmandatory for CommunicationMode = \"notification\"","type":"object","properties":{"timeUnit":{"description":"Specifies the unit in which the time is represented","type":"string","pattern":"[a-zA-Z]*:[a-zA-Z]+","enum":["unit:secondUnitOfTime","unit:minuteUnitOfTime","unit:hour","unit:day","unit:week","unit:month","unit:year"]},"value":{"description":"The amount of timeUnits considered","type":"number"}},"required":["timeUnit","value"]},"notificationInterval":{"description":"Interval time that either specifies the cyclic send time or limits the notification time\nmandatory for CommunicationMode = \"cyclic\"","type":"object","properties":{"timeUnit":{"description":"Specifies the unit in which the time is represented","type":"string","pattern":"[a-zA-Z]*:[a-zA-Z]+","enum":["unit:secondUnitOfTime","unit:minuteUnitOfTime","unit:hour","unit:day","unit:week","unit:month","unit:year"]},"value":{"description":"The amount of timeUnits considered","type":"number"}},"required":["timeUnit","value"]},"communicationMode":{"description":"Specification of the communication mode","type":"string","enum":["synchronous","cyclic","notification"]},"versionDataModel":{"description":"Specifies the used version of the data model","type":"string"}},"required":["offset","customerId","productionForecastForAll","orderId","communicationMode","versionDataModel"]},"header":{"description":"Contains information common to all messages","type":"object","properties":{"messageId":{"description":"Unique ID identifying the message. The purpose of the ID is to uniquely identify a single message, therefore it MUST not be reused.","type":"string"},"context":{"description":"Information about the context the message should be considered in.\r\nDefault: For Use Cases which need to validate against the Semantic Hub automatically.\r\nFallback: For Use Cases which do not use automatic validation.\r\nIn both cases: Versioning only refers to major versions.\r\nString pattern of the value follows: ---","type":"string"},"sentDateTime":{"description":"Time zone aware timestamp holding the date and the time the message was sent by the sending party. The value MUST be formatted according to the ISO 8601 standard","type":"string","pattern":"-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?|(24:00:00(\\.0+)?))(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?"},"senderBpn":{"description":"The Business Partner Number of the sending party. The value MUST be a valid BPN. BPNA and BPNS are not allowed. Applicable constraints are defined in the corresponding standard","type":"string"},"receiverBpn":{"description":"The Business Partner Number of the receiving party. The value MUST be a valid BPN. BPNA and BPNS are not allowed. Applicable constraints are defined in the corresponding standard.","type":"string"},"expectedResponseBy":{"description":"Time zone aware timestamp holding the date and time by which the sending party expects a certain type of response from the receiving party. The meaning and interpretation of the fields's value are context-bound and MUST therefore be defined by any business domain or platform capability making use of it. The value MUST be formatted according to the ISO 8601 standard","type":"string","pattern":"-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?|(24:00:00(\\.0+)?))(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?"},"relatedMessageId":{"description":"Unique ID identifying a message somehow related to the current one","type":"string"},"version":{"description":"The version of the standard defining the semantics and the structure of the message's header. The version number should follow the Semantic Versioning 2.0.0 specification.","type":"string"}},"required":["messageId","context","sentDateTime","senderBpn","receiverBpn","version"]}},"required":["header"]}}}},"responses":{"200":{"description":"OK. The request has succeeded"},"201":{"description":"OK, Precision not possible. The request has succeeded. Precision is not possible, the default precision will be used"},"400":{"description":"Bad request. 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. Although the HTTP standard specifies \"unauthorized\", semantically this response means \"unauthenticated\". That is, the client must authenticate itself to get the requested response."},"403":{"description":"Forbidden. 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."},"420":{"description":"Unknown BPNS. The BPNS which is given as parameter is not registered in the data provider database as a direct partner."},"421":{"description":"Invalid CustomerId. The customerID unknown or invalid"},"422":{"description":"Invalid OrderId.\tThe orderID not found or invalid"},"423":{"description":"Invalid Notification Interval. The data field Notification interval is not set with a proper value or missing"},"424":{"description":"Invalid Deviation. The data field Deviation is not set with a proper value or missing"},"425":{"description":"Forbidden. 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."},"426":{"description":"incomplete Request"}},"description":"Client asking for MP information","method":"get","path":"/GetProductionForecastInformation","servers":[{"url":"http://example.mp.org"}],"jsonRequestBodyExample":{"request":{"offset":{"timeUnit":"unit:secondUnitOfTime","value":0},"customerId":"string","precisionOfForecast":{"timeUnit":"unit:secondUnitOfTime","value":0},"productionForecastForAll":true,"orderId":"string","deviationOfSchedule":{"timeUnit":"unit:secondUnitOfTime","value":0},"notificationInterval":{"timeUnit":"unit:secondUnitOfTime","value":0},"communicationMode":"synchronous","versionDataModel":"string"},"header":{"messageId":"string","context":"string","sentDateTime":"string","senderBpn":"string","receiverBpn":"string","expectedResponseBy":"string","relatedMessageId":"string","version":"string"}},"info":{"version":"1.0.0","title":"SIS EDC - Provider","license":{"name":"MIT"}},"postman":{"name":"Client asking for MP information","description":{"type":"text/plain"},"url":{"path":["GetProductionForecastInformation"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"}],"method":"GET","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/Modular Production Kit/Software Development View/Provider//sis-edc-provider +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Client asking for MP information + + + +Client asking for MP information + +
    Request Body required
    + +Optional description in *Markdown* + +
      request object
      + +Data model for a request + +
      offset object required
      + +Send/start time of the first message/notification +- "0" ==\> immediate response + +
      precisionOfForecast object
      + +Accuracy of the time specification of the completion date. +- default: implicitly defined by production +- only as a REQUEST of the requester since it cannot be guaranteed that the store floor can provide the data in this accuracy. + +
      deviationOfSchedule object
      + +Mandatory property for the notification mode. The property specifies the deviation from targeted delivery date that must be met to send a notification to a subscriber + +mandatory for CommunicationMode = "notification" + +
      notificationInterval object
      + +Interval time that either specifies the cyclic send time or limits the notification time +mandatory for CommunicationMode = "cyclic" + +
      header object required
      + +Contains information common to all messages + +
      ---"} schemaName={"string"} qualifierMessage={undefined} defaultValue={undefined}>
      + +OK. The request has succeeded + +
      + +OK, Precision not possible. The request has succeeded. Precision is not possible, the default precision will be used + +
      + +Bad request. 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). + +
      + +Unauthorized. Although the HTTP standard specifies "unauthorized", semantically this response means "unauthenticated". That is, the client must authenticate itself to get the requested response. + +
      + +Forbidden. 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. + +
      + +Unknown BPNS. The BPNS which is given as parameter is not registered in the data provider database as a direct partner. + +
      + +Invalid CustomerId. The customerID unknown or invalid + +
      + +Invalid OrderId. The orderID not found or invalid + +
      + +Invalid Notification Interval. The data field Notification interval is not set with a proper value or missing + +
      + +Invalid Deviation. The data field Deviation is not set with a proper value or missing + +
      + +Forbidden. 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. + +
      + +incomplete Request + +
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Modular Production Kit/Software Development View/Provider/sidebar.js b/docs-kits_versioned_docs/version-23.12/kits/Modular Production Kit/Software Development View/Provider/sidebar.js new file mode 100644 index 00000000000..0da6170aa27 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Modular Production Kit/Software Development View/Provider/sidebar.js @@ -0,0 +1 @@ +module.exports = [{"type":"category","label":"UNTAGGED","items":[{"type":"doc","id":"kits/Modular Production Kit/Software Development View/Provider//get-production-forecast-information","label":"Client asking for MP information","className":"api-method get"},{"type":"doc","id":"kits/Modular Production Kit/Software Development View/Provider//unsubscribe","label":"Client unsubscribing from information pushes","className":"api-method delete"}]}]; \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Modular Production Kit/Software Development View/Provider/unsubscribe.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Modular Production Kit/Software Development View/Provider/unsubscribe.api.mdx new file mode 100644 index 00000000000..bb9987d6553 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Modular Production Kit/Software Development View/Provider/unsubscribe.api.mdx @@ -0,0 +1,50 @@ +--- +id: unsubscribe +title: "Client unsubscribing from information pushes" +description: "Client unsubscribing from information pushes" +sidebar_label: "Client unsubscribing from information pushes" +hide_title: true +hide_table_of_contents: true +api: {"operationId":"Unsubscribe","parameters":[{"name":"messageId","in":"path","description":"which message to unsubscribe from","required":true,"schema":{"type":"string","format":"uuid4"}}],"responses":{"200":{"description":"OK. The request has succeeded"},"400":{"description":"Bad request. 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. Although the HTTP standard specifies \"unauthorized\", semantically this response means \"unauthenticated\". That is, the client must authenticate itself to get the requested response."},"403":{"description":"Forbidden. 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."},"420":{"description":"Unknown BPNS. The BPNS which is given as parameter is not registered in the data provider database as a direct partner."}},"description":"Client unsubscribing from information pushes","method":"delete","path":"/relatedMessageId/{messageId}","servers":[{"url":"http://example.mp.org"}],"info":{"version":"1.0.0","title":"SIS EDC - Provider","license":{"name":"MIT"}},"postman":{"name":"Client unsubscribing from information pushes","description":{"type":"text/plain"},"url":{"path":["relatedMessageId",":messageId"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) which message to unsubscribe from","type":"text/plain"},"type":"any","value":"","key":"messageId"}]},"method":"DELETE"}} +sidebar_class_name: "delete api-method" +info_path: docs-kits/kits/Modular Production Kit/Software Development View/Provider//sis-edc-provider +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## Client unsubscribing from information pushes + + + +Client unsubscribing from information pushes + +
      Path Parameters
      + +OK. The request has succeeded + +
      + +Bad request. 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). + +
      + +Unauthorized. Although the HTTP standard specifies "unauthorized", semantically this response means "unauthenticated". That is, the client must authenticate itself to get the requested response. + +
      + +Forbidden. 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. + +
      + +Unknown BPNS. The BPNS which is given as parameter is not registered in the data provider database as a direct partner. + +
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Modular Production Kit/Software Development View/page_software-development-view.md b/docs-kits_versioned_docs/version-23.12/kits/Modular Production Kit/Software Development View/page_software-development-view.md new file mode 100644 index 00000000000..fbc053c27ef --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Modular Production Kit/Software Development View/page_software-development-view.md @@ -0,0 +1,97 @@ +--- +id: Sample Data Modular Production Kit +title: Sample Data +description: 'Modular Production Kit' +sidebar_position: 4 +--- + +![mp kit banner](@site/static/img/MPKitIcon.png) + +The following example shows the payload used for exchange + +### GetProductionForecast + +```json +{ + "request" : { + "precisionOfForecast" : { + "value" : 12, + "timeUnit" : "unit:secondUnitOfTime" + }, + "offset" : { + "value" : 12, + "timeUnit" : "unit:secondUnitOfTime" + }, + "orderId" : "00000000-0000-0000-C000-000000000046", + "customerId" : "BPNL7588787849VQ", + "deviationOfSchedule" : { + "value" : 12, + "timeUnit" : "unit:secondUnitOfTime" + }, + "productionForecastForAll" : false, + "versionDataModel" : "urn:samm:io.catenax.shared.shopfloor_information_types:1.0.0", + "notificationInterval" : { + "value" : 12, + "timeUnit" : "unit:secondUnitOfTime" + }, + "communicationMode" : "synchronous" + }, + "header" : { + "senderBpn" : "BPNL7588787849VQ", + "relatedMessageId" : "d9452f24-3bf3-4134-b3eb-68858f1b2362", + "expectedResponseBy" : "2023-06-19T21:24:00+07:00", + "context" : "urn:samm:io.catenax.:1.x.x", + "messageId" : "3b4edc05-e214-47a1-b0c2-1d831cdd9ba9", + "receiverBpn" : "BPNL6666787765VQ", + "sentDateTime" : "2023-06-19T21:24:00+07:00", + "version" : "urn:samm:io.catenax.message_header:1.0.0" + } +} +``` + +### ProvideProductionForecast + +```json +{ + "productionForecastResponse" : { + "listOfForecastItems" : [ { + "returnCode" : "ok", + "precisionOfForecast" : { + "value" : 12, + "timeUnit" : "unit:secondUnitOfTime" + }, + "reasonsForDelay" : "supplyProblems", + "positionId" : "00000000-0000-0000-C000-000000000046", + "productionStatus" : "itemReceived", + "productionForecast" : "2023-06-19T21:24:00+07:00", + "forecastDate" : "2023-06-19T21:24:00+07:00" + } ], + "versionDataModel" : "urn:samm:io.catenax.shared.shopfloor_information_types:1.0.0", + "communicationMode" : "synchronous", + "iterationNumber" : 6 + }, + "header" : { + "senderBpn" : "BPNL7588787849VQ", + "relatedMessageId" : "d9452f24-3bf3-4134-b3eb-68858f1b2362", + "expectedResponseBy" : "2023-06-19T21:24:00+07:00", + "context" : "urn:samm:io.catenax.:1.x.x", + "messageId" : "3b4edc05-e214-47a1-b0c2-1d831cdd9ba9", + "receiverBpn" : "BPNL6666787765VQ", + "sentDateTime" : "2023-06-19T21:24:00+07:00", + "version" : "urn:samm:io.catenax.message_header:1.0.0" + } +} +``` + +### ShopfloorInformationTypes + +```json +{ + "versionDataModel" : "urn:samm:io.catenax.shared.shopfloor_information_types:1.0.0", + "timeValue" : { + "value" : 12, + "timeUnit" : "unit:secondUnitOfTime" + }, + "communicationMode" : "synchronous" +} +``` diff --git a/docs-kits_versioned_docs/version-23.12/kits/Modular Production Kit/page_adoption-view.md b/docs-kits_versioned_docs/version-23.12/kits/Modular Production Kit/page_adoption-view.md new file mode 100644 index 00000000000..35eda6b9aa0 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Modular Production Kit/page_adoption-view.md @@ -0,0 +1,88 @@ +--- +id: Adoption View Modular Production Kit +title: Adoption View +description: 'Modular Production Kit' +sidebar_position: 2 +--- + +![mp kit banner](@site/static/img/MPKitIcon.png) + +### Modular Production Kit + +## Vision & Mission + +### The missions of the KIT + +The solution approaches developed in the Modular Production use case are environments to leverage existing business potentials. For this purpose, services, interface, and data model definitions based on industry standards are introduced with the goal of increasing the flexibility and reliability of industrial production. + +Business Partners can deploy these developments by utilizing the Catena-X Network, where Modular Production offers Services to supply its partners with information about production planning and status, as requested by other use cases. + +## Business Value + +Existing Business Values can be increased by enabling customized production (batch size 1) without a significant increase of costs. Key factors for such a production environment are automated planning of production processes, flexible resource orchestration, as well as available product information during its manufacturing. With these applications, the OEM can increase the efficiency within its shop floor and thus, reduce planning times and costs by an automated reconfiguration of processes and resources in case of unplanned events. Consequently, the saved efforts can be utilized to launch new business models or increase the overall output. + +## Business Process + +Modular Production is part of the value chain. Therefore, it has to guarantee flexibility and availability on one hand and on the other hand it has to allow product flexibility in combination with small lot sizes. The effect of disturbances and decision in this network are not limited to a local area, but they have also a big impact to other partners in the value chain network. In Consequence, it is necessary to directly communicate data from the shop floor to other members of the network, such as customers or their substitutes like logistic companies. This communication is realized with the Shop-Floor-Information-Service (SIS). For example, if a customer wants to know the estimated production date for a product, he uses the Shop-Floor-Information-Service to get this information either with a direct request, via cyclic messages or notifications in case in case of a deviation from the initially scheduled production plan. The Shop-Floor-Information-Service uses the *GetProductionForecastInformation* model and the *ProvideProductionForecastInformation* model. + +## Whitepaper + +- [Modular Production Onboarding](res/modular-production-onboarding.pdf) + +## Semantic Model + +The Shop Floor Information Service features one model, the Production Forecast, which in turn consists of three semantic models, namely the *GetProductionForecastInformation* model and the *ProvideProductionForecastInformation* model. + +All partners need the same semantic models for a common understanding of the information exchange. Customers or third parties specify within the *GetProductionForecastInformation* model the concrete required information about an order or a position within an order. Modular Production interprets this request and answers to it with the *ProvideProductionForecastInformation* data model. Depending on the customer’s request, Modular Production sends either a single or multiple responses. For the latter, customers need to notify Modular Production that no further forecasts are desired. + +The *GetProductionForecastInformation* is sent from a partner to Modular Production with a HTTP request to receive a production forecast. The *ProvideProductionForecastInformation* model is containing the orders, the estimated production date and a state describing whether the order is planned, in progress or done and the creation date of the information. The semantic model can be found here: + +- +- +- . + +The *GetProductionForecastInformation* data model must be implemented by all participants who wish to use the Shop-Floor-Information-Service as a Modular Production, a customer or a participating third party. Companies, which use the Shop-Floor-Information-Service as a customer or third party must be able to send *GetProductionForecastInformation* request, whereas partners using the Shop-Floor-Information-Service as a Modular Production must be able to receive the *GetProductionForecastInformation* request. Besides, the *GetProductionForecastInformation* model enables a customer to select one of three communication modes. In general, the *communicationMode* describes different ways of communication between the Modular Production and a consumer. In case of the synchronous mode, the Modular Production immediately sends the requested information back to the consumer, whereas the other modes are addressing a continuous exchange. The cyclic mode sends the information periodically (e.g. every day), whereas the notification mode informs if the forecast for the production has changed. Besides the *communicationMode* some mode specific parameters are also part of the data model. + +The *ProvideProductionForecastInformation* model responses to the request. It contains the concrete forecast for all orders and order positions. Consequently, the response consists of a list with forecast dates where each list element refers an id for each of the orders/order positions. The link to the request is accomplished with a related *messageId*, referring the *messageId* of the initial request. *ProvideProductionForecastInformation* is containing the orders, the estimated production date and a state describing whether the order is planned, in progress or done as well as some protocol data like ids and date of creation of the information. + +## Logic & Schema + +### Architecture + +The *GetProductionForecastInformation* contains the request for the forecasting data which is sent from a Modular Production partner to a customer or a third party on the next lower level. All participants using the Shop-Floor-Information-Service in the role of a customer, or third party must be able to send the *GetProductionForecastInformation*. All participants using the Shop-Floor-Information-Service in the role of a Modular Production must be able to receive and process the *GetProductionForecastInformation*. +The following diagram depicts all possible interactions between partners, in case they apply the Production Forecast Service. The communication between partners is accomplished by utilizing the Eclipse Data Space Connector (EDC) to ensure data sovereignty.) It takes place in different phases: + +1. Negotiation between the EDC of the partners using the proposed policies, +2. *GetProductionForecastInformation*(...) - the call of the customer, +3. get the desired information via *ProvideProductionForecastInformation*(...) - transferred by Modular Production (synchronous, cyclic, or notification-like), +4. Unsubscribe from the *GetProductionForecastInformation* service to receive no further information. + +![SIS Production Forecast Sequence Chart](res/SIS_ProduktionForecast_SequenceChart.svg) + +The left side shows the different request possibilities of customers. The right shows Modular Production that features a scheduler to generate answers for requests. The two boxes in the middle represent the EDC of each partner. The communication between the respective EDC is transparent to the user (shaded). Data for the request and the response are transmitted in the payload of the messages. The synchronous response (http response) does not contain any technical information but provides information whether the exchange of information succeeded or not. The concrete information is sent with one or multiple asynchronous responses, depending on the communication mode between the partners. The left side shows the different request possibilities of customers. The right shows Modular Production that features a scheduler to generates answers for requests. + +### Components + +#### Technical requirements for a CATENA-X compliant data transmission + +![SIS Production Forecast Overview](res/SIS_ProduktionForecast_Overview.svg) + +Both partners, the customer and the Modular Production, must be members of the Catena X network to communicate with each other. By registering a Modular Production in advance with the Discovery Service, a customer can find it via a so-called Business Partner Number (BPN). With the help of SSI (Self Sovereign Identity) the correct identity is guaranteed. Customer are using the *GetProductionForecastInformation* call to request a production forecast, as specified in CX-0075. The Modular Production generates the required information by internal services like a schedulers and answers accordingly by calling *ProvideProductionForecastInformation* as specified in CX-0075. In case of a cyclic messages or notification mode, the customer has to unsubscribe from the service, if the service is not needed anymore. + +The *GetProductionForecastInformation* as well as the *ProvideProductionForecastInformation* is using a Asset Administration Shell (AAS) serialized as a JSON string which is sent through EDC mechanism: Namely: *GetProductionForecastInformation* uses *GetProductionForecast* data model and *ProvideProductionForecastInformation* uses *ProvideProductionForecast* data model. The unsubscribe call has no corresponding data model, as it is a simple HTTP DELETE. The JSON string is standardized in document (MP) CX - 0069 Shop-Floor-Information-Service Aspect Model v.1.0.0. The standard only describes the sending and receiving of Shop-Floor-Information-data through EDC. The object is created and handled by applications of the companies involved, but these applications are not part of the standard. + +## Standards + +The standards for release 3.2 will be published soon. Our relevant standards can be downloaded from the official [Catena-X Standard Library](https://catena-x.net/de/standard-library): + +- CX-0068 Shop-Floor-Information-Service API v.1.0.0 +- CX-0069 Shop-Floor-Information-Service Aspect Model v.1.0.0 +- CX-0075 Shop-Floor-Information-Service Default / Process v.1.0.0 + +## Notice + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2023,Fraunhofer Institute of Optronics, System Technology and Image Exploitation (IOSB) +- SPDX-FileCopyrightText: 2023,Siemens AG diff --git a/docs-kits_versioned_docs/version-23.12/kits/Modular Production Kit/page_changelog.md b/docs-kits_versioned_docs/version-23.12/kits/Modular Production Kit/page_changelog.md new file mode 100644 index 00000000000..c49910b3f88 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Modular Production Kit/page_changelog.md @@ -0,0 +1,26 @@ +--- +id: Modular Production Kit Changelog +title: Changelog +description: 'Modular Production Kit' +sidebar_position: 1 +--- + +![mp kit banner](@site/static/img/MPKitIcon.png) + +### Modular Production Kit + +All notable changes to this Kit will be documented in this file. + +## [0.1.0] - 2023-11-20 + +### Added + +- Initial version of the Kit including adoption and development view + +### Changed + +- ./. + +### Removed + +- ./. diff --git a/docs-kits_versioned_docs/version-23.12/kits/Modular Production Kit/res/SIS_ProduktionForecast_Overview.svg b/docs-kits_versioned_docs/version-23.12/kits/Modular Production Kit/res/SIS_ProduktionForecast_Overview.svg new file mode 100644 index 00000000000..582593fa2b8 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Modular Production Kit/res/SIS_ProduktionForecast_Overview.svg @@ -0,0 +1,4 @@ + + + +
      Catena-X
      Customer
      Catena-X...
      Catena-X
      Modular Production
      Catena-X...
      Central Catena-X
      Services
      Central Catena-X...
      Discovery
      Service
      Discovery...
      SSI
      SSI
      BPN Registry
      BPN Registry
      IAM
      IAM
      GetProductionForecastInformation
      GetProductionForecastInformation
      EDC
      EDC
      EDC
      EDC
      ProvideProductionForecastInformation
      ProvideProductionForecastInformation
      register
      register
      search
      search
      Data
      Data
      Scheduler
      Scheduler
      other shopfloor services
      other shopflo...
      OPC UA
      OPC UA
      UnsubscribeProductionForecastInformation
      UnsubscribeProductionForecastInformation
      Text is not SVG - cannot display
      \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Modular Production Kit/res/SIS_ProduktionForecast_SequenceChart.svg b/docs-kits_versioned_docs/version-23.12/kits/Modular Production Kit/res/SIS_ProduktionForecast_SequenceChart.svg new file mode 100644 index 00000000000..2fea58e7512 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Modular Production Kit/res/SIS_ProduktionForecast_SequenceChart.svg @@ -0,0 +1,4 @@ + + + +
      loop [cyclic OR notification]
      loop [cyclic OR notification]
      CatenaX
      Client
      CatenaX...
      opt [cyclic/notification]
      opt [cyclic/notification]
      [1] GetShopfloorInformation
      [1] GetShopfloorInformation
      ControlPlane
      ControlPlane
      DataPlane
      DataPlane
      ControlPlane
      ControlPlane
      DataPlane
      DataPlane
      Customer
      Customer
      Modular Production
      Modular Produ...
      1. find the appropriate SIS via 
          Discovery Service
      1. find the appropriate SIS via...
      [x] negotiations
      [x] negoti...
      Data
      Data

      Scheduler, ...
      Scheduler, ...
      [3/5] GetProdForecast_internal()
      [3/5] GetProdForecast_internal()
      Backend
      Backend
      [n] Server-Endpoint (REST, OPC, ...)
      [n] Server-Endpoint (REST, OPC, ...)
      EDC-Wrapper + EDC
      EDC-Wrapper + EDC
      return
      return
      loop [cyclic/notification]
      loop [cyclic/notificatio...
      [5] POST(ProvideProductionForecastInformation, ...)
      [5] POST(ProvideProductionForecastInformation, ...)
      EDC-Wrapper + EDC
      EDC-Wrapper + EDC
      [n] DELETE(relatedMessageId...)
      [n] DELETE(relatedMessageId...)
      Catena-X
      Client (internal)
      Catena-X...
      [GET(GetProductionForecastInformation, ...)
      [GET(GetProductionForecastInformation, ...)
      [2] GET(GetProductionForecastInformation, ...)
      [2] GET(GetProductionForecastInformation, ...)
      loop [cyclic OR notification]
      loop [cyclic OR notification]
      [5] POST(ProvideProductionForecastInformation, ...)
      [5] POST(ProvideProductionForecastInformation, ...)
      [cyclic OR notification]
      [cyclic OR notification]
      RESPONSE 200 OK
      RESPONSE 200 OK
      [cyclic OR notification]
      [cyclic OR notification]
      [n] DELETE(relatedMessageId, ...)
      [n] DELETE(relatedMessageId, ...)
      [2] REST.GET(GetProductionForecastInformation, ...)
      [2] REST.GET(GetProductionForecastInformation, ...)
      [1] Initialize
      [1] Initialize
      loop [cyclic OR notification]
      loop [cyclic OR notification]
      [5] PUT(ProvideProductionForecastInformation, ...)
      [5] PUT(ProvideProductionForecastInformation, ...)
      RESPONSE 200 OK
      RESPONSE 200 OK
      [n] DELETE(relatedMessageId, ...)
      [n] DELETE(relatedMessageId, ...)
      2. Negotiation (internal of EDC)
      2. Negotiation (internal of EDC)
      3. get the desired information
      3. get the desired information
      Customer
      Customer
      responsable: EDC
      responsable: EDC
      0. register SIS at Discovery Service
      0. register SIS at Discovery Service
      transparent for MP
      transparent for MP
      RESPONSE 200 OK
      RESPONSE 200 OK
      RESPONSE 200 OK
      RESPONSE 200 OK
      RESPONSE 200 OK
      RESPONSE 200 OK
      RESPONSE 200 OK
      RESPONSE 200 OK
      RESPONSE 200 OK
      RESPONSE 200 OK
      RESPONSE 200 OK
      RESPONSE 200 OK
      RESPONSE 200 OK
      RESPONSE 200 OK
      [3] REST.PUT(ProvideProductionForecastInformation, ...)
      [3] REST.PUT(ProvideProductionForecastInformation, ...)
      [3] POST(ProvideProductionForecastInformation, ...)
      [3] POST(ProvideProductionForecastInformation, ...)
      [3] PUT(ProvideProductionForecastInformation, ...)
      [3] PUT(ProvideProductionForecastInformation, ...)
      RESPONSE 200 OK
      RESPONSE 200 OK
      RESPONSE 200 OK
      RESPONSE 200 OK
      RESPONSE 200 OK
      RESPONSE 200 OK
      synchronous
      synchronous
      cyclic / notification
      cyclic / notifica...
      4. UnsubscribeProductionForecastInformation
      4. UnsubscribeProductionForecastInformatio...
      [n] ProvideProdForecast_internal()
      [n] ProvideProdForecast_internal()
      [n] ProvideProdForecast_internal()
      [n] ProvideProdForecast_internal()
      Text is not SVG - cannot display
      \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Modular Production Kit/res/modular-production-onboarding.pdf b/docs-kits_versioned_docs/version-23.12/kits/Modular Production Kit/res/modular-production-onboarding.pdf new file mode 100755 index 00000000000..39e0543c719 Binary files /dev/null and b/docs-kits_versioned_docs/version-23.12/kits/Modular Production Kit/res/modular-production-onboarding.pdf differ diff --git a/docs-kits_versioned_docs/version-23.12/kits/OSim Kit/Software Development View/osim-api.info.mdx b/docs-kits_versioned_docs/version-23.12/kits/OSim Kit/Software Development View/osim-api.info.mdx new file mode 100644 index 00000000000..41bc0e32c22 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/OSim Kit/Software Development View/osim-api.info.mdx @@ -0,0 +1,25 @@ +--- +id: osim-api +title: "OSim API" +description: "OSim API for requesting and receiving simulation results" +sidebar_label: Introduction +sidebar_position: 0 +hide_title: true +custom_edit_url: null +--- + +import ApiLogo from "@theme/ApiLogo"; +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; +import Export from "@theme/ApiDemoPanel/Export"; + +Version: 1.0.0 + +# OSim API + + + +OSim API for requesting and receiving simulation results + + + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/OSim Kit/Software Development View/page_software-development-view.md b/docs-kits_versioned_docs/version-23.12/kits/OSim Kit/Software Development View/page_software-development-view.md new file mode 100644 index 00000000000..9677c4eb49c --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/OSim Kit/Software Development View/page_software-development-view.md @@ -0,0 +1,60 @@ +--- +id: Specification OSim Kit +title: Specification +description: 'OSim Kit' +sidebar_position: 4 +--- + +![osim kit banner](@site/static/img/OSimKitIcon.svg) + +### OSim Kit + +## Sample Data + +The following example shows the payload used for exchange of simulation results between the OSim partners. The format corresponds with AAS format serialized as a JSON string. + +```json +{ + "owner": { "id": "BPNL00000007OTZ3" }, + "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": "BPNL00000007OTZ3" }, + "recipient": { "id": "BPNL00000007OTZ4" }, + "logistics": { "id": "BPNL00000007OS0H" }, + "preceding": {}, + "splittingAllowed": true, + "destinationTimestamp": "2023-03-19T09:00:00.000Z" + } + ], + "timestamp": "2023-03-09T14:13:42.806Z" +} +``` diff --git a/docs-kits_versioned_docs/version-23.12/kits/OSim Kit/Software Development View/receive-latest-simulation-result.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/OSim Kit/Software Development View/receive-latest-simulation-result.api.mdx new file mode 100644 index 00000000000..15de750ef50 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/OSim Kit/Software Development View/receive-latest-simulation-result.api.mdx @@ -0,0 +1,34 @@ +--- +id: receive-latest-simulation-result +title: "receiveLatestSimulationResult" +description: "Receive latest simulation result which can be stored in own OSim Manager instance" +sidebar_label: "receiveLatestSimulationResult" +hide_title: true +hide_table_of_contents: true +api: {"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":{"type":"object","properties":{"owner":{"type":"object","properties":{"id":{"type":"string"}}},"dataQuality":{"type":"integer"},"description":{"type":"string"},"comment":{"type":"string"},"expirationTimestamp":{"type":"string"},"runId":{"type":"string"},"shipments":{"type":"array","items":{"type":"object","properties":{"handlingUnits":{"type":"array","items":{"type":"object","properties":{"volume":{"type":"integer"},"batches":{"type":"array","items":{"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"}}}},"handlingUnitId":{"type":"string"},"amount":{"type":"integer"},"name":{"type":"string"},"weight":{"type":"integer"}}}},"shipmentId":{"type":"string"},"recipientTimestampPlanned":{"type":"string"},"destination":{"type":"object","properties":{"id":{"type":"string"}}},"recipient":{"type":"object","properties":{"id":{"type":"string"}}},"logistics":{"type":"object","properties":{"id":{"type":"string"}}},"preceding":{"type":"object","properties":{}},"splittingAllowed":{"type":"boolean"},"destinationTimestamp":{"type":"string"}}}},"timestamp":{"type":"string"}}},"examples":{"0":{"value":"{ \n \"owner\": { \"id\": \"BPNL00000007OTZ3\" }, \n \"dataQuality\": 1, \n \"description\": \"Daily standard simulation\", \n \"comment\": \"successful simulation\", \n \"expirationTimestamp\": \"2023-03-24T09:15:24.000Z\", \n \"runId\": \"0fece48b-c8d1-4180-1a9caca6d67e\", \n \"shipments\": [ \n { \n \"handlingUnits\": [ \n { \n \"name\": \"Palette\", \n \"volume\": 1, \n \"weight\": 189, \n \"batches\": [ \n { \n \"unitOfMeasurement\": \"KG\", \n \"materialName\": \"KK1000GR-Gehäuse-Rot\", \n \"quantity\": 50, \n \"materialNumber\": \"KK1000GR\", \n \"batchOrderId\": \"Order-0001\", \n \"batchId\": \"Batch_1\", \n \"hazardousGoods\": false, \n \"batchExpirationTimestamp\": \"2023-08-22T16:00:00.000Z\", \n \"batchNumber\": \"45\" \n } \n ], \n \"handlingUnitId\": \"HUT_1\", \n \"amount\": 1 \n } \n ], \n \"shipmentId\": \"DE51515151\", \n \"recipientTimestampPlanned\": \"2023-04-19T09:00:00.000Z\", \n \"destination\": { \"id\": \"BPNL00000007OTZ3\" }, \n \"recipient\": { \"id\": \"BPNL00000007OTZ4\" }, \n \"logistics\": { \"id\": \"BPNL00000007OS0H\" }, \n \"preceding\": {}, \n \"splittingAllowed\": true, \n \"destinationTimestamp\": \"2023-03-19T09:00:00.000Z\" \n } \n ], \n \"timestamp\": \"2023-03-09T14:13:42.806Z\" \n}"}}}}},"responses":{"200":{"description":"Simulation Result Received","content":{"text/html; charset=utf-8":{"schema":{"type":"string"},"examples":{}}}}},"servers":[{"url":"https://{server-url}"}],"method":"post","path":"/api/receiveLatestSimulationResult/requestId/{requestId}","jsonRequestBodyExample":{"owner":{"id":"string"},"dataQuality":0,"description":"string","comment":"string","expirationTimestamp":"string","runId":"string","shipments":[{"handlingUnits":[{"volume":0,"batches":[{"unitOfMeasurement":"string","materialName":"string","quantity":0,"materialNumber":"string","batchOrderId":"string","batchId":"string","hazardousGoods":true,"batchExpirationTimestamp":"string","batchNumber":"string"}],"handlingUnitId":"string","amount":0,"name":"string","weight":0}],"shipmentId":"string","recipientTimestampPlanned":"string","destination":{"id":"string"},"recipient":{"id":"string"},"logistics":{"id":"string"},"preceding":{},"splittingAllowed":true,"destinationTimestamp":"string"}],"timestamp":"string"},"info":{"title":"OSim API","description":"OSim API for requesting and receiving simulation results","version":"1.0.0"},"postman":{"name":"receive Latest Simulation Result","description":{"content":"Receive latest simulation result which can be stored in own OSim Manager instance","type":"text/plain"},"url":{"path":["api","receiveLatestSimulationResult","requestId",":requestId"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"","key":"requestId"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"text/html; charset=utf-8"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/OSim Kit/Software Development View//osim-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## receiveLatestSimulationResult + + + +Receive latest simulation result which can be stored in own OSim Manager instance + +
      Path Parameters
      Request Body
        owner object
        shipments object[]
        handlingUnits object[]
        batches object[]
        destination object
        recipient object
        logistics object
        preceding object
      + +Simulation Result Received + +
      Schema
      • string
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/OSim Kit/Software Development View/request-latest-simulation-result.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/OSim Kit/Software Development View/request-latest-simulation-result.api.mdx new file mode 100644 index 00000000000..a1d336d24e5 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/OSim Kit/Software Development View/request-latest-simulation-result.api.mdx @@ -0,0 +1,34 @@ +--- +id: request-latest-simulation-result +title: "requestLatestSimulationResult" +description: "Request latest simulation result by referring the latest simulation run id available in own OSim Manager" +sidebar_label: "requestLatestSimulationResult" +hide_title: true +hide_table_of_contents: true +api: {"tags":["requestLatestSimulationResult"],"description":"Request latest simulation result by referring the latest simulation run id available in own OSim Manager","operationId":"requestLatestSimulationResult","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":"bbf461bf-28d5-4fc2-95fa-7697eb122f48"},{"name":"simulationRunId","in":"path","required":true,"style":"simple","explode":false,"schema":{"type":"string"},"example":"50737df3-4237-4652-b092-1ef8649f6ca6"}],"responses":{"200":{"description":"Request Received","content":{"text/html; charset=utf-8":{"schema":{"type":"string"},"examples":{}}}}},"servers":[{"url":"https://{server-url}"}],"method":"get","path":"/api/requestLatestSimulationResult/bpns/{bpns}/requestId/{requestId}/simulationRunId/{simulationRunId}","info":{"title":"OSim API","description":"OSim API for requesting and receiving simulation results","version":"1.0.0"},"postman":{"name":"request Latest Simulation Result","description":{"content":"Request latest simulation result by referring the latest simulation run id available in own OSim Manager","type":"text/plain"},"url":{"path":["api","requestLatestSimulationResult","bpns",":bpns","requestId",":requestId","simulationRunId",":simulationRunId"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"","key":"requestId"},{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"","key":"bpns"},{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"","key":"simulationRunId"}]},"header":[{"key":"Accept","value":"text/html; charset=utf-8"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/OSim Kit/Software Development View//osim-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## requestLatestSimulationResult + + + +Request latest simulation result by referring the latest simulation run id available in own OSim Manager + +
      Path Parameters
      + +Request Received + +
      Schema
      • string
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/OSim Kit/Software Development View/sidebar.js b/docs-kits_versioned_docs/version-23.12/kits/OSim Kit/Software Development View/sidebar.js new file mode 100644 index 00000000000..9917ad405d8 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/OSim Kit/Software Development View/sidebar.js @@ -0,0 +1 @@ +module.exports = [{"type":"doc","id":"kits/OSim Kit/Software Development View//osim-api"},{"type":"category","label":"requestLatestSimulationResult","link":{"type":"generated-index","title":"requestLatestSimulationResult","slug":"/category/kits/OSim Kit/Software Development View/request-latest-simulation-result"},"items":[{"type":"doc","id":"kits/OSim Kit/Software Development View//request-latest-simulation-result","label":"requestLatestSimulationResult","className":"api-method get"}]},{"type":"category","label":"receiveLatestSimulationResult","link":{"type":"generated-index","title":"receiveLatestSimulationResult","slug":"/category/kits/OSim Kit/Software Development View/receive-latest-simulation-result"},"items":[{"type":"doc","id":"kits/OSim Kit/Software Development View//receive-latest-simulation-result","label":"receiveLatestSimulationResult","className":"api-method post"}]}]; \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/OSim Kit/architecture.png b/docs-kits_versioned_docs/version-23.12/kits/OSim Kit/architecture.png new file mode 100644 index 00000000000..80d9760beb1 Binary files /dev/null and b/docs-kits_versioned_docs/version-23.12/kits/OSim Kit/architecture.png differ diff --git a/docs-kits_versioned_docs/version-23.12/kits/OSim Kit/businessProcess.png b/docs-kits_versioned_docs/version-23.12/kits/OSim Kit/businessProcess.png new file mode 100644 index 00000000000..8d6f1b493e3 Binary files /dev/null and b/docs-kits_versioned_docs/version-23.12/kits/OSim Kit/businessProcess.png differ diff --git a/docs-kits_versioned_docs/version-23.12/kits/OSim Kit/page_adoption-view.md b/docs-kits_versioned_docs/version-23.12/kits/OSim Kit/page_adoption-view.md new file mode 100644 index 00000000000..9e4ae2132ef --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/OSim Kit/page_adoption-view.md @@ -0,0 +1,127 @@ +--- +id: Adoption View OSim Kit +title: Adoption View +description: 'OSim Kit' +sidebar_position: 2 +--- + +![osim kit banner](@site/static/img/OSimKitIcon.svg) + +### OSim Kit + +## Vision & Mission + + +**Gain increased supply chain transparency through collaborative simulation across all stakeholders** + +**Combine simulations of plants internally with simulations of external logistics over multiple tiers** + +Online control and simulation aims at linking production simulation with logistics simulation in order to identify delivery problems earlier and react in response to changing customer requirements or external disturbances/events +The online control and simulation (OSim) Kit defines the mechanisms and services needed to enable every Catena-X partner (producer as well as logisticians) to exchange simulation results in an open, interoperable and Catena-X compliant way. +An open architecture for integrating partners of all kinds together with standardized interfaces and semantics models are the fundamental basis of the OSim Kit. + +**Integrate any supply chain partner** + +Even partners that are not using any simulation tool can contribute to the overall transparency through the well-defined information requirements. + +**Integrate any simulation tool** + +Thanks to open architecture OSim is independent of the simulation tools that partners use. + +## Business Value + +Conventional planning and simulation tools use material flow simulations only on the plant level but they don't exchange simulation results with their respective partners in the supply chain. OSim goes beyond this by enabling every Catena-X partner (producers as well as logisticians) to integrate material flow simulation results of their partners into the simulation of their own processes. This is achieved by sharing the material flow simulation results on supply chain level. + +The simulation results of the Catena-X partners on the supply chain's lower tier level and logistics, together with data of the company's own operations are fed into a simulation model as input. Considering both, plannable and unpredictable influencing factors, this simulation model is iterated as often as necessary until an optimal result has been found. Sharing of simulation results to the next tier level is the core capability of the collaborative simulation approach. + +A central application takes over the tasks of monitoring and controlling the transmission of the simulation results, regardless of the level of digitalization of the partners. In addition, this application takes over the control of the simulation tools used. + +![Example of an OSim partner network from the perspective of the producing company WERK-76](./werk76.png) + +Benefits for OEM, SME and Solution Provider + +- Collaborative simulation over the supply chain +- Linking production simulation and logistics simulation +- Early detection and reaction to delivery problems +- Early response to changing customer requirements +- Take external disturbances/events into account early + +## Business Process + +The simulation results of the Catena-X partners on the lower tier level and logistics, together with data of the company's own operations are fed into the individual simulation model as input. Considering both, planable and unforeseeable influencing factors, this simulation model is iterated through as often as necessary until an optimal production schedule is reached and a simulation result is created. Sharing of simulation results to the next tier level is the base of the collaborative simulation approach in a short-term horizon, across the complete supply chain. + +The following picture shows the fundamental network structure, consisting of suppliers, logisticians and OEMs who exchange simulation results with each other, considering the one-up and one-down principles. Every material flow simulation result includes information about delivery readiness of packaged material goods, like material identifier, amount, delivery time and destination. + +![business processes](./businessProcess.png) + +## Semantic Model + +### Materialflow Simulation Result (MaterialFlowSimulationResult) + +The Semantic Model *MaterialFlowSimulationResult* summarizes simulation results of the individual partners and is used for data exchange along the supply chain. + +The *MaterialFlowSimulationResult* object will be sent by OSim partner to another OSim partner on a higher tier level. OSim partner can be a producing company as well as a logistics company. + +Every *MaterialFlowSimulationResult* includes information about delivery readiness of packaged material goods, like material identifier, amount, delivery time and destination. + +#### Structure of the Material Flow Result + +The MaterialFlowSimulationResult semantic model contains 4 hierarchical entities: + +- MaterialFlowSimulationResult +- Shipment +- HandlingUnit +- MaterialBatch + +One MaterialFlowSimulationResult refers to one or more Shipments. + +**Shipment** describes a delivery approach with information about source, destination and delivery time. One Shipment refers to one or more HandlingUnits. + +**HandlingUnit** describes the smallest shipment unit. One HandlingUnit refers to one or more MaterialBatches. The parameter Amount allows to define how many absolute identical (size and content) HandlingUnits are included in the shipment. + +**MateriaBatch** describes the material and the quantity which the handling unit contains. + +#### Aspect Model + +Github Link to semantic data model: + +## Logic & Schema + +### Architecture + +#### Introduction + +The Osim approach is based on a distributed simulation in which each participant simulates its role and additionally exchanges information with its suppliers and customers online via standardized interfaces. In the process, a strict 1-up / 1-down principle (i.e. data is only exchanged with the immediate predecessors and successors in the supply chain) guarantees compliance with antitrust regulations. The data exchange itself is carried out according to Gaia-X principles, which guarantee the data sovereignty of all partners involved. + +All partners involved in the supply chain simulate their respective actions (production or logistical deliveries) on the basis of the latest information from the shop floor and its internal systems. They then pass this on to the successors in the supply chain according to the 1-up principle, where a new simulation is carried out on the basis of this possibly changed information. In OSim, a "horizontal" exchange of information across the supply chain is thus combined with a "vertical" exchange with the simulation tools and thus indirectly with the shop floor. + +#### Components + +The OSim solution is built of different components mixed by CATENA-X central services and specific OSim components. The main OSim-specific application is the OSim Manager, followed by Simulation tools for logistics and production. + +The OSim Manager is a software application that exchanges all the information necessary for a local understanding of the supply chain with the partners and simulation tools, collects it and prepares it for the user. + +The simulation tools are responsible for the processing of material flow simulations in both, production plants and logistics. + +The following central services are needed for the communication along the supply chain: + +- Business Partner Number (BPN) Registry = Management of business partner legal entities, sites and addresses used to identify the partners and their BPN-IDs for communication +- Identity and Access Management (IAM) = IdP used to login against Catena-X services +- Self Sovereign Identity (SSI) = Central service hosting the EDCs certificates (public keys). Used for mutual authentication between different EDC instances +- Discovery Service (DS) = as a central registry used to store/lookup the EDC endpoints for OSim requests/sending. +- Eclipse Data Connector (EDC) = Handling contract negotiation and initiates data transfer. The Eclipse Data Connector (EDC) interface enables data exchange between the OSim managers of the participating partners. + +### Architecture and Dataflow + +![architecture](./architecture.png) + +### Technical requirements for a CATENA-X compliant data transmission + +The following appropriate configurations must be made in advance of the data exchange: + +1. In the BPN registry, all partner instances (production sites) participating in the OSim use case must be listed with their respective site identification and address. The BPN IDs of the production sites (BPNS) are used for registration in the DS. +2. In the IAM, each OSim participating partner must apply for a "technical user", which is used for process communication with the central services. +3. Registration of OSim endpoints takes place in the Discovery Service. +4. The certificates required for SSI are issued on request. + +At runtime the OSim Manager application must know the partner BPN-ID of the communication partner. With this BPN-ID, a look-up command is issued on the Discovery Service. The result is the endpoint link that the EDC connector needs to establish the connection. diff --git a/docs-kits_versioned_docs/version-23.12/kits/OSim Kit/page_changelog.md b/docs-kits_versioned_docs/version-23.12/kits/OSim Kit/page_changelog.md new file mode 100644 index 00000000000..13c29182c9a --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/OSim Kit/page_changelog.md @@ -0,0 +1,26 @@ +--- +id: OSim Kit Changelog +title: Changelog +description: 'OSim Kit' +sidebar_position: 1 +--- + +![osim kit banner](@site/static/img/OSimKitIcon.svg) + +### OSim Kit + +All notable changes to this Kit will be documented in this file. + +## [1.0.0] - 2023-08-18 + +### Added + +- Initial version of the Kit including adoption and development view + +### Changed + +- ./. + +### Removed + +- ./. diff --git a/docs-kits_versioned_docs/version-23.12/kits/OSim Kit/werk76.png b/docs-kits_versioned_docs/version-23.12/kits/OSim Kit/werk76.png new file mode 100644 index 00000000000..4e28607ee88 Binary files /dev/null and b/docs-kits_versioned_docs/version-23.12/kits/OSim Kit/werk76.png differ diff --git a/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/Software Development View/page_software-development-view.md b/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/Software Development View/page_software-development-view.md new file mode 100644 index 00000000000..85c0a885c05 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/Software Development View/page_software-development-view.md @@ -0,0 +1,247 @@ +--- +id: Specification +title: Specification +description: 'PCF-Exchange-KIT' +sidebar_position: 3 +--- + +## Introduction + +The developer view provides a detailed guide on how to utilize the PCF exchange KIT effectively. Developer will learn how to integrate the kit into there applications and make use of the feature of exchanging PCF values via the Catena-X network. +IT-Administrators will learn how they need to provide PCF data and which components are needed therefore. + +This Kit covers various aspects, starting from how utilize the available API Endpoints, the used data models and how to make them available to the Catena-X network. + +## Building Block View + +The following figure shows the current high level architecture of the use case PCF exchange. It is build on an asynchronous data exchange. + +![Building Block View](../resources/development-view/BuildingblockView.png) + +## Sequence View + +The following chapter illustrates the process from searching for an EDC point, to querying a PCF value, and finally transmitting the requested value. + +### EDC Discovery and dDTR Access + +For receiving the EDC Endpoints for a requested partner, the EDC Discovery Service is used, following the [CX-0001]([test](https://catena-x.net/de/standard-library)) Standard. For receiving endpoints, at least the BPN-L needs to be known to get the related endpoints. For more details the used Catena-X Standard is linked. + +![EDCDiscoveryAndDTRAccess](../resources/development-view/PCFUpdatepushthroughEDC.png) + +### PCF Request + +To actual request PCF values via the PCF API endpoint first of all the EDC PCF asset needs to be identified. Therefore the decentralized Digital Twin Registry (dDTR) is used. Data provider must register their dDTR(s) as EDC assets following the CX-0002 standard. After identifying the dDTR the Digital Twin with the related PCF submodel can be searched (see [API calls [0003 +0004]](#api-calls)). An example are documented [here](#payload-for-requesting-pcf-sub-model). +After successfully locating the EDC asset containing the PCF request endpoint (Example Payload can be found [here](#payload-for-edc-data-asset-pcf)), the query for a PCF dataset can be initiated, as illustrated in the attached sequence diagram. + +![PCF Request](../resources/development-view/PCFRequestthroughAAS.png) + +>**Note** +> The API Wrapper shown in the sequence diagrams is optional. The management API of the EDC can also be used directly. + +### PCF Update + +The sequence diagram provided below presents an example of a PCF update flow. An update is feasible only for assets that have been previously requested at least once, as demonstrated in [PCF Request](#sequence-view). Proactive updates without a prior request are not achievable with the current version. + +![PCF Update](../resources/development-view/PCFUpdatepushthroughEDC.png) + +#### API Calls + +| Call | Method | Path | Param | +|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------|------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------| +| [001](https://eclipse-tractusx.github.io/docs-kits/next/kits/Digital%20Twin%20Kit/Software%20Development%20View/API%20EDC%20Discovery/post-list-of-bpns-or-an-empty-array-to-retrieve-available-company-connector-authorization-required-roles-view-connectors) (Look up EDC Endpoints) | POST | /api/administration/Connectors/discovery/ | `[]` | +| [002](https://eclipse-tractusx.github.io/docs-kits/next/kits/tractusx-edc/docs/samples/management-api-v2-walkthrough/catalog) (Look up dDTR) | POST | /v2/catalog/request-->Lookup Asset in the EDC catalog (EDC asset type data.core.digitalTwinRegistry) | | +| [003](https://eclipse-tractusx.github.io/docs-kits/next/kits/Digital%20Twin%20Kit/Software%20Development%20View/API%20AAS%20Discovery/get-all-asset-administration-shell-ids-by-asset-link) (Lookup Twin ID) | GET | /lookup/shells | `assetIds= [{"key": "manufacturerPartId", "value":"mat345",{"key":"assetLifecyclePhase", "value": "AsPlanned"}}]` | +| [004](https://eclipse-tractusx.github.io/docs-kits/next/kits/Digital%20Twin%20Kit/Software%20Development%20View/API%20AAS%20Registry/get-all-asset-administration-shell-descriptors) (Look Up PCF Submodel/EDC Asset ID) | GET | /shell-descriptors | `{DIGITAL TWIN ID}` | +| [005] (Requesting PCF Value) | GET | /productIds | {productId} | +| 006 (Sending PCF Value) | PUT | /productIds | {productId} | + +- The assetIds under [003] must be base64 encoded! +- When responding on PCF exchange request the "requestID" is mandatory in the PUT call. +- When sharing a PCF update the "requestID" is NOT allowed in the PUT call. +- The EDC asset used to receive PCF is NOT looked up through AAS, but identified by type ("data.pcf.exchangeEndpoint"). + +##### Payload for Requesting PCF Sub Model + +The following JSON shows the structure of a registered PCF submodel in the DTR. The subprotocolBody is used for asset bundling. For this, the CX Standard [CX-0002](https://catena-x.net/de/standard-library) is to be followed. + +The digital twin id can be searched via the, `manufacturerPartId` and the ``assetLifecyclePhase:"asPlanned"`` +The sub-model PCF must be registered with the ``idshort: PCFExchangeEndpoint``. + +```json +{ + "description": [ + { + "language": "en", + "text": "PCF endpoint for material 'mat345'" + } + ], + "idShort": "PCFExchangeEndpoint", + "identification": "urn:uuid:205cf8d1-8f07-483c-9c5b-c8d706c7d05d", + "semanticId": { + "value": [ + "urn:bamm:io.catenax.pcf:4.0.0#Pcf" + ] + }, + "endpoints": [ + { + "interface": "PCF-0.0.3", + "protocolInformation": { + "href": "https://edc.data.plane/productIds/mat345", + "endpointProtocol": "HTTP", + "endpointProtocolVersion": ["1.1"] + "subprotocol": "DSP", + "subprotocolBody": "id=c34018ab-5820-4065-9087-416d78e1ab60;dspEndpoint=https://some.controlplane.url:7173", + "subprotocolBodyEncoding": "plain" + } + } + ] +} +``` + +#### Payloads for EDC Asset + +##### Payload for EDC Data Asset PCF + +The following JSON shows the the EDC Asset for PCF defined in the EDC using the asset bundling mentioned under [Payload for Requesting PCF Sub Model](#api-calls). + +```json + "@type": "edc:AssetEntryDto", + "edc:asset": { + "@id": "c34018ab-5820-4065-9087-416d78e1ab60", + "edc:properties": { + "rdfs:label": "PCF Data", + "rdfs:comment": "Endpoint for PCF data", + "dcat:version": "0.0.3", + "aas-semantics:semanticId": "urn:bamm:io.catenax.pcf:4.0.0#Pcf", + "edc:contentType": "application/json", + "edc:type": "data.pcf.exchangeEndpoint" + }, + "edc:privateProperties": null, + + "edc:dataAddress": { + "edc:type": "edc:HttpData", + "edc:baseUrl": https://some.url/service, + "edc:proxyBody": "true", + "edc:proxyPath": "true", + "edc:proxyQueryParams": "true", + "edc:proxyMethod": "true", + "edc:contentType": "application/json" + } +} + +``` + +#### Payload for EDC Policy + +The following JSON is an policy definition including the policy "frameworkagreement pcf" and membership. The [frameworkagreement document](https://catena-x.net/fileadmin/user_upload/04_Einfuehren_und_umsetzen/Governance_Framework/Catena-X_UseCasePCFExchange_Beta-Phase_DE.pdf) is published via the association and are available via the Catena-X homepage. The membership credential is automatically created after finishing successfully the onboarding process. + +##### Payload to create a SSI based Policy + +```json + +{ + "@context": { + "odrl": "http://www.w3.org/ns/odrl/2/" + }, + "@type": "PolicyDefinitionRequestDto", + "@id": "{{POLICY_ID}}", + "policy": { + "@type": "Policy", + "odrl:permission": [ + { + "odrl:action": "USE", + "odrl:constraint": { + "@type": "LogicalConstraint", + "odrl:and": [ + { + "@type": "Constraint", + "odrl:leftOperand": "activeMember", + "odrl:operator": { + "@id": "odrl:eq" + }, + "odrl:rightOperand": "active" + }, + { + "@type": "Constraint", + "odrl:leftOperand": "FrameworkAgreement.pcf", + "odrl:operator": { + "@id": "odrl:eq" + }, + "odrl:rightOperand": "active" + } + ] + } + } + ] + } +} + +``` + +For more examples how to define policies with SSI have a look [here](https://github.com/eclipse-tractusx/ssi-docu/blob/main/docs/architecture/cx-3-2/edc/policy.definitions.md). + +#### Payload Contract Definition + +```json +{ + "@id": "54ef3326-42b2-4221-8c5a-3a6270d54db8", + "edc:accessPolicyId": "a343fcbf-99fc-4ce8-8e9b-148c97605aab", + "edc:contractPolicyId": "a343fcbf-99fc-4ce8-8e9b-148c97605aab", + "edc:assetsSelector": [ + { + "@type": "Criterion", + "edc:operandLeft": "@id", + "edc:operator": "=", + "edc:operandRight": "c34018ab-5820-4065-9087-416d78e1ab60" + } + ] +} +``` + +## Error Handling + +As Release 3.2 only covers the "happy path" for exchange PCF data via the Catena-X network. Error handling is currently not covered. + +## Standards + +### Used CX Standards + +- [CX-0001-EDCDiscoveryAPI](https://catena-x.net/de/standard-library) +- [CX-0002-DigitalTwinsInCX](https://catena-x.net/de/standard-library) +- [CX-0003-SAMMSemanticAspectMetaModel](https://catena-x.net/de/standard-library) +- [CX-0006-RegistrationAndInitialOnBoarding](https://catena-x.net/de/standard-library) +- [CX-0013 Identity of Member Companies](https://catena-x.net/de/standard-library) +- [CX-0014 Employees and Technical Users](https://catena-x.net/de/standard-library) +- [CX-0015 IAM & Access Control Paradigm](https://catena-x.net/de/standard-library) +- [CX-0016 Company Attribute Verification](https://catena-x.net/de/standard-library) +- [CX-0017 Company Role by the Connector](https://catena-x.net/de/standard-library) +- [CX-0018-SovereignDataExchange](https://catena-x.net/de/standard-library) +- [CX-0026 PCF Data Model](https://catena-x.net/de/standard-library) +- [CX-0029 Product Carbon Footprint Rulebook](https://catena-x.net/de/standard-library) +- [CX-0049-DID Document Schema](NeedtobeaddedbyAccociation) +- [CX-0050-Framework Agreement Credential](NeedtobeaddedbyAccociation) +- [CX-0051-Summary Credential](NeedtobeaddedbyAccociation) + +## Other Standards + +- [Pathfinder Framework](https://wbcsd.github.io/data-exchange-protocol/v2/) + +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2023,2023 ZF Friedrichshafen AG +- SPDX-FileCopyrightText: 2023,2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +- SPDX-FileCopyrightText: 2023,2023 T-Systems International GmbH +- SPDX-FileCopyrightText: 2023,2023 SAP SE +- SPDX-FileCopyrightText: 2023,2023 SIEMENS AG +- SPDX-FileCopyrightText: 2023,2023 SUPPLY ON AG +- SPDX-FileCopyrightText: 2023,2023 Volkswagen AG +- SPDX-FileCopyrightText: 2023,2023 Robert Bosch GmbH +- SPDX-FileCopyrightText: 2023,2023 Mercedes Benz Group +- SPDX-FileCopyrightText: 2023,2023 BASF SE +- SPDX-FileCopyrightText: 2023,2023 CCT +- SPDX-FileCopyrightText: 2023,2023 Gris Group +- SPDX-FileCopyrightText: 2023,2023 Contributors to the Eclipse Foundation +- Source URL: https://github.com/eclipse-tractusx/pcf-exchange-kit diff --git a/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/Software Development View/pcf-exchange-api/catena-x-pcf-request-endpoint.info.mdx b/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/Software Development View/pcf-exchange-api/catena-x-pcf-request-endpoint.info.mdx new file mode 100644 index 00000000000..20034d9984c --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/Software Development View/pcf-exchange-api/catena-x-pcf-request-endpoint.info.mdx @@ -0,0 +1,21 @@ +--- +id: catena-x-pcf-request-endpoint +title: "Catena-X-pcf-request-endpoint" +description: " A API for request, send and update PCF data" +sidebar_label: Introduction +sidebar_position: 0 +hide_title: true +custom_edit_url: null +--- + +import ApiLogo from "@theme/ApiLogo"; +import SchemaTabs from "@theme/SchemaTabs"; +import TabItem from "@theme/TabItem"; +import Export from "@theme/ApiDemoPanel/Export"; + +Version: 0.0.3 + +# Catena-X-pcf-request-endpoint + + +A API for request, send and update PCF data via the Catena-X Network. diff --git a/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/Software Development View/pcf-exchange-api/get-pcf.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/Software Development View/pcf-exchange-api/get-pcf.api.mdx new file mode 100644 index 00000000000..41fa03016ad --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/Software Development View/pcf-exchange-api/get-pcf.api.mdx @@ -0,0 +1,34 @@ +--- +id: get-pcf +title: "get_pcf" +description: "get_pcf" +sidebar_label: "get_pcf" +hide_title: true +hide_table_of_contents: true +api: {"operationId":"get_pcf","parameters":[{"name":"productId","description":"ID of the product/material the PCF is requested for","example":"SomeProductID","in":"path","required":true,"schema":{"type":"string"}},{"name":"BPN","description":"The caller's Catena-X BusinessPartnerNumber","example":"BPN9354218404L","in":"query","required":true,"schema":{"type":"string"}},{"name":"requestId","description":"ID identifying the call (will be referenced in corresponding PCF response)","example":"X374e9453K","in":"query","required":true,"schema":{"type":"string"}},{"name":"message","in":"query","required":false,"description":"URL encoded, max 250 chars","example":"No%20offset%20included%2C%20please%21","schema":{"type":"string"}}],"responses":{"202":{"description":"PCF was accepted. PCF will be sent later via to POST endpoint."}},"description":"get_pcf","method":"get","path":"/productIds/{productId}","info":{"title":"Catena-X-pcf-request-endpoint","version":"0.0.3"},"postman":{"name":"get pcf","description":{"type":"text/plain"},"url":{"path":["productIds",":productId"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"description":{"content":"(Required) The caller's Catena-X BusinessPartnerNumber","type":"text/plain"},"key":"BPN","value":""},{"disabled":false,"description":{"content":"(Required) ID identifying the call (will be referenced in corresponding PCF response)","type":"text/plain"},"key":"requestId","value":""},{"disabled":false,"description":{"content":"URL encoded, max 250 chars","type":"text/plain"},"key":"message","value":""}],"variable":[{"disabled":false,"description":{"content":"(Required) ID of the product/material the PCF is requested for","type":"text/plain"},"type":"any","value":"","key":"productId"}]},"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/PCF Exchange Kit/Software Development View/pcf-exchange-api/catena-x-pcf-request-endpoint +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## get_pcf + + + +get_pcf + +
      Path Parameters
      Query Parameters
      + +PCF was accepted. PCF will be sent later via to POST endpoint. + +
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/Software Development View/pcf-exchange-api/set-pcf.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/Software Development View/pcf-exchange-api/set-pcf.api.mdx new file mode 100644 index 00000000000..2fe561a409a --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/Software Development View/pcf-exchange-api/set-pcf.api.mdx @@ -0,0 +1,86 @@ +--- +id: set-pcf +title: "set_pcf" +description: "set_pcf" +sidebar_label: "set_pcf" +hide_title: true +hide_table_of_contents: true +api: {"operationId":"set_pcf","parameters":[{"name":"productId","description":"ID of the product/material the PCF referring to","example":"SomeProductID","in":"path","required":true,"schema":{"type":"string"}},{"name":"BPN","description":"The caller's Catena-X BusinessPartnerNumber","example":"BPN83456784L","in":"query","required":true,"schema":{"type":"string"}},{"name":"requestId","description":"ID identifying the request call (same as within original PCF request), if the PUT is responding to a call. Can be dismissed in a PCF update call.","example":"X374e9453K","in":"query","required":false,"schema":{"type":"string"}}],"requestBody":{"description":"The requested PCF in WBCSD format","required":true,"content":{"application/json":{"schema":{"description":"A Product (Carbon) Footprint represents the carbon footprint of a product with values as specified in the Catena-X PCF Rulebook in accordance with the WBCSD (World Business Council for Sustainable Development) Pathfinder framework and the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD/ PACT initiative.","type":"object","properties":{"id":{"description":"The product footprint identifier as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"string","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}$","title":"urn_bamm_io.catenax.pcf_4.0.0_IdTrait"},"specVersion":{"description":"Version of the product footprint data specification as defined in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"string","title":"urn_bamm_io.openmanufacturing_characteristic_2.0.0_Text"},"partialFullPcf":{"description":"Indicator for partial or full PCF (Product Carbon Footprint) declaration as specified in the Catena-X PCF Rulebook.","type":"string","enum":["Cradle-to-gate","Cradle-to-grave"],"title":"urn_bamm_io.catenax.pcf_4.0.0_PartialFullPcfCharacteristic"},"precedingPfIds":{"description":"Set of preceding PCF (Product Carbon Footprint) identifiers without duplicates as specified in the Catena-X PCF Rulebook in accordance with the WBCSD (World Business Council for Sustainable Development) Pathfinder framework and the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD/ PACT initiative. Declared as \"optional\" in WBCSD, needs to be covered by application.","type":"array","items":{"description":"Entity for defining a preceding PCF (Product Carbon Footprint) identifier entity as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"object","properties":{"id":{"description":"The product footprint identifier as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"string","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}$","title":"urn_bamm_io.catenax.pcf_4.0.0_IdTrait"}},"required":["id"],"title":"urn_bamm_io.catenax.pcf_4.0.0_PrecedingPfId"},"uniqueItems":true,"minItems":1,"title":"urn_bamm_io.catenax.pcf_4.0.0_PrecedingPfIdsTrait"},"version":{"description":"Version of the product (carbon) footprint as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative. In Catena-X for example set to \"0\" per default.","type":"number","minimum":1,"title":"urn_bamm_io.catenax.pcf_4.0.0_ProductFootprintVersion"},"created":{"description":"Timestamp of the creation of the Product (Carbon) Footprint as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"string","pattern":"-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?|(24:00:00(\\.0+)?))(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?","title":"urn_bamm_io.openmanufacturing_characteristic_2.0.0_Timestamp"},"extWBCSD_pfStatus":{"description":"Status indicator of a product (carbon) footprint as specified in the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative. WBCSD specific extension, in Catena-X for example set to \"Active\" per default.","type":"string","enum":["Active","Deprecated"],"title":"urn_bamm_io.catenax.pcf_4.0.0_PfStatusCharacteristic"},"validityPeriodStart":{"description":"Start of interval during which the product (carbon) footprint is declared as valid as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative. If specified, the validity period start must be equal to or greater than the reference period end.","type":"string","pattern":"-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?|(24:00:00(\\.0+)?))(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?","title":"urn_bamm_io.openmanufacturing_characteristic_2.0.0_Timestamp"},"validityPeriodEnd":{"description":"End of interval during which the product (carbon) footprint is declared as valid as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"string","pattern":"-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?|(24:00:00(\\.0+)?))(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?","title":"urn_bamm_io.openmanufacturing_characteristic_2.0.0_Timestamp"},"comment":{"description":"Additional information and instructions related to the calculation of the product (carbon) footprint as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"string","title":"urn_bamm_io.openmanufacturing_characteristic_2.0.0_Text"},"companyName":{"description":"Name of the product (carbon) footprint data owner as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"string","minLength":1,"title":"urn_bamm_io.catenax.pcf_4.0.0_NonEmptyStringTrait"},"companyIds":{"description":"Non-empty set of Uniform Resource Names (URN). Each value is supposed to uniquely identify the product (carbon) footprint data owner as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"array","items":{"description":"Company identifier in context of a product (carbon) footprint which must be declared as URN (Uniform Resource Name) as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"object","properties":{"companyId":{"description":"Identifier of a company in context of a product (carbon) footprint as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"string","format":"uri","title":"urn_bamm_io.catenax.pcf_4.0.0_CompanyIdCharacteristic"}},"required":["companyId"],"title":"urn_bamm_io.catenax.pcf_4.0.0_CompanyId"},"uniqueItems":true,"minItems":1,"title":"urn_bamm_io.catenax.pcf_4.0.0_CompanyIdsTrait"},"productDescription":{"description":"Free-form description of the product as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"string","title":"urn_bamm_io.openmanufacturing_characteristic_2.0.0_Text"},"productIds":{"description":"Non-empty set of product identifiers. Each value is supposed to uniquely identify the product as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"array","items":{"description":"Identifier of a product in context of a product (carbon) footprint as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"object","properties":{"productId":{"description":"Identifier of a product in context of a product (carbon) footprint as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"string","format":"uri","title":"urn_bamm_io.catenax.pcf_4.0.0_ProductIdCharacteristic"}},"required":["productId"],"title":"urn_bamm_io.catenax.pcf_4.0.0_ProductId"},"uniqueItems":true,"minItems":1,"title":"urn_bamm_io.catenax.pcf_4.0.0_ProductIdsTrait"},"extWBCSD_productCodeCpc":{"description":"UN (United Nations) Product Classification Code (CPC - Central Classification Code) of a given product as specified the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative. WBCSD specific extension, which will probably be declared as \"optional\" in a later WBCSD specification version. In Catena-X for example specified with default value \"011-99000\".","type":"string","title":"urn_bamm_io.openmanufacturing_characteristic_2.0.0_Text"},"productName":{"description":"Non-empty trade name of a product as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"string","minLength":1,"title":"urn_bamm_io.catenax.pcf_4.0.0_NonEmptyStringTrait"},"pcf":{"description":"A PCF (Product Carbon Footprint) represents the carbon footprint of a product and related data as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"object","properties":{"declaredUnit":{"description":"Unit of analysis of a product in context of the PCF (product carbon footprint) as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative. In Catena-X for example list of valid units includes \"piece\".","type":"string","enum":["liter","kilogram","cubic meter","kilowatt hour","megajoule","ton kilometer","square meter","piece"],"title":"urn_bamm_io.catenax.pcf_4.0.0_DeclaredUnitCharacteristic"},"unitaryProductAmount":{"description":"Amount of units contained within a product in context of the PCF (Product Carbon Footprint) as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"number","minimum":0,"exclusiveMinimum":true,"title":"urn_bamm_io.catenax.pcf_4.0.0_StrictlyPositiveDecimalTrait"},"productMassPerDeclaredUnit":{"description":"Mass of a product per declared unit in context of the PCF (Product Carbon Footprint) as specified in the Catena-X PCF Rulebook.","type":"number","minimum":0,"exclusiveMinimum":false,"title":"urn_bamm_io.catenax.pcf_4.0.0_PositiveDecimalWeightTrait"},"exemptedEmissionsPercent":{"description":"Percentage of emissions excluded from PCF (Product Carbon Footprint) as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"number","maximum":5,"exclusiveMaximum":false,"minimum":0,"exclusiveMinimum":false,"title":"urn_bamm_io.catenax.pcf_4.0.0_ExemptedEmissionsPercentTrait"},"exemptedEmissionsDescription":{"description":"Rationale behind exclusion of specific PCF (Product Carbon Footprint) emissions as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"string","title":"urn_bamm_io.openmanufacturing_characteristic_2.0.0_Text"},"boundaryProcessesDescription":{"description":"Processes attributable to each lifecycle stage as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"string","title":"urn_bamm_io.openmanufacturing_characteristic_2.0.0_Text"},"geographyCountrySubdivision":{"description":"Subdivision of a country which must be an ISO 3166-2 subdivision code as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"string","pattern":"([A-Z]{2}-[A-Z0-9]{1,3}|)","title":"urn_bamm_io.catenax.pcf_4.0.0_GeographyCountrySubdivisionTrait"},"geographyCountry":{"description":"Two letter country code that must conform to data type ISO 3166CC as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"string","pattern":"([A-Z]{2})","title":"urn_bamm_io.catenax.pcf_4.0.0_GeographyCountryTrait"},"geographyRegionOrSubregion":{"description":"Region according to list as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"string","enum":["Africa","Americas","Asia","Europe","Oceania","Australia and New Zealand","Central Asia","Eastern Asia","Eastern Europe","Latin America and the Caribbean","Melanesia","Micronesia","Northern Africa","Northern America","Northern Europe","Polynesia","South-eastern Asia","Southern Asia","Southern Europe","Sub-Saharan Africa","Western Asia","Western Europe","Global"],"title":"urn_bamm_io.catenax.pcf_4.0.0_GeographyRegionOrSubregionCharacteristic"},"referencePeriodStart":{"description":"Start of time boundary for which a PCF (Product Carbon Footprint) value is considered to be representative as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"string","pattern":"-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?|(24:00:00(\\.0+)?))(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?","title":"urn_bamm_io.openmanufacturing_characteristic_2.0.0_Timestamp"},"referencePeriodEnd":{"description":"End of time boundary for which a PCF (Product Carbon Footprint) value is considered to be representative as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"string","pattern":"-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?|(24:00:00(\\.0+)?))(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?","title":"urn_bamm_io.openmanufacturing_characteristic_2.0.0_Timestamp"},"crossSectoralStandardsUsed":{"description":"Discloses the cross-sectoral standards applied for calculating or allocating GHG (Greenhouse Gas) emissions as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"array","items":{"description":"Entity for defining an accounting standard used for product carbon footprint calculation as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"object","properties":{"crossSectoralStandard":{"description":"Discloses a cross-sectoral standard applied for calculating or allocating GHG (Greenhouse Gas) emissions as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"string","enum":["GHG Protocol Product standard","ISO Standard 14067","ISO Standard 14044"],"title":"urn_bamm_io.catenax.pcf_4.0.0_CrossSectoralStandardsUsedEnumerationCharacteristic"}},"required":["crossSectoralStandard"],"title":"urn_bamm_io.catenax.pcf_4.0.0_CrossSectoralStandard"},"title":"urn_bamm_io.catenax.pcf_4.0.0_CrossSectoralStandardSet"},"productOrSectorSpecificRules":{"description":"Product or sector specific rules applied for calculating or allocating GHG (Greenhouse Gas) emissions, e.g. PCRs (Product Category Rules), including operators or publishers and according rule names as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"array","items":{"description":"Entity for defining a product or sector specific rule of a product carbon footprint as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"object","properties":{"extWBCSD_operator":{"description":"Operator of PCR (Product Category Rule)/ PSR (Product Specific Rule) as specified in the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative. WBCSD specific extension, in Catena-X for example must always be \"Other\".","type":"string","enum":["PEF","EPD International","Other"],"title":"urn_bamm_io.catenax.pcf_4.0.0_ProductOrSectorSpecificRuleOperator"},"productOrSectorSpecificRules":{"description":"Product-specific or sector-specific set of rules used for calculating or allocating GHG (Greenhouse Gas) emissions applied from the specified operator as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"array","items":{"description":"Name of a rule applied by a specified operator as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"object","properties":{"ruleName":{"description":"Name of a rule applied by a specific operator as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"string","minLength":1,"title":"urn_bamm_io.catenax.pcf_4.0.0_NonEmptyStringTrait"}},"required":["ruleName"],"title":"urn_bamm_io.catenax.pcf_4.0.0_RuleName"},"uniqueItems":true,"minItems":1,"title":"urn_bamm_io.catenax.pcf_4.0.0_RuleNamesTrait"},"extWBCSD_otherOperatorName":{"description":"Other operator of PCR (Product Category Rule)/ PSR (Product Specific Rule) as specified in the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative. WBCSD specific extension, in Catena-X for example specified by a default value.","type":"string","minLength":1,"title":"urn_bamm_io.catenax.pcf_4.0.0_NonEmptyStringTrait"}},"required":["extWBCSD_operator","productOrSectorSpecificRules"],"title":"urn_bamm_io.catenax.pcf_4.0.0_ProductOrSectorSpecificRule"},"uniqueItems":true,"title":"urn_bamm_io.catenax.pcf_4.0.0_ProductOrSectorSpecificRuleSet"},"extWBCSD_characterizationFactors":{"description":"IPCC (Intergovernmental Panel on Climate Change) version of the GWP (Global Warming Potential) characterization factors used for calculating the PCF (Product Carbon Footprint) as specified in the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative. WBCSD specific extension, in Catena-X for example specified by default with value \"AR6\".","type":"string","enum":["AR5","AR6"],"title":"urn_bamm_io.catenax.pcf_4.0.0_CharacterizationFactorsCharacteristic"},"extWBCSD_allocationRulesDescription":{"description":"Allocation rules used and underlying reasoning in context of a product carbon footprint as specified in the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative. WBCSD specific extension, in Catena-X for example specified by default with value \"In accordance with Catena-X PCF Rulebook\".","type":"string","title":"urn_bamm_io.openmanufacturing_characteristic_2.0.0_Text"},"extTFS_allocationWasteIncineration":{"description":"Allocation approach used for waste incineration with energy recovery as specified by the TFS (Together For Sustainability) initiative. In Catena-X for example must be specified by value \"cut-off\".","type":"string","enum":["cut-off","reverse cut-off","system expansion"],"title":"urn_bamm_io.catenax.pcf_4.0.0_AllocationWasteIncinerationCharacteristic"},"primaryDataShare":{"description":"Share of primary data in percent as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"number","maximum":100,"exclusiveMaximum":false,"minimum":0,"exclusiveMinimum":false,"title":"urn_bamm_io.catenax.pcf_4.0.0_PercentTrait"},"secondaryEmissionFactorSources":{"description":"Emission factors used for the PCF (Product Carbon Footprint) calculation as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"array","items":{"description":"Entity for defining an emission factor data source used to calculate a product carbon footprint as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"object","properties":{"secondaryEmissionFactorSource":{"description":"Characteristic for defining an emission factor data source used to calculate a product carbon footprint as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"string","title":"urn_bamm_io.openmanufacturing_characteristic_2.0.0_Text"}},"required":["secondaryEmissionFactorSource"],"title":"urn_bamm_io.catenax.pcf_4.0.0_EmissionFactorDS"},"uniqueItems":true,"title":"urn_bamm_io.catenax.pcf_4.0.0_EmissionFactorDSSet"},"dataQualityRating":{"description":"Quantitative data quality indicators of a PCF (Product Carbon Footprint) as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"object","properties":{"coveragePercent":{"description":"Percentage of PCF (Product Carbon Footprint) included in the data quality assessment based on the >5% emissions threshold as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative. In Catena-X for example set to \"100\" per default.","type":"number","maximum":100,"exclusiveMaximum":false,"minimum":0,"exclusiveMinimum":false,"title":"urn_bamm_io.catenax.pcf_4.0.0_PercentTrait"},"technologicalDQR":{"description":"Technological representativeness of the sources used for PCF (Product Carbon Footprint) calculation based on weighted average of all inputs representing >5% of PCF emissions. Specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"number","maximum":3,"exclusiveMaximum":false,"minimum":1,"exclusiveMinimum":false,"title":"urn_bamm_io.catenax.pcf_4.0.0_DqiNumberTrait"},"temporalDQR":{"description":"Temporal representativeness of the sources used for PCF (Product Carbon Footprint) calculation based on weighted average of all inputs representing >5% of PCF emissions. Specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"number","maximum":3,"exclusiveMaximum":false,"minimum":1,"exclusiveMinimum":false,"title":"urn_bamm_io.catenax.pcf_4.0.0_DqiNumberTrait"},"geographicalDQR":{"description":"Geographical representativeness of the sources used for PCF (Product Carbon Footprint) calculation based on weighted average of all inputs representing >5% of PCF emissions. Specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"number","maximum":3,"exclusiveMaximum":false,"minimum":1,"exclusiveMinimum":false,"title":"urn_bamm_io.catenax.pcf_4.0.0_DqiNumberTrait"},"completenessDQR":{"description":"Completeness of the data collected for PCF (Product Carbon Footprint) calculation based on weighted average of all inputs representing >5% of PCF emissions. Specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"number","maximum":3,"exclusiveMaximum":false,"minimum":1,"exclusiveMinimum":false,"title":"urn_bamm_io.catenax.pcf_4.0.0_DqiNumberTrait"},"reliabilityDQR":{"description":"Reliability of the data collected for PCF (Product Carbon Footprint) calculation based on weighted average of all inputs representing >5% of PCF emissions. Specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"number","maximum":3,"exclusiveMaximum":false,"minimum":1,"exclusiveMinimum":false,"title":"urn_bamm_io.catenax.pcf_4.0.0_DqiNumberTrait"}},"title":"urn_bamm_io.catenax.pcf_4.0.0_DataQualityIndicators"},"extWBCSD_packagingEmissionsIncluded":{"description":"Flag indicating whether packaging emissions are included in a PCF (Product Carbon Footprint) as specified in the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative. WBCSD specific extension, in Catena-X for example value is \"TRUE\" per default.","type":"boolean","title":"urn_bamm_io.openmanufacturing_characteristic_2.0.0_Boolean"},"pcfExcludingBiogenic":{"description":"Product carbon footprint of a product excluding biogenic emissions as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"number","minimum":0,"exclusiveMinimum":false,"title":"urn_bamm_io.catenax.pcf_4.0.0_PositiveEmissionsTrait"},"pcfIncludingBiogenic":{"description":"Product carbon footprint of a product including biogenic emissions as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative. Optional value in current specification version but will be mandatory in future version.","type":"number","title":"urn_bamm_io.catenax.pcf_4.0.0_PositiveOrNegativeEmission"},"fossilGhgEmissions":{"description":"Emissions from combustion of fossil sources as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative. Identical to \"pcfExcludingBiogenic\", will be removed in later version.","type":"number","minimum":0,"exclusiveMinimum":false,"title":"urn_bamm_io.catenax.pcf_4.0.0_PositiveEmissionsTrait"},"biogenicCarbonEmissionsOtherThanCO2":{"description":"GWP (Global Warming Potential) of biogenic CO2e-emissions in production phase which contain only GHG (Greenhouse Gas) emissions other than CO2 - excludes biogenic CO2. For specification see Catena-X PCF Rulebook.","type":"number","minimum":0,"exclusiveMinimum":false,"title":"urn_bamm_io.catenax.pcf_4.0.0_PositiveEmissionsTrait"},"biogenicCarbonWithdrawal":{"description":"Biogenic carbon content in the product converted to CO2e as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"number","minimum":0,"exclusiveMinimum":false,"title":"urn_bamm_io.catenax.pcf_4.0.0_PositiveDecimalWeightTrait"},"dlucGhgEmissions":{"description":"Direct land use change CO2e emissions in context of a product carbon footprint as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"number","minimum":0,"exclusiveMinimum":false,"title":"urn_bamm_io.catenax.pcf_4.0.0_PositiveEmissionsTrait"},"extTFS_luGhgEmissions":{"description":"Land use CO2 emissions in context of a product carbon footprint as specified by the TFS (Together For Sustainability) initiative. TFS specific extension.","type":"number","minimum":0,"exclusiveMinimum":false,"title":"urn_bamm_io.catenax.pcf_4.0.0_PositiveEmissionsTrait"},"aircraftGhgEmissions":{"description":"GHG (Greenhouse Gas) emissions resulting from aircraft engine usage for the transport of the product as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"number","minimum":0,"exclusiveMinimum":false,"title":"urn_bamm_io.catenax.pcf_4.0.0_PositiveEmissionsTrait"},"extWBCSD_packagingGhgEmissions":{"description":"Emissions resulting from the packaging of the product as specified in the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative. WBCSD specific extension, in Catena-X for example value is zero per default.","type":"number","minimum":0,"exclusiveMinimum":false,"title":"urn_bamm_io.catenax.pcf_4.0.0_PositiveEmissionsTrait"},"distributionStagePcfExcludingBiogenic":{"description":"Product carbon footprint for the distribution stage of a product excluding biogenic emissions as specified in the Catena-X PCF Rulebook.","type":"number","minimum":0,"exclusiveMinimum":false,"title":"urn_bamm_io.catenax.pcf_4.0.0_PositiveEmissionsTrait"},"distributionStagePcfIncludingBiogenic":{"description":"Product carbon footprint for the distribution stage of a product including biogenic emissions as specified in the Catena-X PCF Rulebook.","type":"number","title":"urn_bamm_io.catenax.pcf_4.0.0_PositiveOrNegativeEmission"},"distributionStageFossilGhgEmissions":{"description":"Emissions from the combustion of fossil sources in the distribution stage as specified in the Catena-X PCF Rulebook.","type":"number","minimum":0,"exclusiveMinimum":false,"title":"urn_bamm_io.catenax.pcf_4.0.0_PositiveEmissionsTrait"},"distributionStageBiogenicCarbonEmissionsOtherThanCO2":{"description":"GWP (Global Warming Potential) of biogenic CO2e-emissions in distribution phase which contain only GHG (Greenhouse Gas) emissions other than CO2 ? excludes biogenic CO2. For specification see Catena-X PCF Rulebook.","type":"number","minimum":0,"exclusiveMinimum":false,"title":"urn_bamm_io.catenax.pcf_4.0.0_PositiveEmissionsTrait"},"distributionStageBiogenicCarbonWithdrawal":{"description":"GWP (Global Warming Potential) of biogenic CO2-withdrawal in distribution stage (biogenic CO2 contained in the product) as specified in the Catena-X PCF Rulebook.","type":"number","minimum":0,"exclusiveMinimum":false,"title":"urn_bamm_io.catenax.pcf_4.0.0_PositiveEmissionsTrait"},"extTFS_distributionStageDlucGhgEmissions":{"description":"Direct land use change CO2 emissions during distribution stage in context of a product carbon footprint as specified in the Catena-X PCF Rulebook. TFS specific extension.","type":"number","minimum":0,"exclusiveMinimum":false,"title":"urn_bamm_io.catenax.pcf_4.0.0_PositiveEmissionsTrait"},"extTFS_distributionStageLuGhgEmissions":{"description":"Land use CO2 emissions in context of a product carbon footprint as specified by the TFS (Together For Sustainability) initiative. TFS specific extension.","type":"number","minimum":0,"exclusiveMinimum":false,"title":"urn_bamm_io.catenax.pcf_4.0.0_PositiveEmissionsTrait"},"carbonContentTotal":{"description":"Total carbon content per declared unit in context of a product carbon footprint as specified in the Catena-X PCF Rulebook.","type":"number","minimum":0,"exclusiveMinimum":false,"title":"urn_bamm_io.catenax.pcf_4.0.0_PositiveEmissionsTrait"},"extWBCSD_fossilCarbonContent":{"description":"Fossil carbon amount embodied in a product as specified in the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative. WBCSD specific extension, in Catena-X for example specified by a calculated value.","type":"number","minimum":0,"exclusiveMinimum":false,"title":"urn_bamm_io.catenax.pcf_4.0.0_PositiveEmissionsTrait"},"carbonContentBiogenic":{"description":"Biogenic carbon amount embodied in a product as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"number","minimum":0,"exclusiveMinimum":false,"title":"urn_bamm_io.catenax.pcf_4.0.0_PositiveEmissionsTrait"}},"required":["declaredUnit","unitaryProductAmount","productMassPerDeclaredUnit","exemptedEmissionsPercent","referencePeriodStart","referencePeriodEnd","crossSectoralStandardsUsed","extWBCSD_characterizationFactors","extTFS_allocationWasteIncineration","secondaryEmissionFactorSources","extWBCSD_packagingEmissionsIncluded","pcfExcludingBiogenic","extWBCSD_packagingGhgEmissions"],"title":"urn_bamm_io.catenax.pcf_4.0.0_PcfEntity"},"pcfLegalStatement":{"description":"Option for legal statement/ disclaimer as specified in the Catena-X PCF Rulebook.","type":"string","title":"urn_bamm_io.openmanufacturing_characteristic_2.0.0_Text"}},"required":["id","specVersion","partialFullPcf","version","created","extWBCSD_pfStatus","companyName","companyIds","productIds","extWBCSD_productCodeCpc","productName","pcf"],"title":"ProductFootprintResponse"}}}},"responses":{"200":{"description":""}},"description":"set_pcf","method":"put","path":"/productIds/{productId}","jsonRequestBodyExample":{"id":"string","specVersion":"string","partialFullPcf":"Cradle-to-gate","precedingPfIds":[{"id":"string"}],"version":0,"created":"string","extWBCSD_pfStatus":"Active","validityPeriodStart":"string","validityPeriodEnd":"string","comment":"string","companyName":"string","companyIds":[{"companyId":"string"}],"productDescription":"string","productIds":[{"productId":"string"}],"extWBCSD_productCodeCpc":"string","productName":"string","pcf":{"declaredUnit":"liter","unitaryProductAmount":0,"productMassPerDeclaredUnit":0,"exemptedEmissionsPercent":0,"exemptedEmissionsDescription":"string","boundaryProcessesDescription":"string","geographyCountrySubdivision":"string","geographyCountry":"string","geographyRegionOrSubregion":"Africa","referencePeriodStart":"string","referencePeriodEnd":"string","crossSectoralStandardsUsed":[{"crossSectoralStandard":"GHG Protocol Product standard"}],"productOrSectorSpecificRules":[{"extWBCSD_operator":"PEF","productOrSectorSpecificRules":[{"ruleName":"string"}],"extWBCSD_otherOperatorName":"string"}],"extWBCSD_characterizationFactors":"AR5","extWBCSD_allocationRulesDescription":"string","extTFS_allocationWasteIncineration":"cut-off","primaryDataShare":0,"secondaryEmissionFactorSources":[{"secondaryEmissionFactorSource":"string"}],"dataQualityRating":{"coveragePercent":0,"technologicalDQR":0,"temporalDQR":0,"geographicalDQR":0,"completenessDQR":0,"reliabilityDQR":0},"extWBCSD_packagingEmissionsIncluded":true,"pcfExcludingBiogenic":0,"pcfIncludingBiogenic":0,"fossilGhgEmissions":0,"biogenicCarbonEmissionsOtherThanCO2":0,"biogenicCarbonWithdrawal":0,"dlucGhgEmissions":0,"extTFS_luGhgEmissions":0,"aircraftGhgEmissions":0,"extWBCSD_packagingGhgEmissions":0,"distributionStagePcfExcludingBiogenic":0,"distributionStagePcfIncludingBiogenic":0,"distributionStageFossilGhgEmissions":0,"distributionStageBiogenicCarbonEmissionsOtherThanCO2":0,"distributionStageBiogenicCarbonWithdrawal":0,"extTFS_distributionStageDlucGhgEmissions":0,"extTFS_distributionStageLuGhgEmissions":0,"carbonContentTotal":0,"extWBCSD_fossilCarbonContent":0,"carbonContentBiogenic":0},"pcfLegalStatement":"string"},"info":{"title":"Catena-X-pcf-request-endpoint","version":"0.0.3"},"postman":{"name":"set pcf","description":{"type":"text/plain"},"url":{"path":["productIds",":productId"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"description":{"content":"(Required) The caller's Catena-X BusinessPartnerNumber","type":"text/plain"},"key":"BPN","value":""},{"disabled":false,"description":{"content":"ID identifying the request call (same as within original PCF request), if the PUT is responding to a call. Can be dismissed in a PCF update call.","type":"text/plain"},"key":"requestId","value":""}],"variable":[{"disabled":false,"description":{"content":"(Required) ID of the product/material the PCF referring to","type":"text/plain"},"type":"any","value":"","key":"productId"}]},"header":[{"key":"Content-Type","value":"application/json"}],"method":"PUT","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "put api-method" +info_path: docs-kits/kits/PCF Exchange Kit/Software Development View/pcf-exchange-api/catena-x-pcf-request-endpoint +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## set_pcf + + + +set_pcf + +
      Path Parameters
      Query Parameters
      Request Body required
      + +The requested PCF in WBCSD format + +
        precedingPfIds object[]
        + +**Possible values:** `>= 1` + +
        + +Set of preceding PCF (Product Carbon Footprint) identifiers without duplicates as specified in the Catena-X PCF Rulebook in accordance with the WBCSD (World Business Council for Sustainable Development) Pathfinder framework and the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD/ PACT initiative. Declared as "optional" in WBCSD, needs to be covered by application. + +
      • Array [
      • ]
      • = 1`"} schema={{"description":"Version of the product (carbon) footprint as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative. In Catena-X for example set to \"0\" per default.","type":"number","minimum":1,"title":"urn_bamm_io.catenax.pcf_4.0.0_ProductFootprintVersion"}}>
        companyIds object[] required
        + +**Possible values:** `>= 1` + +
        + +Non-empty set of Uniform Resource Names (URN). Each value is supposed to uniquely identify the product (carbon) footprint data owner as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative. + +
      • Array [
      • ]
      • productIds object[] required
        + +**Possible values:** `>= 1` + +
        + +Non-empty set of product identifiers. Each value is supposed to uniquely identify the product as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative. + +
      • Array [
      • ]
      • pcf object required
        + +A PCF (Product Carbon Footprint) represents the carbon footprint of a product and related data as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative. + +
        crossSectoralStandardsUsed object[] required
        + +Discloses the cross-sectoral standards applied for calculating or allocating GHG (Greenhouse Gas) emissions as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative. + +
      • Array [
      • ]
      • productOrSectorSpecificRules object[]
        + +Product or sector specific rules applied for calculating or allocating GHG (Greenhouse Gas) emissions, e.g. PCRs (Product Category Rules), including operators or publishers and according rule names as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative. + +
      • Array [
      • productOrSectorSpecificRules object[] required
        + +**Possible values:** `>= 1` + +
        + +Product-specific or sector-specific set of rules used for calculating or allocating GHG (Greenhouse Gas) emissions applied from the specified operator as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative. + +
      • Array [
      • ]
      • ]
      • secondaryEmissionFactorSources object[] required
        + +Emission factors used for the PCF (Product Carbon Footprint) calculation as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative. + +
      • Array [
      • ]
      • dataQualityRating object
        + +Quantitative data quality indicators of a PCF (Product Carbon Footprint) as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative. + +
        5% emissions threshold as specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative. In Catena-X for example set to \"100\" per default.","type":"number","maximum":100,"exclusiveMaximum":false,"minimum":0,"exclusiveMinimum":false,"title":"urn_bamm_io.catenax.pcf_4.0.0_PercentTrait"}}>= 1` and `<= 3`"} schema={{"description":"Technological representativeness of the sources used for PCF (Product Carbon Footprint) calculation based on weighted average of all inputs representing >5% of PCF emissions. Specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"number","maximum":3,"exclusiveMaximum":false,"minimum":1,"exclusiveMinimum":false,"title":"urn_bamm_io.catenax.pcf_4.0.0_DqiNumberTrait"}}>= 1` and `<= 3`"} schema={{"description":"Temporal representativeness of the sources used for PCF (Product Carbon Footprint) calculation based on weighted average of all inputs representing >5% of PCF emissions. Specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"number","maximum":3,"exclusiveMaximum":false,"minimum":1,"exclusiveMinimum":false,"title":"urn_bamm_io.catenax.pcf_4.0.0_DqiNumberTrait"}}>= 1` and `<= 3`"} schema={{"description":"Geographical representativeness of the sources used for PCF (Product Carbon Footprint) calculation based on weighted average of all inputs representing >5% of PCF emissions. Specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"number","maximum":3,"exclusiveMaximum":false,"minimum":1,"exclusiveMinimum":false,"title":"urn_bamm_io.catenax.pcf_4.0.0_DqiNumberTrait"}}>= 1` and `<= 3`"} schema={{"description":"Completeness of the data collected for PCF (Product Carbon Footprint) calculation based on weighted average of all inputs representing >5% of PCF emissions. Specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"number","maximum":3,"exclusiveMaximum":false,"minimum":1,"exclusiveMinimum":false,"title":"urn_bamm_io.catenax.pcf_4.0.0_DqiNumberTrait"}}>= 1` and `<= 3`"} schema={{"description":"Reliability of the data collected for PCF (Product Carbon Footprint) calculation based on weighted average of all inputs representing >5% of PCF emissions. Specified in the Catena-X PCF Rulebook in accordance with the technical specifications for PCF Data Exchange (Version 2.0.0) from the WBCSD (World Business Council for Sustainable Development)/ PACT initiative.","type":"number","maximum":3,"exclusiveMaximum":false,"minimum":1,"exclusiveMinimum":false,"title":"urn_bamm_io.catenax.pcf_4.0.0_DqiNumberTrait"}}>
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/Software Development View/pcf-exchange-api/sidebar.js b/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/Software Development View/pcf-exchange-api/sidebar.js new file mode 100644 index 00000000000..e6c25a0e6e8 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/Software Development View/pcf-exchange-api/sidebar.js @@ -0,0 +1 @@ +module.exports = [{"type":"doc","id":"kits/PCF Exchange Kit/Software Development View/pcf-exchange-api/catena-x-pcf-request-endpoint"},{"type":"category","label":"PCF Exchange API","items":[{"type":"doc","id":"kits/PCF Exchange Kit/Software Development View/pcf-exchange-api/get-pcf","label":"get_pcf","className":"api-method get"},{"type":"doc","id":"kits/PCF Exchange Kit/Software Development View/pcf-exchange-api/set-pcf","label":"set_pcf","className":"api-method put"}]}]; \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/changelog.md b/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/changelog.md new file mode 100644 index 00000000000..60051175717 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/changelog.md @@ -0,0 +1,23 @@ +--- +id: PCF Exchange Kit Changelog +title: Changelog +description: 'PCF Exchange Kit' +sidebar_position: 1 +--- +## PCF Exchange KIT + +All notable changes to this Kit will be documented in this file. + +## [0.1.0] - 2023-08-23 + +### Added + +Initial Version of the PCF exchange KIT including adoption and development view incl. all relevant API specifications. + +### Changed + +N/A + +### Removed + +N/A diff --git a/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/page_adoption-view.md b/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/page_adoption-view.md new file mode 100644 index 00000000000..abcadf30541 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/page_adoption-view.md @@ -0,0 +1,527 @@ +--- +id: Adoption View +title: Adoption View +description: 'PCF-Exchange-KIT' +sidebar_position: 2 +--- + +## Introduction + +Sustainability has become increasingly important in the automotive industry in recent years. In particular, the topic of CO2 emissions is the focus of interest, and the product-specific CO2 footprint (PCF: product carbon footprint) has developed into a key indicator for sustainable product design and supply chains. Accordingly, there is a need to determine this data as precisely as possible across the automotive supply chain and to exchange it among partners in the network. This requires appropriate standards for calculation and exchange of data. + +In this context, Catena-X offers a decentralized ecosystem supported by standards and principles like data sovereignty, which can effectively implement such a PCF data exchange. The PCF KIT will be the key enabler for various stakeholders to calculate and exchange PCF data in a standardized format. The objective of the PCF KIT is therefore to: + +- Provide a comprehensive overview about the methods and tools for a PCF data exchange in the Catena-X dataspace. +- Offer various standards and guidelines for industry stakeholders. +- Provide a detailed description of the essential components required. + +## Vision & Mission + +### Vision + +Report and steer the de-carbonization of our value chain with dedicated measures based on real PCF values, without compromising upstream data sovereignty. + +### Mission + +Addressing supply chain carbon emissions today is missing reliable data about baseline emissions, effect of reductions, and best practices. This is due to three reasons: + +- Complexity of supply chains leading to huge amount of data: complex supply chains spanning different countries and actors from many industries lead to huge amounts of data. + +- Lack of Trust: Unwillingness to share data because of risk of losing competitive advantage, because data is shared with competitors. + +- Missing standards for measuring carbon emissions in a comparable way. + +At the core of our project is the recognition of a current challenge - the lack of transparency and accessibility to real PCF information in supply chains. Through our project, we strive to bridge this information gap by establishing a trusted and collaborative and interoperable environment. Suppliers will have the opportunity to share their PCF data with confidence, knowing that it remains sovereign and under their control. + +We will address this by working on trustworthy ecosystem that prioritizes data sovereignty, security, and collaboration on standards. Therefore, our mission is to revolutionize the supply chain industry by providing a platform where suppliers can securely share their primary Product Carbon Footprint (PCF) data throughout the supply chain. + +We are guided by the following principles: + +- **Building trust** by making clear rules for data exchange and by pre-agreed data contracts between partners in the value chain. +- Building trust through **data sovereignty and data security**. We will build an ecosystem to share minimal data on a need-to-know basis, incorporating 3rd party verification by trusted partners. Decentralized architectures ensure that data remains within companies and is only shared with authorized persons as needed. +- **Governance** on the principles of mutual collaboration in the automotive industry and across with all relevant actors of the value chain on the principle of equality between partners, involving relevant outside stakeholders and the scientific community. +- **Flexibility and interoperability** by building an ecosystem of interoperable apps based on open standards. Collaborative standards for collecting, calculating, and sharing emission and product data make these processes more efficient and comparable. +- **Scalability** and manageability of large amounts of data. Decentralized data ecosystems can handle and scale large amounts of data, as decentralized structures are created as required by participating companies. + +## Business Process + +### Premises and assumptions + +We assume that the calculation and exchange of PCF data is “new territory” for many companies. In large or larger enterprises (e.g., OEM or Tier-1 suppliers), the topic of sustainability with its various facets has been on the agenda for several years now. Appropriate structures and organizations were set up there. In this respect, it can be assumed that they have the expertise and resources for a PCF calculation. Corresponding, self-developed IT tools can also be found there. We cannot expect this for small and medium-sized enterprises (SMEs). In particular small companies often lack the knowledge and resources to calculate a PCF. + +The following premises are therefore relevant for the following customer journeys: + +- A PCF calculation requires expert or at least in-depth knowledge. +- A PCF calculation is currently mostly created manually; automation is not common or possible in most cases. +- Automation is also not yet feasible because there are no concepts or standards for verifying PCF data. +- Due to the (manual) effort, PCF calculation and data exchange will initially only be carried out for selected products. + +Accordingly, the presented customer journeys are characterized by manual process steps. However, as the topic becomes more widely known in the automotive supply chain (especially among SMEs), greater automation should be sought. This is the only way to represent a larger (ideally the entire) range of products. + +### Overview + +The scope of our business process is the calculation and the exchange of Product Carbon Footprint (PCF) data across the supply chain for parts / components that are already in series production (→ "after start of production (SOP)"). One can therefore assume that a real supply chain already exists for this part / component. + +To describe the process, we defined two customer journeys: + +1. The customer journey “PCF data exchange” describes an asynchronous communication process: A customer requests the PCF from their supplier for a component (“PCF Request”), and the supplier provides the requested data (“PCF Response”). +2. If necessary, the requested PCF data must first be determined; this leads to the second customer journey “PCF calculation”. + +The exchange-process is initiated top-down (e.g., at the OEM; but it can also start at any level of the supply chain), starting with a request of a customer to the supplier. It could then be continued step by step throughout the entire tier-n supply chain. Ideally, the entire supply chain (or actually: the entire supply tree) would be covered via this cascading request/response process. The result would be a PCF that is 100% based on requested and reported data. + +![PCF Request and Response](resources/adoption-view/PCFRequestandResponse.png) + +In the real world, this will not be implemented this way, at least in the short and medium term. It can be assumed that this process and information chain will break down at certain points in the supply chain. There, data is not requested, but is calculated using secondary data, as is standard procedure these days. There can be various reasons for this: + +- The affected part of the supply chain is only of minor relevance to the PCF; the effort required to determine the real data would therefore not be worthwhile. +- The supplier cannot or does not want to provide corresponding data. + +However, it is important that a PCF value reported from a supplier to its customer always represents the entire supply chain behind it. Therefore, the following data is recorded in a PCF calculation and aggregated to form the resulting PCF: + +- direct emissions, that are generated in the supplier's own production system ("Scope 1") +- indirect emissions from purchased energy ("Scope 2") +- upstream emissions caused by purchased products from the upstream supply chain ("Scope 3") + +![Scope of Catena-X Use Case](resources/adoption-view/ScopeofCatena-XUseCase.png) + +The data for direct and indirect emissions will usually come from internal data sources, as these emission-shares are generated in the supplier's own production system. The upstream emissions ("Scope 3") can either be requested from the respective sub-supplier. Or it could be calculated, e.g., by using information from eco-databases. Putting all together, the transparency on the PCF for a given part or component is created through a cascade of top-to-bottom PCF requests, and a cascade of aggregated PCF data from bottom to top. + +### Customer Journey "PCF Data Exchange" + +This customer journey describes the exchange of PCF data in an asynchronous request/response process. + +![PCF Data Exchange Overview](resources/adoption-view/PCFDataExchangeOverview.png) + +PCF data is exchanged between a data consumer (e.g., supplier on tier n) and a data provider (e.g., supplier on tier n+1). It is basically an asynchronous request/response process that is started by the data consumer: + +1. The data consumer realizes that he needs the PCF for a specific component and that this data is not available in his local data (or is not of sufficient quality). +2. With his PCF Data exchange tool, the data consumer checks whether the required PCF data is available via Catena-X (from a technical perspective, this means that there is already a digital twin for the component and that the PCF submodel is available for this twin). If so, the tool would “fetch up” this data. If not, the user can request this data from the supplier as described in the next steps. +3. The data consumer submits a “PCF request” (according to the standardized API [CX-0028](https://catena-x.net/de/standard-library)) to his supplier. In doing so, he asks the supplier to provide PCF data for the specific component, which was determined in accordance with the requirements of the Catena-X PCF Rulebook ([CX-0029](https://catena-x.net/de/standard-library)). + +With this request, the process temporarily ends for the data consumer. The ball is now in the data provider's playing field.: + +4. The data provider receives the PCF request (message/display in his PCF data exchange tool). To answer this request, he takes the following steps: +5. The data provider checks whether the requested data is already available (i.e., whether the PCF has already calculated in the past but has not yet been provided to the customer). +6. If the data is not yet available, the data provider must create it first. At this point, he starts the “PCF calculation” subjourney (see [below](#customer-journey-pcf-calculation)). At the end of this subjourney, the PCF data is available, and the provider can answer the original request with the next steps. +7. The data provider sends a PCF Response (according to the standardized API see [CX-0028](https://catena-x.net/de/standard-library)) to the data consumer. At the same time, the data is made available in Catena-X (which means from a technical perspective, that a PCF submodel is attached to the corresponding digital twin of the component). + +For the data provider, the process is now over, and the consumer's request has been answered with the response. Now follow a few more steps on the consumer side. + +8. The data consumer, who sent the initial PCF request, now receives the PCF response (message/display in his PCF data exchange tool). +9. With the data exchange tool, the consumer can access and “pick up” the PCF data, according to the standardized PCF data model (see [Semantic Model](#semantic-models)). + +>**Remark:** +>There are currently no options for data verification or acceptance/rejection of transmitted data at this stage in the process. These topics are currently still being discussed at Catena-X association level and are therefore not yet covered in the processes and tools. This will only happen with later releases. + +10. The data consumer can now transfer this data to his internal systems/databases (e.g., a PCF calculation tool), and use it for the internal business processes (e.g., PCF calculation or reporting). +This ends this customer journey. + +### Customer Journey “PCF Calculation” + +This customer journey describes the calculation of a [CX Rulebook-compliant PCF](https://catena-x.net/fileadmin/user_upload/Standard-Bibliothek/Archiv/Update_Standard_PDF_Feb._2023/1_Sustainability_v1.0/CX_-_0029_PCF_Rulebook_UseCaseSustainability_v_1.0.0.pdf), with some of the required data obtained via the Catena-X network. + +![PCF Calculation](resources/adoption-view/PCFCalculation.png) + +The calculation process will often be triggered by an incoming PCF request (see subjourney "[PCF data exchange](#customer-journey-pcf-data-exchange)", step 6). But of course, a PCF calculation can also be carried out proactively without a corresponding request via PCF Request. +To determine a PCF, an appropriate calculation tool is usually used, which guides the user through the process and ensures that all relevant data is taken into account. We will limit ourselves here to a generic, tool-independent presentation of the most important steps. + +1. Make a plan: What are the different components of the PCF? Where can I get the relevant data from? +→ This structuring should be supported by an appropriate process in the calculation tool. +1. Put the direct emissions from the production site (e.g., use of natural gas or fuels) into the calculation. +→ Get the raw data from internal data sources and enter them in the calculation tool. +1. Put the indirect emissions from purchased energy into the calculation. +→ Get the raw data (consumption values, energy mix, …) from internal data sources and from the energy supplier, and enter it in the calculation tool. +1. Upstream emissions: + 1. For sub-components with a (expected) relevant share on the PCF, the aim is to use real data (or primary data) for the calculation. Therefore, a PCF request is sent to the suppliers of these sub-components, to obtain appropriate real data (see subjourney ["PCF data exchange"](#customer-journey-pcf-data-exchange)). As soon as the data is available (via a PCF Response), it can be used as input for the calculation. + 2. For other sub-components, which only make up a small proportion of the upstream emissions, there will be no request of data to the supplier. Instead, the data will be obtained from a database for secondary data. +2. If necessary, put other emissions and further data into the calculation (e.g., transport emissions, waste, recycling quotas, ...). +3. Put it all together and get the overall PCF. +4. Transfer PCF to the exchange tool (or in general: make the PCF data available). + +### PCF Personas + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      PersonaRole and Task (in larger companies)Specifics for SME ChallengesCatena-X Contribution
      Purchaser In general, the purchaser will not be a sustainability expert! + Sustainability is for him just an additional dimension (as cost, quality, ...). +
        +
      • He requests sustainability data for purchased (sub)products from his suppliers.
      • +
      • In the sourcing process he evaluates the incoming offers (which will include more and more sustainability data).
      • +
      • He negotiates PCF targets with his suppliers.
      • +
      • He checks compliance with agreements and targets and evaluates the supplier's performance.
      • +
      • He will be often the one, who detects incidents (e.g., non-fulfillment of targets, missing certificates, ...).
      • +
      + Different responsibilities and views possible: +
        +
      • A part / components / materials-oriented view
      • +
      • A supplier / commodity-oriented view
      • +
      +
      +

      We assume, that a SME will have a weaker negotiating position and assertiveness (as a large company), so it may be more difficult to …

      +
        +
      • request PCF data from (sub)suppliers.
      • +
      • forward customers' CO2 targets to (sub)suppliers.
      • +
      • negotiate own objectives/targets.
      • +
      +
      +

      He requires sustainability data of parts/materials (e.g., PCF) for various purposes.

      +

      He requires standardized data.

      +

      He also requires product-unspecific sustainability data of suppliers (e.g., production site-specific certificates).

      +

      He needs data in different phases (e.g., product development, procurement, industrialization, series production).

      +
      +

      X defines standards for sustainability data.

      +

      CX provides up-to-date and reliable sustainability data

      +
        +
      • of parts / materials
      • +
      • of suppliers
      • +
      +

      CX provides phase-specific data.

      +

      CX provides (standard) reports.

      +

      CX provides apps and services for data exchange.

      +
      PCF Calculator + He is an expert for PCF calculation. He could be described as a “PCF Engineer,” analogous to the role of a “Cost Engineer” established in many companies. +
        +
      • He has in-depth knowledge of PCF-, CCF- and LCA-methods.
      • +
      • He is responsible for the calculation of the own scope-1 and -2 values of a PCF
      • +
      • From this data and with the scope-3 data reported by suppliers (or obtained from databases), he calculates the PCF of his own products.
      • +
      • He hands the result over to the PCF Controller
      • +
      • He is a consultant in "costs vs. PCF" discussions (with internal, but also with external partners)
      • +
      • He analyzes customer incident requests (on behalf of the PCF controller).
      • +
      • If there are any discrepancies in reported PCF data, he initiates incident requests at the respective supplier (via the PCF controller).
      • +
      +
      +

      We assume, that at a SME there will be often a combined role: (Sustainability) Manager Product

      +
        +
      • He is no sustainability expert! So, he must draw on external expertise if necessary
      • +
      • He must handle internal and external topics
      • +
      +

      Customer view:

      +
        +
      • He is a key account for sustainability data (PCF and ESS) and an “interface” in both directions: customers and suppliers.
      • +
      • He releases sustainability data (esp. PCF) to customers
      • +
      • He receives PCF data from suppliers.
      • +
      • He is the addressee for (PCF) incidents
      • +
      +

      Internal View:

      +
        +
      • He knows the product BoM (bill of material)
      • +
      • He steers “PCF vs. Cost" objectives at product levels.
      • +
      • He collaborates with external auditors.
      • +
      • He analyzes incoming incident request of customers
      • +
      +
      Requires standardized PCF calculation method. +

      Needs Scope 3 values from suppliers, to calculate own PCF with this data.

      +

      May need a calculation tool for Scope 1 and 2 values.

      +

      Requires access to eco-data (secondary data).

      +

      Needs BoM (bill of material) data for calculation and analysis.

      +
      +

      CX defines standards for PCF calculation.

      +

      CX provides up-to-date and reliable sustainability data of parts / materials.

      +

      CX provides apps and services for data exchange.

      +

      CX provides calculation tools.

      +

      CX provides access to eco-data(bases) for secondary data.

      +
      PCF Controller (product) +

      his is more of an operational role (as opposed to the Sustainability Manager). He is a PCF expert who works with many internal and external partners.

      +

      He is the first point of contact for the purchaser on PCF topics.

      +

      External/Customer view:

      +
        +
      • He is a key account for PCF data and, in this regard, the central interface to customers/suppliers.
      • +
      • He releases calculated PCF data to customer.
      • +
      • He receives PCF data from the suppliers.
      • +
      • He triggers incident management.
      • +
      • He initiates collaborative PCF optimization.
      • +
      +

      Internal View:

      +
        +
      • He is the PCF data owner in the company.
      • +
      • He acts as a PCF data collector.
      • +
      • He receives PCF targets from the Sustainability Manager, evaluates them, and is consulted as a CO2 expert in negotiations.
      • +
      • He tracks PCF targets for purchased parts, and detects incidents in terms of non-fulfillment of targets.
      • +
      • He makes supplier performance reviews about PCF.
      • +
      +
      + +

      He requires up-to-date and reliable PCF data of parts / materials.

      +

      He needs data in different phases of the product lifecycle (e.g., in product development, sourcing, industrialization, series production).

      +

      He requires standardized data.

      +

      He needs a tool to exchange PCF data with internal and external partners.

      +

      He needs reports for tracking and monitoring of PCF data and targets.

      +
      +

      CX defines standards for PCF data.

      +

      CX provides apps and services for PCF data exchange.

      +

      CX provides up-to-date and reliable PCF data of parts / materials.

      +

      CX provides phase-specific data.

      +
      Sustainability Manager (product) +

      This is more of a strategic role than an operational role.

      +

      He is responsible for the coordination and steering of PCF and cost objectives at product level

      +

      He ensures the consistency of product objectives with corporate objectives.

      +

      He defines PCF targets for products and breaks them down on part / components / materials level.

      +

      He receives sustainability targets from customers.

      +

      He takes care of how sustainability targets (especially PCF) can be implemented and achieved.

      +

      He performs analyses in the context of sustainability.

      +

      He collaborates with external auditors.

      +
      + +

      He collaborates with external auditors.

      +

      He requires standardized data.

      +

      He needs data in different phases of the product lifecycle (e.g., in product development, sourcing, industrialization, series production).

      +

      He needs reports for tracking and monitoring of sustainability data.

      +

      He needs a tool to exchange sustainability data with internal and external partners.

      + He needs tools for: +
        +
      • PCF target breakdown.
      • +
      • PCF optimization (e.g., “what if analysis”).
      • +
      • Controlling of competing targets (sustainability vs. costs vs. quality …).
      • +
      +
      +

      CX defines standards for sustainability data (esp. PCF).

      +

      CX provides apps and services for data exchange.

      +

      CX provides up-to-date and reliable sustainability data of parts / materials.

      +

      CX provides phase-specific data.

      +

      CX provides (standard) reports.

      +

      CX provides analysis tools.

      +
      Sustainability Manager (corporate) +

      He has no active role in Catena-X (e.g.: getting reports is a passive, not an active role in this sense).

      +

      He sets corporate goals and breaks them down for different sectors and functions in the company.

      +

      He gets input from the Sustainability Manager Product.

      +
      +

      The role exists in principle; it is rather the question of who will take it over (e.g., personal union with Management, or possibly Sust. Manager).

      +

      Thesis: an SME does CCF rather than PCF.

      +
      +

      He requires (aggregated) sustainability data.

      +

      He requires “high level” (standard) reports.

      +
      CX provides up-to-date and reliable sustainability data.
      Salespeople +

      He is the central interface to the customer.

      +

      He is the owner of the customer quotation process.

      +

      He negotiates PCF targets with customers (→purchaser).

      +

      He presents sustainability data (esp. PCF) to customers.

      +

      He is accountable for incident management with customers.

      +
      + +

      He needs sustainability data (e.g., PCF) of own products (parts / materials)

      +

      He requires tools for information or data exchange (with both internal partners and external customers).

      +
      +

      CX provides sustainability data of own products.

      +

      CX provides apps and services for data exchange.

      +
      Auditor (external) +

      He does a yearly audit of conformity with Catena-X methodology.

      +

      At the beginning (before go-live) there is a one-time audit of the use of the Catena-X network and methods in the company to be audited.

      +

      The onboarding of suppliers requires a self-declaration of applying Catena-X methodology.

      +

      The auditor has a clearing role in case of escalated incidents.

      +
      He needs additional infxormation and data to be able to verify the reported PCF data. +

      CX provides up-to-date and verifiable sustainability data.

      +

      Catena-X provides access to metadata that allows the reported PCF data to be verified.

      +
      Sustainability Associations / InstitutionsThey provide industry-specific averages and benchmarks of PCF values.
      + +## Semantic Models + +Depending on the use case and related KIT, Catena-X provides different semantic models that help to structure and make use of data via semantic information. These models help to provide a basic meaning to the data and their relationship, thereby enabling interoperability between data sets. Catena-X data models rely on principles as understandability, standardization, accuracy, differentiation, audibility, comprehensiveness, and provision of insights to drive improvement actions. + +### PCF + +#### Introduction PCF Data Model + +In an era defined by growing environmental consciousness and sustainability imperatives, the concept of measuring and reducing carbon footprints has become paramount across industries. A pivotal key in this pursuit is a aligned and standardized Product Carbon Footprint Data Model. This data model not only facilitates the systematic calculation and comparison of carbon footprints but also offers a structured approach to managing environmental impact data. + +As the global community grapples with the impacts of climate change, consumers, businesses, and governments are seeking actionable ways to mitigate their carbon emissions. The need for a consistent and universally accepted method of quantifying these emissions from diverse products has given rise to the significance of a Standardized Product Carbon Footprint Data Model. This model acts as a lingua franca, enabling stakeholders to communicate and analyze carbon footprint information transparently and comprehensively. + +For this KIT only the data model PCF is used. The data model follows the Catena-X Standard [CX-0026](https://catena-x.net/de/standard-library) and is modeled following the [CX-0003](https://catena-x.net/de/standard-library) Standard. + +#### Example Payload + +The following json shows a example payload for a requested pcf value. + +```json +{ + "specVersion": "2.0.1-20230314", + "companyIds": { + "companyId": "urn:uuid:51131FB5-42A2-4267-A402-0ECFEFAD1619" + }, + "extWBCSD_productCodeCpc": "011-99000", + "created": "2022-05-22T21:47:32Z", + "companyName": "My Corp", + "extWBCSD_pfStatus": "Active", + "version": 0, + "productName": "My Product Name", + "pcf": { + "biogenicCarbonEmissionsOtherThanCO2": 1, + "distributionStagePcfExcludingBiogenic": 1.5, + "biogenicCarbonWithdrawal": 0, + "distributionStageBiogenicCarbonEmissionsOtherThanCO2": 1, + "extWBCSD_allocationRulesDescription": "In accordance with Catena-X PCF Rulebook", + "exemptedEmissionsDescription": "No exemption", + "distributionStageFossilGhgEmissions": 0.5, + "exemptedEmissionsPercent": 0, + "geographyCountrySubdivision": "US-NY", + "extTFS_luGhgEmissions": 0.3, + "distributionStageBiogenicCarbonWithdrawal": 0.5, + "pcfIncludingBiogenic": 1, + "aircraftGhgEmissions": 0, + "productMassPerDeclaredUnit": 0.456, + "productOrSectorSpecificRules": [ + { + "extWBCSD_operator": "PEF", + "productOrSectorSpecificRules": { + "ruleName": "urn:tfs-initiative.com:PCR:The Product Carbon Footprint Guideline for the Chemical Industry:version:v2.0" + }, + "extWBCSD_otherOperatorName": "NSF" + } + ], + "extTFS_allocationWasteIncineration": "cut-off", + "pcfExcludingBiogenic": 2, + "referencePeriodEnd": "2022-12-31T23:59:59Z", + "extWBCSD_characterizationFactors": "AR5", + "secondaryEmissionFactorSources": [ + { + "secondaryEmissionFactorSource": "ecoinvent 3.8" + } + ], + "unitaryProductAmount": 1000.0, + "declaredUnit": "liter", + "referencePeriodStart": "2022-01-01T00:00:01Z", + "geographyRegionOrSubregion": "Africa", + "fossilGhgEmissions": 0.5, + "boundaryProcessesDescription": "Electricity consumption included as an input in the production phase", + "geographyCountry": "DE", + "extWBCSD_packagingGhgEmissions": 0, + "dlucGhgEmissions": 0.4, + "carbonContentTotal": 2.5, + "extTFS_distributionStageLuGhgEmissions": 1.1, + "primaryDataShare": 56.12, + "dataQualityRating": { + "completenessDQR": 2, + "technologicalDQR": 2, + "geographicalDQR": 2, + "temporalDQR": 2, + "reliabilityDQR": 2, + "coveragePercent": 100 + }, + "extWBCSD_packagingEmissionsIncluded": true, + "extWBCSD_fossilCarbonContent": 0.1, + "crossSectoralStandardsUsed": [ + { + "crossSectoralStandard": "GHG Protocol Product standard" + } + ], + "extTFS_distributionStageDlucGhgEmissions": 1, + "distributionStagePcfIncludingBiogenic": 0, + "carbonContentBiogenic": 0 + }, + "partialFullPcf": "Cradle-to-gate", + "productIds": { + "productId": "urn:gtin:4712345060507" + }, + "validityPeriodStart": "2022-01-01T00:00:01Z", + "comment": "Comment for version 42.", + "id": "3893bb5d-da16-4dc1-9185-11d97476c254", + "validityPeriodEnd": "2022-12-31T23:59:59Z", + "pcfLegalStatement": "This PCF (Product Carbon Footprint) is for information purposes only. It is based upon the standards mentioned above.", + "productDescription": "Ethanol, 95% solution", + "precedingPfIds": { + "id": "3893bb5d-da16-4dc1-9185-11d97476c254" + } +} +``` + +The entire data model is available as open source through the link provided below. + +```text +https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.pcf/4.0.0 +``` + +## Business Architecture + +The PCF Exchange KIT can be used to exchange PCF data within the Catena-X ecosystem in a decentralized and interoperable manner, while maintaining a high level of data sovereignty. To achieve this, the PCF Exchange KIT leverages other KITs (particularly the platform-related ones), standardized data models, and an Identity and Access Management (IAM) system based on OAuth and Self-Sovereign Identity (SSI) technology. + +In order to ensure **interoperability**, as described in the section on [Semantic Models](#semantic-models), a standardized data model is essential. However, it's not only the data model but also the standardized interfaces (both the PCF Exchange API and the standardized API provided by the Connector Kit) that contribute to interoperability. + +To enable **data sovereignty**, Catena-X relies on **Self-Sovereign-Identity** (SSI). This allows data providers to precisely specify the conditions that must be met before requested data is transmitted. In the context of the PCF KIT, the "PCF Credential" and "Membership Credential" are mandatory. The PCF Credential references the [PCF Framework Agreement](https://catena-x.net/fileadmin/user_upload/04_Einfuehren_und_umsetzen/Governance_Framework/Catena-X_UseCasePCFExchange_Beta-Phase_DE.pdf) signed by a data consumer. The Membership Credential additionally ensures that the requester is an active member of Catena-X. + +The diagram shown here illustrates the interaction between the PCF KIT and the other Catena-X components. +![Business Architecture](resources/adoption-view/BusinessArchitecture.png) + +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2023,2023 ZF Friedrichshafen AG +- SPDX-FileCopyrightText: 2023,2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +- SPDX-FileCopyrightText: 2023,2023 T-Systems International GmbH +- SPDX-FileCopyrightText: 2023,2023 SAP SE +- SPDX-FileCopyrightText: 2023,2023 SIEMENS AG +- SPDX-FileCopyrightText: 2023,2023 SUPPLY ON AG +- SPDX-FileCopyrightText: 2023,2023 Volkswagen AG +- SPDX-FileCopyrightText: 2023,2023 Robert Bosch GmbH +- SPDX-FileCopyrightText: 2023,2023 Mercedes Benz Group +- SPDX-FileCopyrightText: 2023,2023 BASF SE +- SPDX-FileCopyrightText: 2023,2023 CCT +- SPDX-FileCopyrightText: 2023,2023 Gris Group +- SPDX-FileCopyrightText: 2023,2023 Contributors to the Eclipse Foundation +- Source URL: https://github.com/eclipse-tractusx/pcf-exchange-kit diff --git a/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/page_documentation.md b/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/page_documentation.md new file mode 100644 index 00000000000..15d424477bf --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/page_documentation.md @@ -0,0 +1,21 @@ +--- +title: Documentation Overview +--- + +## NOTICE + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2023,2023 ZF Friedrichshafen AG +- SPDX-FileCopyrightText: 2023,2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +- SPDX-FileCopyrightText: 2023,2023 T-Systems International GmbH +- SPDX-FileCopyrightText: 2023,2023 SAP SE +- SPDX-FileCopyrightText: 2023,2023 SIEMENS AG +- SPDX-FileCopyrightText: 2023,2023 SUPPLY ON AG +- SPDX-FileCopyrightText: 2023,2023 Volkswagen AG +- SPDX-FileCopyrightText: 2023,2023 Robert Bosch GmbH +- SPDX-FileCopyrightText: 2023,2023 Mercedes Benz Group +- SPDX-FileCopyrightText: 2023,2023 BASF SE +- SPDX-FileCopyrightText: 2023,2023 CCT +- SPDX-FileCopyrightText: 2023,2023 Gris Group +- SPDX-FileCopyrightText: 2023,2023 Contributors to the Eclipse Foundation +- Source URL: https://github.com/eclipse-tractusx/pcf-exchange-kit \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/page_software-operation-view.md b/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/page_software-operation-view.md new file mode 100644 index 00000000000..c4e27d6d9b8 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/page_software-operation-view.md @@ -0,0 +1,6 @@ +--- +id: Operation View +title: Operation View +description: 'PCF Exchange KIT' +sidebar_position: 4 +--- \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/resources/adoption-view/BusinessArchitecture.png b/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/resources/adoption-view/BusinessArchitecture.png new file mode 100644 index 00000000000..52c9786cfe2 Binary files /dev/null and b/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/resources/adoption-view/BusinessArchitecture.png differ diff --git a/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/resources/adoption-view/PCFCalculation.png b/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/resources/adoption-view/PCFCalculation.png new file mode 100644 index 00000000000..5fb80bf8475 Binary files /dev/null and b/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/resources/adoption-view/PCFCalculation.png differ diff --git a/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/resources/adoption-view/PCFDataExchangeOverview.png b/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/resources/adoption-view/PCFDataExchangeOverview.png new file mode 100644 index 00000000000..ca2810c6a9c Binary files /dev/null and b/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/resources/adoption-view/PCFDataExchangeOverview.png differ diff --git a/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/resources/adoption-view/PCFRequestandResponse.png b/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/resources/adoption-view/PCFRequestandResponse.png new file mode 100644 index 00000000000..4651620686a Binary files /dev/null and b/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/resources/adoption-view/PCFRequestandResponse.png differ diff --git a/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/resources/adoption-view/ScopeofCatena-XUseCase.png b/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/resources/adoption-view/ScopeofCatena-XUseCase.png new file mode 100644 index 00000000000..5c00d2cd45e Binary files /dev/null and b/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/resources/adoption-view/ScopeofCatena-XUseCase.png differ diff --git a/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/resources/development-view/BuildingblockView.png b/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/resources/development-view/BuildingblockView.png new file mode 100644 index 00000000000..de59cecc806 Binary files /dev/null and b/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/resources/development-view/BuildingblockView.png differ diff --git a/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/resources/development-view/EDCDiscoveryAnddDTRAccess.puml b/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/resources/development-view/EDCDiscoveryAnddDTRAccess.puml new file mode 100644 index 00000000000..1c6daf6cff8 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/resources/development-view/EDCDiscoveryAnddDTRAccess.puml @@ -0,0 +1,91 @@ +@startuml "EDC Discovery and dDTRAccess" + +participant PCF_Client +participant Client_API_Wapper +participant Client_EDC +participant EDC_Discovery_Service +participant Company_EDC +participant Company_DTR + +group Request PCF value + +group Technical user login (not shown in detail here) +end +!startsub EDCDiscovery +group Lookup Company's EDC +PCF_Client -> EDC_Discovery_Service: Lookup EDC URL (via BPN) +note right +POST https://portal-backend.some.demo.catena-x.net/api/administration/connectors/discovery +{ + [ ] +} +end note +EDC_Discovery_Service -> PCF_Client: EDC URL +end +!endsub + +!startsub DTRDiscovery +group Lookup Companies DTR +PCF_Client -> Client_EDC: Lookup Companies DTR\n(via Company's EDC URL) +Client_EDC -> Company_EDC: Lookup Asset in Catalog\n(EDC asset type "data.core.digitalTwinRegistry") +note right +Assumption PI9: Only one dDTR behind one of the EDCs +(there could be multiple in theory!) +end note +Company_EDC -> Client_EDC: DTR Asset +Client_EDC -> PCF_Client: DTR Asset ID +end +!endsub + +!startsub MaterialTwinLookup +group Lookup PCF Submodel of Material Twin +PCF_Client -> Client_EDC: Lookup Twin's Submodel\nin Companies DTR\n(via Company's EDC URL) +Client_EDC -> Company_EDC: Negotiate DTR access & lookup\nTwin's Submodel in Company's DTR\n(using AAS API and materialID) +note right +Lookup Twin ID for material: +GET https://someEDCProxURL/lookup/shells?assetIds=[{"key": "manufacturerPartId","value":"mat345"},{"key": "assetLifecyclePhase","value": "AsPlanned"}] + +Lookup Twin for ID +GET https://someEDCProxURL/registry/shell-descriptors/urn:uuid:c34018ab-5820-4065-9087-416d78e1ab60 + +end note +Company_EDC -> Company_DTR: Lookup Material Twin\nincl. PCF submodel +Company_DTR -> Company_EDC: Material Twin (AAS)\nincl. PCF submodel +Company_EDC -> Client_EDC: Material Twin (AAS)\nincl. PCF submodel +Client_EDC -> PCF_Client: Material Twin (AAS)\nincl. PCF submodel +note right +Showing submodel only to ease readability! + +{ + "description": [ + { + "language": "en", + "text": "PCF endpoint for material 'mat345'" + } + ], + "idShort": "PCFExchangeEndpoint", + "identification": "urn:uuid:205cf8d1-8f07-483c-9c5b-c8d706c7d05d", + "semanticId": { + "value": [ + "urn:bamm:io.catenax.pcf:4.0.0#Pcf" + ] + }, + "endpoints": [ + { + "interface": "PCF-0.0.3", + "protocolInformation": { + "href": "https://edc.data.plane/productIds/mat345", + "endpointProtocol": "HTTP", + "endpointProtocolVersion": ["1.1"] + "subprotocol": "DSP", + "subprotocolBody": "id=c34018ab-5820-4065-9087-416d78e1ab60;dspEndpoint=https://some.controlplane.url:7173", + "subprotocolBodyEncoding": "plain" + } + } + ] +} +end note +end +!endsub + +@enduml \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/resources/development-view/EDCDiscoveryanddDTRAccess.png b/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/resources/development-view/EDCDiscoveryanddDTRAccess.png new file mode 100644 index 00000000000..6c580760868 Binary files /dev/null and b/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/resources/development-view/EDCDiscoveryanddDTRAccess.png differ diff --git a/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/resources/development-view/PCFRequest.puml b/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/resources/development-view/PCFRequest.puml new file mode 100644 index 00000000000..00de656e79c --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/resources/development-view/PCFRequest.puml @@ -0,0 +1,104 @@ +@startuml "PCF Request through AAS" + +participant PCF_Client +participant Client_API_Wapper +participant Client_EDC +participant EDC_Discovery_Service +participant Company_EDC +participant Company_DTR +participant Company_API_Wapper +participant Company_PCF_App + +group Request PCF value + +group Technical user login (not shown in detail here) +end + +!includesub EDCDiscoveryAnddDTRAccess.puml!EDCDiscovery +!includesub EDCDiscoveryAnddDTRAccess.puml!DTRDiscovery +!includesub EDCDiscoveryAnddDTRAccess.puml!MaterialTwinLookup + +group Invoke PCF Submodel of Material Twin +PCF_Client -> PCF_Client: Extract Endpoint from submodel via 'idShort' +PCF_Client -> PCF_Client: Rewrite endpoint URL for call through own API Wrapper +PCF_Client -> Client_API_Wapper: Invoke asset with reqID, BPN & comment +note right +GET https://clientApiWrapperUrl/api/service/c34018ab-5820-4065-9087-416d78e1ab60/productIds/mat345?providerUrl=https://some.controlplane.url:7173&requestId=123&BPN=&comment=... +end note +Client_API_Wapper -> Client_EDC: Negotiate access to asset and enable proxy transfer +Client_EDC -> Company_EDC: Negotiate access to asset and enable proxy transfer +Company_EDC -> Client_EDC: Agreement & EndpointDataReference +Client_EDC -> Client_API_Wapper: Agreement & EndpointDataReference +Client_API_Wapper -> Client_EDC: PCF endpoint call incl. req.ID, BPN & comment +Client_EDC -> Company_EDC: PCF endpoint call incl. req.ID, BPN & comment +note right +Using PCF API through EDC via HTTP Proxy: +GET https://{someURL}/productIds/mat345?requestId=123&BPN=&comment=... +end note +Company_EDC -> Company_PCF_App: PCF endpoint call incl. req.ID, BPN & comment +note right +Can we use existing +PCF API directly? +If so: no AAS adapter +would be needed! +end note +Company_PCF_App -> Company_EDC: Accepted +Company_EDC -> Client_EDC: Accepted +Client_EDC -> Client_API_Wapper: Accepted +Client_API_Wapper -> PCF_Client: Accepted +end +end + +Company_PCF_App -> Company_PCF_App: Approve PCF Request and\ncalculate PCF if needed + +group Receive/Send PCF value + +group Technical user login (not shown in detail here) +end + +group Lookup Clients's EDC +Company_PCF_App -> EDC_Discovery_Service: Lookup EDC URL (via BPN) +note right +POST https://portal-backend.some.demo.catena-x.net/api/administration/connectors/discovery +{ + [ ] +} +end note +EDC_Discovery_Service -> Company_PCF_App: EDC URL +end + +group Lookup Clients PCF Receive Asset +Company_PCF_App -> Company_EDC: Lookup Client's Receive Asset\n(via Company's EDC URL) +Company_EDC -> Client_EDC: Lookup Asset in Catalog\n(EDC asset type "data.pcf.exchangeEndpoint") +note right +There could be multiple EDC URLs, but +only one with a PCF Exchange Asset +end note +Client_EDC -> Company_EDC: PCF Asset +Company_EDC -> Company_PCF_App: PCF Asset ID +end + +group Push PCF to Client +Company_PCF_App -> Company_API_Wapper: Invoke asset with reqID, BPN & comment +note right +PUT https://clientApiWrapperUrl/api/service/20ac18ab-5820-4065-9087-416d78e155cd/productIds/mat345?providerUrl=https://client.controlplane.url:8184&requestId=123&BPN=& +end note +Company_API_Wapper -> Company_EDC: Negotiate access to asset and enable proxy transfer +Company_EDC -> Client_EDC: Negotiate access to asset and enable proxy transfer +Client_EDC -> Company_EDC: Agreement & EndpointDataReference +Company_EDC -> Company_API_Wapper: Agreement & EndpointDataReference +Company_API_Wapper -> Company_EDC: PCF endpoint call incl. req.ID & BPN +Company_EDC -> Client_EDC: PCF endpoint call incl. req.ID & BPN +note right +Using PCF API through EDC via HTTP Proxy: +PUT https://{someURL}/productIds/mat345?requestId=123&BPN= +end note +Client_EDC -> PCF_Client: PCF endpoint call incl. req.ID, BPN & comment +PCF_Client -> Client_EDC: OK +Client_EDC -> Company_EDC: OK +Company_EDC -> Company_API_Wapper: OK +Company_API_Wapper -> Company_PCF_App: OK +end +end + +@enduml \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/resources/development-view/PCFRequestthroughAAS.png b/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/resources/development-view/PCFRequestthroughAAS.png new file mode 100644 index 00000000000..aa0c927fbf8 Binary files /dev/null and b/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/resources/development-view/PCFRequestthroughAAS.png differ diff --git a/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/resources/development-view/PCFUpdate.puml b/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/resources/development-view/PCFUpdate.puml new file mode 100644 index 00000000000..67ad46e1667 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/resources/development-view/PCFUpdate.puml @@ -0,0 +1,68 @@ +@startuml "PCF Update pushed through EDC" + +participant PCF_Client +participant Client_EDC +participant EDC_Discovery_Service +participant Company_EDC +participant Company_DTR +participant Company_API_Wapper +participant Company_PCF_App + +Company_PCF_App -> Company_PCF_App: Calculate updated PCF value +Company_PCF_App -> Company_PCF_App: Select reveivers for PCF push update + +group Send updated PCF value to already known Client + +group Technical user login (not shown in detail here) +end + +group Lookup Clients's EDC +Company_PCF_App -> EDC_Discovery_Service: Lookup EDC URL (via BPN) +note right +POST https://portal-backend.some.demo.catena-x.net/api/administration/connectors/discovery +{ + [ ] +} +end note +EDC_Discovery_Service -> Company_PCF_App: EDC URL +end + +group Lookup Clients PCF Receive Asset +Company_PCF_App -> Company_EDC: Lookup Client's Receive Asset\n(via Company's EDC URL) +Company_EDC -> Client_EDC: Lookup Asset in Catalog\n(EDC asset type "data.pcf.exchangeEndpoint") +note right +There could be multiple EDC URLs, but +only one with a PCF Exchange Asset +end note +Client_EDC -> Company_EDC: PCF Asset +Company_EDC -> Company_PCF_App: PCF Asset ID +end + +group Push PCF to Client +Company_PCF_App -> Company_API_Wapper: Invoke asset with sender's BPN +note right +PUT https://clientApiWrapperUrl/api/service/722b7ea2-3bc6-4f9e-a106-b8650d206b69/productIds/mat345?providerUrl=https://client.controlplane.url:8384&BPN= +{ + ...Updated PCF JSON in Body... +} +end note +Company_API_Wapper -> Company_EDC: Negotiate access to asset and enable proxy transfer +Company_EDC -> Client_EDC: Negotiate access to asset and enable proxy transfer +Client_EDC -> Company_EDC: Agreement & EndpointDataReference +Company_EDC -> Company_API_Wapper: Agreement & EndpointDataReference +Company_API_Wapper -> Company_EDC: PCF endpoint call incl. sender's BPN +Company_EDC -> Client_EDC: PCF endpoint call incl.sender's BPN +note right +Using PCF API through EDC via HTTP Proxy: +PUT https://{someURL}/productIds/mat345?BPN= +{ ... } +end note +Client_EDC -> PCF_Client: PCF endpoint call incl. sender's BPN +PCF_Client -> Client_EDC: OK +Client_EDC -> Company_EDC: OK +Company_EDC -> Company_API_Wapper: OK +Company_API_Wapper -> Company_PCF_App: OK +end +end + +@enduml \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/resources/development-view/PCFUpdatepushthroughEDC.png b/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/resources/development-view/PCFUpdatepushthroughEDC.png new file mode 100644 index 00000000000..56627e53322 Binary files /dev/null and b/docs-kits_versioned_docs/version-23.12/kits/PCF Exchange Kit/resources/development-view/PCFUpdatepushthroughEDC.png differ diff --git a/docs-kits_versioned_docs/version-23.12/kits/Quality-Kit/Software Development View/page_software-development-view.md b/docs-kits_versioned_docs/version-23.12/kits/Quality-Kit/Software Development View/page_software-development-view.md new file mode 100644 index 00000000000..b9d73705985 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Quality-Kit/Software Development View/page_software-development-view.md @@ -0,0 +1,145 @@ +--- +id: Specification Quality Kit +title: Specification +description: 'Quality Kit' +sidebar_position: 4 +--- + +![Quality kit banner](@site/static/img/QualityKitIcon.png) + +### Quality KIT + +## Quality Data Offers at EDC + +For the process described in the KIT Quality, data exchange between the participating partner companies is necessarily to be done for large vehicle and product populations. The data exchange therefore tshould be done as a file download via EDC according to the following specifications. + +### **Asset File type** + +It is recommended to create and transfer the files in the types csv, parquet, json or xls + +### **Asset Transfers** + +File transfer can be done via EDC S3 plane or alternatively REST http. + +### **Asset consumption** + +**File** flattening **rules**: The data provided in the asset is build from 4 to 6 structures. To assure a secure and smooth exchange flatting rules for the file (csv / xls / Parquet / json) must be applied. This includes checks for format and possible values for each column and will be part of next version regulations. If the rules are not applied correctly the mapping of content will not be possible without manual handling effort. + +## Sample Data + +Standard version from: 09.2023 + +In the following, example data for the standardized data models are provided as download in zip format. The sample data is generated according the current standards. It contains a virtual fleet of 50.000 vehicles where two quality issues are implemented. + +- Production failure of product "zehn" at Tier 1 +- Specification failure + +### Quality Task Sample Data + +Github Link to semantic data model: [CX-00036 Quality Task](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.quality_task) + +Filedownload: 20230704-io.catenax.quality_task.zip + +As **data provider** please add the **JSON file** from folder tesdata_CX32 +as EDC asset id to **EDC REST data plane**: +CX_release32_qualitytask_100_testdata_100_json + +As **data provider** please add the **PARQUET file** from folder tesdata_CX32 +as EDC asset id to **EDC S3 data plane**: +CX_release32_qualitytask_100_testdata_100_parquet + +--- + +### Quality Task Attachment Sample Data + +Github Link to semantic data model: [CX-00092 Quality Task Attachment](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.quality_task_attachment) + +Filedownload: 20230718-io.catenax.quality_task_attachment.zip + +As **data provider** please add the **PARQUET file** from folder tesdata_CX32 +as EDC asset id to **EDC S3 data plane**: +CX_release32_qualitytaskattachment_100_testdata_100_zip + +--- + +### Fleet Vehicles Sample Data + +Github Link to semantic data models: + +[CX-00037 Vehicle Product Description](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.vehicle.product_description) + +[CX-00091 Fleet Vehicles](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.fleet.vehicles) + +Filedownload: 20230707-io.catenax.fleet.vehicles.zip + +As **data provider** please add the **JSON file** from folder tesdata_CX32 +as EDC asset id to **EDC REST data plane**: +CX_release32_fleetvehicles_100_testdata_100_json + +As **data provider** please add the **PARQUET file** from folder tesdata_CX32 +as EDC asset id to **EDC S3 data plane**: +CX_release32_fleetvehicles_100_testdata_100_parquet + +--- + +### Fleet Diagnostic Sample Data + +Github Link to semantic data model: [CX-00038 Fleet Diagnostic Data](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.fleet.diagnostic_data) + +Filedownload: 20230707-io.catenax.fleet.diagnostic_data.zip + +As **data provider** please add the **JSON file** from folder tesdata_CX32 +as EDC asset id to **EDC REST data plane**: +CX_release32_fleetdiagnostic_100_testdata_100_json + +As **data provider** please add the **PARQUET file** from folder tesdata_CX32 +as EDC asset id to **EDC S3 data plane**: +CX_release32_fleetdiagnostic_100_testdata_100_parquet + +--- + +### Fleet Claim Sample Data + +Github Link to semantic data model: [CX-00039 Fleet Claim Data](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.fleet.claim_data) + +Filedownload: 20230707-io.catenax.fleet.claim_data.zip + +As **data provider** please add the **JSON file** from folder tesdata_CX32 +as EDC asset id to **EDC REST data plane**: +CX_release32_fleetclaim_100_testdata_100_json + +As **data provider** please add the **PARQUET file** from folder tesdata_CX32 +as EDC asset id to **EDC S3 data plane**: +CX_release32_fleetclaim_100_testdata_100_parquet + +--- + +### Manufactured Parts Quality Information Sample Data + +Github Link to semantic data model: [CX-00041 Manufactured Parts Quality Information](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.manufactured_parts_quality_information) + +Filedownload: 20230707-io.catenax.manufactured_parts_quality_information.zip + +As **data provider** please add the **JSON file** from folder tesdata_CX32 +as EDC asset id to **EDC REST data plane**: +CX_release32_manufacturingqualityinformation_100_testdata_100_json + +As **data provider** please add the **PARQUET file** from folder tesdata_CX32 +as EDC asset id to **EDC S3 data plane**: +CX_release32_manufacturingqualityinformation_100_testdata_100_parquet + +--- + +### Parts Analyses Sample Data + +Github Link to semantic data model: [CX-00040 Parts Analyses](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.parts_analyses) + +Filedownload: 20230704-io.catenax.parts_analyses.zip + +As **data provider** please add the **JSON file** from folder tesdata_CX32 +as EDC asset id to **EDC REST data plane**: +CX_release32_partsanalyses_200_testdata_100_json + +As **data provider** please add the **PARQUET file** from folder tesdata_CX32 +as EDC asset id to **EDC S3 data plane**: +CX_release32_partsanalyses_200_testdata_100_parquet diff --git a/docs-kits_versioned_docs/version-23.12/kits/Quality-Kit/page_adoption-view.md b/docs-kits_versioned_docs/version-23.12/kits/Quality-Kit/page_adoption-view.md new file mode 100644 index 00000000000..69a20f985b6 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Quality-Kit/page_adoption-view.md @@ -0,0 +1,453 @@ +--- +id: Adoption View Quality Kit +title: Adoption View +description: 'Quality Kit' +sidebar_position: 2 +--- + +![Quality kit banner](@site/static/img/QualityKitIcon.png) + +### Quality KIT + +## Vision & Mission + +### Vision + +Our vision is to move from parts-based quality management on a bilateral level between supplier and customer to a data-based approach across the OEM-n-Tier chains of value creation to enable a network approach for producing and ensuring product quality. + +![quality kit vision diagram](@site/static/img/quality-kit_vision-min.png) + +The Quality KIT enables **data provider** and **consumer** to exchange and analyse existing data across company boundaries on a daily basis, securely and easily. By merging the OEM's field quality data and the supplier's product information, a new level of transparency is achieved in a joint analysis (single point of information). This leads to earlier failure detection, faster cooperation between partners and acceleration of root cause analysis. Once the root cause of the problem is known, corrective actions can be targeted to the products and vehicles that have the quality problem using Catena-X traceability capabilities. The containment minimises the number of parts & vehicles for which corrective actions need to be implemented. + +This KIT enables **quality app provider** to deliver solutions for quality data analysis including tracebility and notification functionalities. + +### Mission + +![quality kit mission diagram](@site/static/img/quality-kit_mission-min.png) + +The Quality KIT provides the necessary standards, aspect models, technical data pipeline specifications and business logics on how to estabilish a soverein exchange of quality related data along the OEM-Tier n chain. All the components mentioned are based on the following principles: + +- We bring together data from suppliers and manufacturers (OEM). +- Data exchange between data provider and consumer complies with the Catena-X network's data sovereignty principles. +- Data exchange enables each partner to use the applications of their choice for data analysis features like Early Warning and Root Cause Analysis. +- We standardize data models incl. their assets +- Data exchange in the current Quality KIT version is described as a common requirement. +- Analysis methods and algorithms that are realized in the quaity applications are not part of any standardization. It is desirable that different tools deliver different results Specialisation of tools is valuable. + +In sum this KIT enables quality management to substantially **increase speed** in resolving quality problems and reach a **new level on transparency** and traceability. + +### Customer Journey + +With the Quality KIT, we support the Catena-X customer journey for our adopters and solutions providers. + +![quality kit customer journey diagram](@site/static/img/quality-kit_customer-journey-min.png) + +## Business Value + +Through the standardized specifications described in the “Quality-KIT” – mainly the semantic models and data exchange process – data providers & consumers can build up a soverreign and trusty data exchange pipeline with their partner companies and reduce investment and implementation costs to integrate data based quality processes in their company inhouse process and IT landscape. + +Furthermore, quality application providers can also reduce the implementation effort and enter potential new markets providing specific analytic capabilities. + +## Use Case + +### Status Quo / Today's challenge + +In today’s global and complex collaboration models quality does not emerge as the sum of the quality contributions of the individual partners in the value chain of OEM and suppliers, but rather because of the networking of the partners involved. + +The existing conventional bilateral working models do not account for this. There is no operative network in the industry with a substantial coverage of elements of the value chains that provides the necessary means for collaborative quality management with all involved partners. + +From Quality Management perspective, the main challenge within the automotive industry is to define and implement inter-organizational end-to-end data chains across the whole automotive partner chain to empower data driven quality use cases. + +Main challenges to ensure a trustful and scalable cooperation are: + +- Trustful and sovereign data exchange mechanism including ... + - legal contracts and access/usage policy framework along the complete data chain + - Standardized data pipeline + - Aligned standard data exchange, e.g. file format and transfer +- Standardized data models + +### Benefits + +![quality kit benefits diagram](@site/static/img/quality-kit_benefits-min.png) + +#### OEM and large automotive suppliers + +The Quality KIT from Catena-X enables companies to realize trustful and sovereign data exchange with their partners and utilize the data in a cooperative way for an Early Warning of known and unknown quality issues. Root causes can be analysed und understood much faster what leads to an earlier and focussed counter measure. In sum companies can realize economic benefit by reduction of warranty costs while at the same time increasing customer satisfaction due to a maximum availability of vehicles, products and services. + +#### SME + +The defined standards like data models and data exchange pipelines enforce a flexible and low-barries approach to integrate quality use cases and features according to SME need. An easy access to analytic capabilities or transparent analytic results from partner companies leads to an economic benefit from warranty costs reduction via faster on more focused activities related to quality issues. + +#### Solution Provider + +Solution providers have the potential to scale customer groups via platform effects and standardization of data models and their exchange. Additional new market potentials can be accessed via marketplace and shared service network. + +**Example: Benefits of using early warning and root cause analyses in active field monitoring of a vehicle component** + +OEM A and supplier B agree to carry out quality analyses with field data from the OEM and production data from the supplier based on Catena-X Use Case Quality Methodology (live control loop see above) and with Catena-X-certified tools. For this purpose, a quality case with framework conditions is agreed to in the use case. A component and the associated data are selected. After technical and organizational onboarding and the agreed data exchange, the joint analysis room is available and collaborative quality work can be started. + +In general, one of the partners carries out continuous monitoring of the components using the common database. This allows, for example, error messages in the vehicle, repairs and claims to be monitored and anomalies are immediately visible. + +In our example, an engine component passes on various error messages (DTCs = Diagnosis Trouble Codes) to the vehicle via the central engine control unit. After 4 weeks, it is visible in the Catena-X certified tool that a DTC in the field is slowly but steadily increasing. With Catena-X Tooling, this is immediately recognized, although no increasing workshop visits and repairs are yet visible in the database. An employee of a partner immediately notices this and shares this observation with the joint team. At the same time, the employee begins to clarify through initial analyses whether the anomaly is actually a problem. Since it quickly becomes clear from the data that this is a potentially critical fault pattern with the result of increasing repair cases and that a replacement of parts may be necessary, the employee reports this to the joint team (early warning). + +The team decides to carry out a root cause analysis together. Various hypotheses about the cause of the fault are examined: running times are compared, software levels, environmental conditions at the time the fault occurred, etc. The cause of the fault is a diagnostic algorithm modified in a software update, which results in the abnormal DTC appearing more often in the field at hot temperatures. This is caused by the production of vehicles from a certain point in time with the new software version or the installation of a new software version for vehicles in the field, e.g. during a service visit to a workshop. + +As a jointly defined corrective measure between OEM and supplier, a modified algorithm will be integrated into the next regular software update. This starts as soon as possible in vehicle production and vehicles with the faulty software version receive a software update the next time they visit the workshop. For this purpose, repair shops are informed that the displayed error (DTC) for a particular software version is a software problem and does not require any repair. This minimizes costs due to unnecessary repairs. + +The affected component continues to be monitored regularly. After a few months, there is a decrease in the conspicuous DTC corresponding to the reduction in the number of vehicles in the field with the faulty software version (proof of effectiveness of the corrective measure adopted). + +The image below shows user feedback, challenges, results and benefits of the new data-based way of working using the example of the Early Warning & Root Cause Analysis process steps. + +![quality kit example of benefits chart](@site/static/img/quality-kit_example-benefit-min.png) + +**Conclusion:** + +The example impressively shows that with the Catena-X methodology (live control loop), quality problems can be identified earlier, the causes of faults can be found more quickly, corrective measures can be carried out in a more targeted manner and the affected vehicles can be narrowed down more precisely. There are similar examples of the conversion of production parameters at the supplier or design errors in the design of vehicle components. + +(Source: The example is based on real project results from piloting the Catena-X methodology at an OEM with 5 selected suppliers) + +## Tutorials + +The following videos gives an overview of the presented Quality Improvement Use Case. + +Overview about how Quality Management is improved by Catena-X + + + +For more technical details take a look at the video in the [Operation View](/docs-kits/kits/Quality-Kit/page_software-operation-view.md) + +Data driven Quality Management with Catena-X - Statements from the consortial partners + + + +## Semantic Models + +### Semantic Structure + +![semantic structure chart](@site/static/img/quality-kit_semantic-structure-min.png) + +### Overview Data Model Entities + +Download for MS Excel: Quality_KIT_DataModelOverview_v1.0.xlsx + +### Quality Task + +Quality Task is the root element and describes why companies are working together on a quality topic and what they want to do. All involved companies and their contact people are named. In addition, a flag tells what should be done with exchanged data after a Quality Task is closed. A Quality Task (qTask) can be created by both **OEM or Supplier** and defines why data is exchanged between two or more companies and what insights should be generated out of the transferred data. In addition, there is a flag what happens with the transferred data when this qTask is closed. + +**Remark**: The table contains an overview about the data content as explanation. For the implementation of the valid entity naming and semantic structure please reference to the model definition in Github. + +| Entity name | Entity description | Example | +|-----------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------| +| qualityTaskId | An unique quality task identifier for this quality task. Each company generates their own quality task ids using the Catena-X business partner number. | BPN-811_2022_000001 | +| status | Status of this quality task | new | +| creationDate | Timestamp when this quality task was created | 2019-04-01T14:00:00 | +| title | Working title for this quality task | Early Warning A | +| description | Description what should be done in this quality task | Early Warning of vehicle model A | +| component | The component that should be monitored or investigated in this quality task | ComponentA | +| dataDeletion | What should be done with the data after this quality task is closed | delete-data-after-closing | +| cxBPN | Catena-X Business Partner Number (BPN) of the involved company | BPN-8110 | +| name | Name of the involved company | testCompanyA | +| email | E-Mail of the key contact at involved company | Horst.Schlemmer@testCompanyA.de | + +Github Link to semantic data model: [CX-00036 Quality Task](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.quality_task) + +### Quality Task Attachment + +Quality Task Attachment gives the ability to share data that is not standardized in an existing semantic model yet. Non standardized data provisioning is realized as a file transfer. The model contains file parameters and the schema of structured data in the provided file. A Quality Task Attachment can be provided by both **OEM or Supplier**. + +**Remark**: The table contains an overview about the data content as explanation. For the implementation of the valid entity naming and semantic structure please reference to the model definition in Github. + +| Entity name | Entity description | Example | +|--------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------| +| qualityTaskId | Reference to a Quality Task: A unique identifier. The company creating this quality task sets this identifier. The identifier should contain the BPN to make it unique insidethe CX network. | BPN-811_2022_000001 | +| relatedModelType | Name of the semantic data model, that the attachment belongs to. | fleet diagnotic data | +| fileDescription | Description of the file content | Fleet environmental conditions | +| fileName | Name of the provided file | Histogramm_data.csv | +| sizeInKb | Size of the provided file in KiloByte | 615 | +| fileExtension | Extension of the provided file | csv | +| filePath | Path of the provided file - If file is provided in a folder structure | /subfolder/Histogramm_data.csv | +| delimiter | Delimiter that separates column values in a tabular form like e.g. a "csv" file | semicolon | +| unit | Physical unit of each variable in a tabular schema | degreeCelsius | +| variableName | Name of each variable in a tabular schema | Ambient temperature | +| dataType | Data type of each variable in a tabular schema | double | +| variableDescription | Description of each variable in a tabular schema | This column contains the hourly ambient temperature | +| decimalSeperator | Seperator in a decimal number | comma | + +Github Link to semantic data model: [CX-00092 Quality Task Attachment](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.quality_task_attachment) + +**OEM Data**: Data structured in the following semantic models are to be delivered by OEM. + +### Fleet Vehicles Product Description + +Master data for each vehicle of a specific population - from an end customer view. This model represents the vehicle as it was sold to the customer. All entities and properties are constant over the lifetime of the vehicle. + +**Remark**: This semantic model contains of two models that are standardized in CX-00091, containing the vehicle population (listOfVehicles) and CX-00037 containing the data entities. The table contains an overview about the data content as explanation. For the implementation of the valid entity naming and semantic structure please reference to the model definition in Github. + +| Entity name | Entity description | Example | +|----------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------| +| anonymizedVin | OEM-specific hashed VIN; link to car data over pseudonymized/hashed VIN or Catena-X unique digital twin identifier | 3747429FGH382923974682 | +| class | Class of the vehicle | A | +| driveType | Drive type of a vehicle according to enumeration | All-Wheel Drive (AWD) | +| emptyWeight | The empty weight of the vehicle in kg as specified | 2000 | +| modelDescription | Detail vehicle model, e.g. "Golf VIII" | CX test model 2 | +| modelIdentifier | OEM-specific model identifier or OEM-specific project name | 689-G8 | +| steeringPos | Position of vehicle steering wheel (e.g. left or right) | Left-Hand Drive (LHD) | +| catenaXId | A fully anonymous Catena-X identifier that is registered in CX Digital twin registry. Can be used for vehicles, parts, workshops, etc. | 580d3adf-1981-44a0-a214-13d6ceed9379 | +| vehicleSeries | Vehicle series, normally one level above model. E.g. vehicle series ="Golf", vehicle model="Golf VIII" | Series1 | +| systemPower | Complete power of this vehicle in KW | 110 | +| hybridizationType | Kind of the hybridization in this vehicle | battery electric vehicle | +| softwareCategory | Some OEMs bring in the software as a complete package for all systems. To identify this software, software category and software version is needed. Software category when his car was built | TZGH64738 | +| softwareVersion | Some OEMs bring in the software as complete package for all systems. To identify this software, software category and software version is needed. Software version when his car was built | 3.4.9837.567 | +| cxBPN | Catena-X business partner number of the OEM company | urn:uuid:4789d3adf-cax_qax1-_oem-13d6ceed9379 | +| wmiCode | Short name/code of the vehicle manufacturer according to world manufacturer information(wmi). The wmiCode is the first 3 chars of the vehicle identification number. | CAX | +| wmiDescription | Name of OEM according to NHTSA or other authorities. Has to be compliant with linked wmiCode attribute. | CatenaX Test OEM | +| colorId | Color code describes the code of a specific color of one vehicle | LY7W | +| colorDescription | Color name describes the color of the color code as a written word | Light grey | +| numberOfDoors | Describes the number of doors of a vehicle | 5 | +| kbaBody | Vehicle variant - Body shapes according to German KBA | Limousine | +| nhtsaBody | Vehicle variant - Body shapes according to US NHTSA | Cargo Van | +| equipmentDescription | The equipment variants description | Sport seats | +| equipmentIdentifier | The identifier of a specific equipment | SDCF34 | +| group | Grouping the special equipment into categories like (e.g. interior) | Interior | +| plantDescription | Long name of the production plant of the vehicle | Wolfsburg | +| plantIdentifier | Plant id of the final assembly of the vehicle | 4711 | +| productionDate | Production date of the vehicle | 2018-01-15T00:00:00 | +| countryCode | Vehicle sold country in ISO 3166 alpha 3 | DEU | +| countryGroup | Region where this car was sold | Europe | +| soldDate | Sold date of the vehicle = warranty start date for this vehicle | 03.02.2018 | +| engineDescription | Description of the engine | 2.0 Diesel | +| engines.engineId | OEM-specific identifier/type of the installed engine | Type100 | +| engineProductionDate | Date when the engine was produced | 2017-10-20T00:00:00 | +| engineSeries | Engine series | Series10 | +| installDate | Date when the engine was installed | 2018-01-10T00:00:00 | +| power | Engine power is the power that an engine can put out | 110 | +| serialNumber | serial number of the installed engine | b11c7587a | +| size | Cubic capacity in a combustion engine - not available in battery-electric vehicles | 1998 | +| kbaFuelType | Description of the fuel according German KBA | Diesel | +| nhtsaFuelType | Description of the fuel according US NHTSA | Diesel | + +Github Links to semantic data models: + +[CX-00037 Vehicle Product Description](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.vehicle.product_description) + +[CX-00091 Fleet Vehicles](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.fleet.vehicles) + +### Fleet Diagnostic Data + +Data model for vehicle diagnostic data suitable for mass data transfer. Diagnostic data coming from multiple vehicles that are affected by an quality issue + Diagnostic data from similar vehicles that are not affected by an quality issue. + +**Remark**: The table contains an overview about the data content as explanation. For the implementation of the valid entity naming and semantic structure please reference to the model definition in Github. + +| Entity name | Entity description | Example | +|---------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------| +| workShopId | OEM internal workshop ID | 8632208 | +| type | Indicator whether this DTC was stored as error or Info | Error | +| swVersion | Current version of the software on this ECU | AA | +| swPartNumber | SW part number of this ecu | SW_A | +| softwareVersion | Software version of this car during the session - only available for OEMs that have a software category on vehicle level | 3.5.0001.001 | +| softwareCategory | Software category of this car during the session - only available for OEMs that have a software category on vehicle level | TZGH64738 | +| sessionId | Format is OEM-specific: A unique session identifier within one OEM. | APD5889H7J6OZV5KR80D0D470833L0A_20190407 | +| readOutDate | Date when this ECU information was read out from the diagnostic session | 2022-10-12T03:59:00 | +| qualityTaskId | A unique quality task identifier, where these lists of session data belong to. Optional to ensure that also diagnostic data without quality task can be exchanged. | BPN-811_2022_000001 | +| occurenceMileage | Mileage in km when the DTC occurred the first time | 30 | +| occurenceDateTime | Date and time when the DTC occurred the first time/was recorded the first time in the ECU | 2022-01-30T14:48:54 | +| occurenceCounterTotal | Counter how often this DTC was set in total | 22 | +| name | Name of ECU | ABS | +| mileage | Current mileage counter of the car during the diagnostic session | 120 | +| measurementUnit | The unit of measurement for the environment condition value. | rpm | +| longitude | Longitude of this workshop | 53,14968808 | +| latitude | Latitude of this workshop | 17,23471843 | +| isMilOn | Describes whether this DTC set the MIL (malfunction indicator light) in the dashboard | true | +| hwVersion | Hardware version of ECU | V1 | +| hwPartNumber | Hardware part number of ECU | HW_A1 | +| fullName | Combined string of DTC name plus the so called DTC sub type or DTC failure byte. Both string values are concatenated using a "-" as eparator. DTC name is: B\|C\|P\|U + 4 hex chars DTC failure byte: 2 hex chars In some rare cases this could be just a hex string | P0001-00 | +| fullDescription | Description of DTC and failure byte. Both description strings are concatenated using a "-" as separator | Catena-X test dtc 1 | +| freezeFrame | Undecoded freeze frame from ECU. The freeze frame records many parameters of the DTC and surrounding parameters like outside temperature when the DTC was set. It is a very long HEX string with many OEM-specific and ECU-specific content in | Example_freeze_frame | +| faultPathDescription | OEM-specific description of DTC fault path | Shortage to plus | +| faultPath | OEM-specific: Fault path for this DTC. Allows further analysis | 1000761 | +| eventValue | The value of this event. For example, the calibration file used. | CAL366474-4848 | +| eventId | OEM-specific: Primary key for this event | ABS_CAL1234 | +| eventDescription | The description of the event | Calibration of ABS ecu with calib file - see value | +| eventCreationDate | Date and time when this event occured | 2022-10-12T03:59:00 | +| ecuSerialPartNumber | Unique serial number of ECU | 60284BD6790 | +| ecuSerialPartNumber | Serial number of ECU | 60284BD6790 | +| ecuSerialPartNumber | Serial number of ECU | 60284BD6790 | +| ecuSerialPartNumber | Serial number of ECU | 60284BD6790 | +| dtcList.state | OEM-specific state of DTC: 0;1 (permanent/temporary/intermediate), could also be a string with permanent, temporary, intermediate, etc. | permanent | +| dtcHexValue | Hex value of this DTC | 4337499FF | +| dtcHexValue | Hex value of this DTC | 4337499FF | +| dtcHexValue | Hex value of this DTC | 4337499FF | +| description | Long name of ECU | Anti-blocking control unit | +| creationDate | Date-timestamp for this session according to ISO 8601 when this session was created. Depending on OEM this attribute reflects the start or end date of one diagnostic session. | 2022-02-04T14:48:54 | +| countryCode | Country code in ISO 3166-1 alpha-3 codes, where this session took place | DEU | +| conditionValue | The numeric value (if applicable) of the stored environment condition at the time of the DTC. | 4000 | +| conditionId | OEM-specific: Primary key for this condition consists of unique identifier of env. condition and DTC | DTC1_EnvCond1 | +| conditionDescription | The description of the environment condition/information | RPM | +| conditionCreationDate | Date and time when this condition/information was created. | 2022-10-12T03:59:00 | +| catenaXId | A fully anonymous Catena-X identifier that is registered in the C-X Digital twin registry. This property can be used for vehicles, parts, workshops, etc. Optional: Not always available | urn:uuid:f5a1a3e716-cax_-qax1-test-1a8c38ea27 | +| catenaXId | A fully anonymous Catena-X identifier that is registered in the C-X Digital twin registry. This property can be used for vehicles, parts, workshops, etc. Optional: Not always available | urn:uuid:b11c7587af-cax_-qax1-car-f810a2cadc | +| assemblyPartNumberVersion | OEM-specific ECU assembly version | 1 | +| assemblyPartNumber | OEM-specific ECU assembly from hardware and software | V039352784 | +| anonymizedVIN | OEM-specific hashed VIN; link to car data over pseudonymized/hashed VIN or Catena-X unique digital twin identifier | APD5889H7J6OZV5KR80D0D470833L0A | + +Github Link to semantic data model: [CX-00038 Fleet Diagnostic Data](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.fleet.diagnostic_data) + +### Fleet Claim Data + +Customer complaints that are linked to this QualityTask +Data about the exchange of potentially faulty parts. + +**Remark**: The table contains an overview about the data content as explanation. For the implementation of the valid entity naming and semantic structure please reference to the model definition in Github. + +| Entity name | Entity description | Example | +|----------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------| +| claimId | Claim ID is unique for each OEM | B798JI26D | +| qualityTaskId | Reference to a Quality Task: A unique identifier. The company creating this quality task sets this identifier. The identifier should contain the BPN to make it unique inside the CX network. | BPN-811_2022_000001 | +| listOfDiagnosticSessionId | References to a list of diagnostic session IDs | APD5889H7J6OZV5KR80D0D470833L0A_20190407 | +| repairMileage | Mileage of the car when the claim was reported | 120 | +| repairDate | References the date when the claim was initially reported | 43562 | +| technicianComment | Short description of the claim from the technician | Technician comment | +| customerComment | Short description of the claim from customer view (vehicle owner) | Customer comment | +| damageCode | OEM-specific damage code | G300 | +| vehicleCatenaXId | Catena-X car ID /digital twin of car | urn:uuid:b11c7587af-cax_-qax1-car-f810a2cadc | +| anonymizedVIN | OEM-specific hashed VIN; link to car data over pseudonymized/hashed VIN or Catena-X unique digital twin identifier | APD5889H7J6OZV5KR80D0D470833L0A | +| isPartReplaced | Flag is set if part was replaced. true: replaced false: not replaced | true | +| isPartCausal | Flag set to true if part was causing the problem. true: part caused the problem. false: part did not cause the problem. | true | +| amountOfReplacedParts | Counter for non-serial parts which have been replaced | 1 | +| replacedPart.name | OEM specific name of the part | zehn | +| replacedPart.number | OEM specific part number | 8D34393E7FFE | +| replacedPart.catenaXId | A fully anonymous Catena-X identifier that is registered in C-X Digital twin registry. This property is being used for vehicles, parts, workshops, etc. Optional, not always available. | urn:uuid:b11c7587af-cax_-qax1-part-f810a2cadc | +| replacedPart.serialNumber | OEM serial part number of the part - only available for serial parts | 1 | +| replacedPart.supplierId | OEM-specific ID of the supplier that manufactured the part that was put out - available if known | ZF2064600502 | +| sparePart.name | OEM specific name of the part | zehn | +| sparePart.number | OEM specific part number | 8D34393E7FFE | +| sparePart.catenaXId | A fully anonymous Catena-X identifier that is registered in C-X Digital twin registry. This property is being used for vehicles, parts, workshops, etc. Optional, not always available. | urn:uuid:b11c7587af-cax_-qax1-part-f810a2cad6 | +| sparePart.serialNumber | OEM serial part number of the part - only available for serial parts | 1000 | +| sparePart.supplierId | OEM-specific ID of the supplier that manufactured the part that was put in - available if known | ZF2064600502 | + +Github Link to semantic data model: [CX-00039 Fleet Claim Data](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.fleet.claim_data) + +**Supplier Data**: Data structured in the following semantic models are to be delivered by Supplier (Tier n). + +### Manufactured Parts Quality Information + +A selection of manufacturing-related parameters that help to solve a quality issue. + +**Remark**: The table contains an overview about the data content as explanation. For the implementation of the valid entity naming and semantic structure please reference to the model definition in Github. + +| Entity name | Entity description | Example | +|-----------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------| +| catenaXId | The fully anonymous Catena-X ID of the manufactured part only available after digital twin registry is fully operational | urn:uuid:b11c7587af-cax_-qax1-part-f810a2cadc | +| qualityTaskId | A unique quality task identifier where this manufacturing information belongs to. Optional to ensure that there is also data exchange without having a quality task. | BPN-811_2022_000001 | +| manufacturerId | Identifier assigned by the manufacturer for this specific part. In case of common parts: This identifier is not unique. | 123-0.740-3434-A | +| manufacturerSerialPartNumber | Serial part number given by the manufacturer. Not available for common parts. | 436347347.4343884384.FTG.000001 | +| nameAtManufacturer | Name of the manufactured part as given by the manufacturer | zehn_Supplier | +| date | Production date of the component | 2018-10-01T14:24:00 | +| country | Country code where the part was manufactured | DEU | +| plantId | Manufacturer-specific identifier of theproduction plant of this part | 00001 | +| plantDescription | Manufacturer-specific description of the production plant of this part | Supplier_Plant_1 | +| batchId | Manufacturer-specific batch identifier: In which batch was this part manufactured | 20181001_14 | +| productionLine | On which production line was this part produced | Line_1 | +| hasBeenReworked | Indicator whether this part was reworkedduring manufacturing and before delivery | FALSE | +| numberOfConductedEOLTests | Number how often this part went through the EOL test | 1 | +| addtionalInformation.key | Key identifier for this additional information | SteelQuality | +| addtionalInformation.value | Value for this additional information | StainlessSteel | + +Github Link to semantic data model: [CX-00041 Manufactured Parts Quality Information](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.manufactured_parts_quality_information) + +### Parts Analyses + +Analyses results of replaced and potentially faulty parts, that are linked to this Quality Task. + +**Remark**: The table contains an overview about the data content as explanation. For the implementation of the valid entity naming and semantic structure please reference to the model definition in Github. + +| Entity name | Entity description | Example | +|-------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------| +| anonymizedVin | OEM-specific hashed VIN; link to car data over pseudonymized/hashed VIN or Catena-X unique digital twin identifier | 3747429FGH382923974682 | +| manufacturerAnalysisID | Component manufacturer specific identifier of the analysis process | TIER-647439403403 | +| customerAnalysisID | Customer specific identifier of the analysis process | OE-43673473438 | +| catenaXIdentifier | The fully anonymous Catena-X ID of the analyzed part - only available after digital twin registry is fully operational | urn:uuid:580d3adf-1981-44a0-a214-13d6ceed9000 | +| qualityTaskId | A unique quality task identifier to which this list of parts analysis belongs to | BPN-811_2022_000001 | +| manufacturerPartIdentifier | Part Id of the analyzed part as assigned by the manufacturer of the part. The Part Id identifies the part type and is not unique for each serial part. | 123-0.740-3434-A | +| manufacturerSerialPartNumber | Serial Part Number of the analyzed part as assigned by the manufacturer of the part. The serial part number is unique for each serial part. Not available for all kinds of parts | 436347347.4343884384.FTG.000001 | +| customerPartIdentifier | Part ID as assigned by Original Equipment Manufacturer (OEM) | 8D34393E7FFE | +| nameAtManufacturer | Name of the analyzed part as assigned by the manufacturer of the part | zehn_Supplier | +| status | Status of this part analysis | new | +| isDefect | True: Analysis turned out that analyzed part is defect according to part's specification. | false | +| resultsDescription | Detailed description of part analysis results | Corrosion on component part_A | + +Github Link to semantic data model: [CX-00040 Parts Analyses](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.parts_analyses) + +## Logic & Schema + +### Business Logic + +![quality kit business logic diagram](@site/static/img/quality-kit_business-logic-min.png) + +The prerequisite for faster faster problem solving is the earliest possible detection of a problem (early warning) and the fastest possible understanding of the error chain and cause (root cause analysis). Early Warning in general has to be realized at all relevant points along the value chain. + +**Early Warning** in the **Field**, an early warning system for issues in a vehcile fleet, enables the earliest possible detection of quality problems in products in vehicles after delivery. Vehicle data from the OEM is used for the analysis, in particular fault codes that are stored in ECUs and read out during a workshop visit or frequently "over the air". Increases in product-specific fault codes across the vehicle population provide a reliable indicator of quality problems much earlier than through parts replacement and analysis. + +**Early Warning** in the **Production** focuses on early detection in the production of products. Various practical scenarios have been developed and the corresponding technical requirements specified. If, for example, a supplier discovers that a delivered product has a quality defect, the customer can be informed by means of notification. The functionality of traceability (Catena-X Use Case Traceability) in the supply chain makes it possible to trace in which vehicle or follow-up product the affected components are installed. Remedial measures can thus be applied specifically to a limited quantity. + +If a problem is detected by early warning in the field or in production, a data-based **Root Cause Analysis** is started. The aim is to derive hypotheses regarding the cause and effect relationship from the shared database of the customer and supplier and to verify them together. With the Catena-X network functions, this transparency can be achieved much faster. If the root cause is known more quickly, effective counter measures can be defined and implemented much faster. + +### Architecture Overview + +![independant architecture r3_2 chart](@site/static/img/quality-kit_general_app-independant_architecture-R3_2-min.jpg) + +The tier-1 receives data on vehicle master data, existing claims and DTCs. Once the data is received, the Tier-1 supplier is analyzing the data in order to detect patterns based on which DTCs and claims can be explained. The data is shared and consumed as assets via the companies' EDC while the authorization is managed via the the shared services of the consortia. + +#### Quality Components + +| Subsystem | Description | +|-------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Data Provisioning | This component provides a company's data to the Catena-X network by transforming it into the Catena-X format and publishing it. In Catena-X, data must be provided to the network based on existing standards from the other Kits. One example that can be used is the Connector Kit that builds a component based on the IDS protocol, e.g. the Connector of the Eclipse Dataspace Components (EDC). The data format used for Quality data is based on the aspects (Sub-)models published in the Semantic Hub. | +| Internal Systems | Existing internal systems of a Catena-X partner which provide data to Quality components. - For Data Provisioning: The data provided to Catena-X via the EDC should be fetched from a partner's internal system. e. g. quality claims, defect code collection system | +| Quality App | Enables traceability functionalities like quality alerts or notifications. When a Traceability App fetches data for digital twins (submodels), there are two options: - Directly access the partner's EDC (and the Digital Twin Registry) to connect to other partner's EDC and retrieve the data from ther - Use a local IRS service to get the data and let the IRS handle the EDC and Digital Twin Registry communication. | + +#### Catena-X Core Services + +| Subsystem | Description | +|------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Eclipse Dataspace Components (EDC) | The Connector of the Eclipse Dataspace Components provides a framework for sovereign, inter-organizational data exchange. It will implement the International Data Spaces standard (IDS) as well as relevant protocols associated with GAIA-X. The connector is designed in an extensible way in order to support alternative protocols and integrate in various ecosystems. [Repository of the Catena-X specific EDC](https://github.com/eclipse-tractusx/tractusx-edc). | +| SSI → MIW | The Self-Sovereign Identity is also a life long identity,( when credentials are created and the MIW is not reachable) , the other verifiers should be able to check and validate exisiting valid credentials from distributed databases, directory or DLT. The MIW (also called "Custodian") provides a private/public key pair and related DID for a legal entity along with the onboarding. | +| Discovery Service | The EDC / dataspace discovery interface is a CX network public available endpoint which can get used to retrieve EDC endpoints and the related BPNs, as well as search for endpoints via the BPN. | + +## Business Process + +To realize the **Business Logic** described in the Quality Kit + +![quality kit business process diagram](@site/static/img/quality-kit_business-process-min.png) + +all steps of the **Business Process** (described in the [Development View](https://confluence.catena-x.net/display/BDPQ/WORK+IN+PROGRESS+-+Quality+KIT+-+Development+View)), like data provisioning and consuming by the involved partner companies, are realized in compliance with the [Catena-X Data Governance Framework](https://catena-x.net/en/catena-x-introduce-implement/governance-framework-for-data-space-operations). Under this link you can find the latest version of the framework regulations as download. The documents are seperated in the following levels: + +![quality kit data offering diagram](@site/static/img/quality-kit_data-offering-min.png) + + +**Data Space Level**: 10 Golden Rules of Catena-X + +**Use Case Level**: Quality Management specific policy as MS Word download (not released yet): 20230710_Catena-X_UseCasePolicy_Quality_3.0_EN.docx + +**Data Offering** and **Usage Level** are defined by bi-lateral aligned policies and contracts between the cooperating partner companies. Content is currently in definition. + +## Standards + +Our relevant standards can be downloaded from the official [Catena-X Standard Library:](https://catena-x.net/de/standard-library) + +- [CX - 0036 Semantic Model Quality Task](https://catena-x.net/fileadmin/user_upload/Standard-Bibliothek/Update_PDF_Maerz/PLM_Quality_Use_Case_Live_Quality_Loops/CX_-_0036_Semantic_Model_Quality_Task_v_1.0.1.pdf) + +- [CX - 0037 Semantic Model Vehicle Product Description (to be updated when published)](https://catena-x.net/fileadmin/user_upload/Standard-Bibliothek/Update_PDF_Maerz/PLM_Quality_Use_Case_Live_Quality_Loops/CX_-_0037_Semantic_Model_Vehicle_Product_Description_v_1.0.1.pdf) + +- [CX - 0038 Semantic Model Fleet Diagnostic Data](https://catena-x.net/fileadmin/user_upload/Standard-Bibliothek/Update_PDF_Maerz/PLM_Quality_Use_Case_Live_Quality_Loops/CX_-_0038_Semantic_Model_Fleet_Diagnostic_Data__v_1.0.1.pdf) + +- [CX - 0039 Semantic Model Fleet Claim Data](https://catena-x.net/fileadmin/user_upload/Standard-Bibliothek/Update_PDF_Maerz/PLM_Quality_Use_Case_Live_Quality_Loops/CX_-_0039_Semantic_Model_Fleet_Claim_Data__v_1.0.1.pdf) + +- [CX - 0040 Semantic Model Parts Analyses](https://catena-x.net/fileadmin/user_upload/Standard-Bibliothek/Update_PDF_Maerz/PLM_Quality_Use_Case_Live_Quality_Loops/CX_-_0040_Semantic_Model_Parts_Analyses_v_1.0.1.pdf) + +- [CX - 0041 Semantic Model Manufactured Parts Quality Information](https://catena-x.net/fileadmin/user_upload/Standard-Bibliothek/Update_PDF_Maerz/PLM_Quality_Use_Case_Live_Quality_Loops/CX_-_0041_Semantic_Model_Manufactured_Parts_Quality_Information_v_1.0.1.pdf) + +- [CX - 0071 - Triangle Quality Early Warning Field and Root Cause (to be updated when published)](https://catena-x.net/fileadmin/user_upload/Standard-Bibliothek/Archiv/Update_Juli_23_R_3.2/CX-0071-TriangleQualityEarlyWarningFieldandRootCause-v1.0.0.pdf) + + diff --git a/docs-kits_versioned_docs/version-23.12/kits/Quality-Kit/page_changelog.md b/docs-kits_versioned_docs/version-23.12/kits/Quality-Kit/page_changelog.md new file mode 100644 index 00000000000..d620b715b35 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Quality-Kit/page_changelog.md @@ -0,0 +1,24 @@ +--- +id: Quality Kit Changelog +title: Changelog +description: 'Quality Kit' +sidebar_position: 1 +--- + +![Quality kit banner](@site/static/img/QualityKitIcon.png) + +### Quality KIT + +## [0.1.0] - 2023-08-18 + +### Added + +- Initial version of the Kit including adoption, operation and development view + +### Changed + +- ./. + +### Removed + +- ./. diff --git a/docs-kits_versioned_docs/version-23.12/kits/Quality-Kit/page_software-operation-view.md b/docs-kits_versioned_docs/version-23.12/kits/Quality-Kit/page_software-operation-view.md new file mode 100644 index 00000000000..1e04e1f40a3 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Quality-Kit/page_software-operation-view.md @@ -0,0 +1,16 @@ +--- +id: Operation View Quality Kit +title: Operation View +description: 'Quality Kit' +sidebar_position: 3 +--- + +![Quality kit banner](@site/static/img/QualityKitIcon.png) + +### Quality KIT + +Based on the information provided in the Quality KIT, it is possible to share quality related data between OEM and Tier n, use own and provide custom Quality Apps. The data sharing process, described in the [Development View](/docs-kits/next/kits/Quality-Kit/Software%20Development%20View/Specification%20Quality%20Kit) consists only standard Catena-X core components. Additional Quality KIT specific code or API are not provided and implementation therefor not necessary. + +An overview about the interaction of the different modules is provided in the following video: + + diff --git a/docs-kits_versioned_docs/version-23.12/kits/Resiliency/DCM_Kit.mdx b/docs-kits_versioned_docs/version-23.12/kits/Resiliency/DCM_Kit.mdx new file mode 100644 index 00000000000..4ff758a1809 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Resiliency/DCM_Kit.mdx @@ -0,0 +1,70 @@ +--- +id: DCM Kit +title: DCM Kit +description: 'Demand and Capacity Management Kit' +sidebar_position: 2 +--- + +import LicenceV3 from '@site/static/icons/Icon_Licence_V3.svg' +import EasyToUseV3 from '@site/static/icons/Icon_Easy_to_use_V3.svg' +import OpenSourceV3 from '@site/static/icons/Icon_Open_Source_V3.svg' +import AdoptionV2 from '@site/static/icons/Icon_Adoption_V2.svg' +import bannerImg from '@site/static/img/DCMKitLogoIcon-min.png' + + + +The Catena-X-Standards for Demand- and Capacity-Management enable participants of the automotive supply chain to become more resilient and to increase the degree of collaboration aimed at avoiding or solving production bottlenecks as well as surplus situations in a tactical horizon of 1-2 years. + +Thereby the standards empower participants to share data in a secure and sovereign way while ensuring the interoperability of the different applications involved in the process. + +## Status Quo + +**Today's challenge for automotive companies** +Resilience has become imperative within Supply Chain Management, especially over the past years. With the growing complexity of supply chains and a rising number of global and local crises, small and medium enterprises (SMEs) as well as large enterprises (LEs) are facing an increased risk of serious disruptions in their supply chains, bullwhip effects and in the worst case even temporary production shutdowns with a high effort and costs of replanning. + +Inside the volatile and highly complex surroundings of the automotive industry nowadays, mostly tailor-made, proprietary and often fully manual IT solutions support the demand and capacity management processes along the value chain. On the one side there is no common understanding of these processes among the participants. On the other side, different data formats as well as application programming interfaces are used, which is increasing the complexity in the data exchange and which is leading to transfer problems, inconsistencies, or even loss of data. + +## Why DCM KIT? + +The purpose and focus of Demand and Capacity Management (DCM) KIT is twofold: +- Define a common understanding of the DCM process thus paving the way for more proactive and efficient collaboration. +- Establish process and application interoperability with the help of common semantics and unified interfaces for data exchange while ensuring the data sovereignty of data providers. + +Implementing the DCM standards will add the following core capabilities to business applications: +- Provisioning and consumption of material demands data in a sovereign manner. +- Provisioning and consumption of capacity data in a sovereign manner. +- Discovery of bottlenecks and surplus capacity situations by employing a unified calculation logic. + +(Coming soon) The DCM standard comprises three main elements: +- **Core Business logic** – to focus on a **common understanding** of the **DCM processes** among the participants. +- **APIs** – to make sure that data are transmitted and consumed properly as well as are identically interpreted across companies. +- **Data model** – to align the structure of the shared data and enable the adoption of the core business logic without misinterpretation. + + +## POWER of STANDARD + +Standards create trust. Customer and Supplier can form new partnerships confidently. Knowing that integration in the network will be dramatically simplified. Standardization can help reduce costs by eliminating redundancies and streamlining processes. By adopting a common set of practices and technologies, businesses can avoid the need to develop their own proprietary systems, which can be expensive and time-consuming. + + + +## DATA SOVEREIGNTY in FOCUS + +DCM KIT keeps up with Catena X commitment to data sovereignty. This KIT has the goal to always comply with the data sovereignty principle implemented by the Eclipse Dataspace Connector. That enables all participants in the supply chain to always stay in full control of their own data. + +This is how sharing data is fun. + + + +## INTEROPERABILITY at its BEST + +Application and Service Provider can reduce investments to integrate DCM data models/API specification from DCM KIT. + +The Kit enables the offering of value-add services and innovation based on process description of the core business logic and how a collaborative approach is a win-win-situation for customer and supplier. + + + +## COLLABORATION is KEY + +The DCM KIT enables better and faster issue resolution. We believe that collaboration is the key to creating and maintaining strong partnerships between customers and suppliers and, at the same time, enhancing problem solving to reach a more balanced and efficient supply and demand management. + +Of course, by realizing efficiency through improved collaboration all involved partners will gain competitive advantage over those that do not collaborate. diff --git a/docs-kits_versioned_docs/version-23.12/kits/Resiliency/MP_Kit.md b/docs-kits_versioned_docs/version-23.12/kits/Resiliency/MP_Kit.md new file mode 100644 index 00000000000..e0d527185b6 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Resiliency/MP_Kit.md @@ -0,0 +1,35 @@ +--- +id: mp kit +title: MP Kit +sidebar_position: 6 +--- + + +## Increase production flexibility and leverage existing business potential for lot size one + +### Automate the orchestration of production resources and planning processes + + +The Modular Production (MP) Kit defines services, interfaces and data models based on industry standards with the goal to increase flexibility and reliability of industrial production. Furthermore services that provide information about production status and planning that is required by other use cases will be provided. + +Modular Production has the goal to support individual production (batch size 1) at the price of series production. In particular, this is to be achieved by automating the orchestration of production resources and planning of production processes as much as possible, thus significantly reducing effort and planning times. + +See [Status Quo](#status-quo) below for more details on Modular Production. + +The Modular Production Kit is continuously under development and future extensions and improvements will help you to adopt or extend functionality even faster. + + +#### Connect and access to shopfloor information for further value creation + +Due dates, machines used etc. for specific individual produced product are made available through standardized service to the Catena-X network honoring access and data sovereignty rules. + + +### Status Quo + +Higher-level, external influencing factors from the supply chain, such as delays in the logistics chain for supplier parts or short-term order changes, may invalidate a production plan that has already been drawn up. Today, such short-term changes in the general conditions of the production process can often only be taken into consideration indirectly and made through manual corrections. + +### Benefits for OEM, SME and Solution Provider + +A growth in efficiency in the sense of the OEE is achieved in that production can be reconfigured in the event of faults to continue operating as well as possible. The increased flexibility creates the space for new business models, such as the interposition of highly prioritized, lucrative orders. + +Further benefits and value can be generated through additional services or apps that connect to the shopfloor information service via the Catena-X platform. diff --git a/docs-kits_versioned_docs/version-23.12/kits/Resiliency/MaaS.md b/docs-kits_versioned_docs/version-23.12/kits/Resiliency/MaaS.md new file mode 100644 index 00000000000..b0f46b5a791 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Resiliency/MaaS.md @@ -0,0 +1,44 @@ +--- +id: maas +title: MaaS Kit +sidebar_position: 3 +--- + + +## Enable on-demand manufacturing in an interoperable, federated network of manufacturing networks by linking demand with capacities and capabilities + + +The Manufacturing-as-a-Service (MaaS) Kit defines the mechanisms and services needed for an interoperable, federated network of networks, where manufacturing demand meets manufacturing capacities and capabilities. + +See [Status Quo](#status-quo) below for more details on Manufacturing-as-a-Service. + +The MaaS Kit provides a comprehensive reference architecture with standardized interfaces and data models, including first implemented services to show the operating network of networks with a single-entry point into the world of on-demand manufacturing (ODM) independent of domain. The main focus is on facilitating the intermediation of manufacturing supply as a service and manufacturing demand. In addition, IT services enable the connectivity and process automation for being part of this digital marketplace. + +The MAAS Kit is continuously under development and future extensions and improvements will help you to adopt or extend functionality even faster. + + +### Minimize risk of operations + +The available reference architecture supports operators of networks and services to minimize risk while operating Manufacturing-as-a-Service applications. + +### Reduce development time + +The time to develop integrations of additional solutions or stakeholders (e.g. consumers or suppliers of on-demand manufacturing) to existing networks are drastically cut through well-defined, standardised interfaces and data models. + +### Low threshold entry to marketplace + +Existing examples of implemented services enable quick entry for consumers and suppliers of on-demand manufacturing to the marketplace that facilitates the intermediation of manufacturing supply as a service and manufacturing demand. + +### Cut leadtime for manufacturing transactions + +IT services to enable connectivity and process automation to further streamline the interaction between consumer and supplier of on-demand manufacturing. + + +## Status Quo + +Manufacturing-as-a-Service is the practice of connecting consumers and providers of on-demand manufacturing capabilities in a Catena-X context both directly and through integration of other on-demand platforms. The overall aim is to increase resilience against fluctuating demand through one single-entry point for different manufacturing domains. + +By requesting components over a graphical user interface, the MaaS portal, component buyers primarily have the value of finding alternative suppliers at short notice, that are definitely able to manufacture the required components. + +Manufacturers and ODM platforms primarily gain value in the MaaS portal by offering manufacturing capabilities as suppliers. In this way, suppliers can compensate for fluctuations in demand from their conventional customers by being able to get orders from an alternative sales channel without having to invest great effort in sales activities. +Both sides also benefit from the security and data sovereignty advantages of the Catena-X environment. diff --git a/docs-kits_versioned_docs/version-23.12/kits/Resiliency/PURIS_Kit.md b/docs-kits_versioned_docs/version-23.12/kits/Resiliency/PURIS_Kit.md new file mode 100644 index 00000000000..456f45189a2 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Resiliency/PURIS_Kit.md @@ -0,0 +1,46 @@ +--- +id: PURIS +title: PURIS Kit +sidebar_position: 5 +--- + + +## Mitigate the bullwhip effect in your supply chain by identifying potential shortages earlier + +### Verify the demands and capacities of actual production plan from today up to a few weeks + + +The Predictive Unit Real-Time Information System (PURIS) KIT provides the capabilities to exchange the production related information within a given relationship between two business partners such as the already available stock of the supplier, the updating stock of the customer, the customer's demand and the supplier's fulfillment status of an order. The aim is to help mitigate potential and actual shortage scenarios. + +PURIS is the second of two components of the Demand and Capacity Management as approached by the Resiliency Kit: + +1. A planning component forecasting its demands and capacities for the next months up to multiple years. +2. An operationalization component verifying the demands and capacities of its actual production plan from today up to multiple weeks. + +See [Status Quo](#status-quo) below for more details on Demand and Capacity Management. + +The PURIS Kit is continuously under development and future extensions and improvements will help you to adopt or extend functionality even faster. + + +#### Connect once to interact with all your partners + +By leveraging the standardized APIs you avoid point-to-point integrations. + +#### Increase flexibility with easy access and exchange of up-to-date information + +Low effort to exchange the latest updated information with your partners through formalized approach. + +#### Leverage Catena-X built-in data sovereignty + +Decide the access and usage conditions for the exchanged data in a compliant way + +### Status Quo + +Within the Business Domain Resiliency, the Demand and Capacity Management (DCM) represents the planning and the PURIS represents the operationalization component. Considering a shorter time period in PURIS based on the production plan, results in more reliable information. + +Generally, the Demand and Capacity Management needs a close cooperation between a company and its partners with the supply chain. + +Within the value chain, each partner needs to plan his own production and relies on his customers' demand forecasts. The bullwhip effect describes the rising amplified deviation between orders to suppliers and sales to buyers along the value chain. The fluctuation rises from tier to tier. Using the latest production related information, you can mitigate the bullwhip effect for you and your partners within the value chain. + +- As a customer, you can verify the production related information of your partner so that you can identify potential shortages earlier with less effort and mitigate or resolve them spending less resources. +- As a supplier, you can increase your production efficiency, e.g. by optimizing your batch size based on your customers' latest demands. diff --git a/docs-kits_versioned_docs/version-23.12/kits/Resiliency/resiliency.mdx b/docs-kits_versioned_docs/version-23.12/kits/Resiliency/resiliency.mdx new file mode 100644 index 00000000000..b4da1e3c01a --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Resiliency/resiliency.mdx @@ -0,0 +1,42 @@ +--- +id: resiliency +title: Resiliency Domain +description: 'Business Domain Resiliency' +sidebar_position: 1 +--- +import KitsGalleryMDX from '@site/src/components/KitsGalleryMDX' +import {resiliencyItems} from '@site/utils/resiliencyItems.js' + +## Business Domain Resiliency + +### What's in? + +The Business Domain Resiliency contains five use cases of Catena-X: + +- Demand and Capacity Management (DCM) +- Predictive Unit Real-Time Information Service (PURIS) +- Manufacturing-as-a-Service (MaaS) +- Online Control and Simulation (OSim) +- Modular Production (MP) + +For each of these use cases a specific kit is prepared which are available here in the resiliency kit area. + +The kits in the resiliency kit area enables you, especially as a provider for software services, applications and solutions, to realize offerings in a Catena-X compliant way. The kits includes, among others, information about + +- vision & mission +- semantic models as prerequisite for standardized and interoperable data exchange +- defintion of software APIs as well as +- open source code + +of each use case. + +The Resiliency Kit area is continuously under development and future extensions and improvements will help you to adopt or extend functionality even faster. + +The strengthen of resiliency of the supply chain and related shopfloor processes is a main focus in our business domain. We look at the supply chain from the Tier-n supplier to the automotive OEM and of course backwards too. Our applications are based on a cooperative concept. This means that the applications executed on each tier level are based on information obtained from one tier level up or one level down. This exchanged information is (and will be in next month step by step) standardized for each of our use cases. By executing the application (or a Catena-X compatible application for the specific use case from a different software provider - maybe realized from your company) on each tier level the supply chain over spanning task can be solved. Some of our use cases have an effect on the shop floor. For example, changed customer demands can lead to adjustments in manufacturing or vice versa changed production capacities, captured by information and operation technology on the shopfloor, can have impact to the supply chain. The linked usage of our use case application will offer an extended business value for all partners in the supply chain. + +![Resiliency-Image](@site/static/img/Resiliency-Domain-Image.jpg) + +
      +
      + + diff --git a/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/Software Development View/Notification API/get-quality-notification.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/Software Development View/Notification API/get-quality-notification.api.mdx new file mode 100644 index 00000000000..fe4d5c4550c --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/Software Development View/Notification API/get-quality-notification.api.mdx @@ -0,0 +1,54 @@ +--- +id: get-quality-notification +title: "getQualityNotification" +description: "Resolves a quality notification" +sidebar_label: "getQualityNotification" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Quality notification"],"description":"Resolves a quality notification","operationId":"getQualityNotification","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["notificationId","senderBPN","senderAddress","recipientBPN"],"properties":{"notificationId":{"type":"string","format":"uuid","example":"a7954026-3aff-4b6c-92bf-04671ef2fa46","description":"A UUIDv4 to uniquely identify a quality notification."},"senderBPN":{"type":"string","example":"BPNL00000003BW3S","description":"The business partner number (BPN) of the sender. Actually, this value is not used to resolve the quality notification. Rather, it is used to do a plausibility check."},"senderAddress":{"type":"string","format":"uri","example":"https://edc.company-xyz.io/BPNL00000003BW3S","description":"The Eclipse Dataspace Connector (EDC) URL of the sender. Actually, this value is not used to resolve the quality notification. Rather, it is used to do a plausibility check."},"recipientBPN":{"type":"string","example":"BPNL00000003BV4H","description":"The business partner number (BPN) of the receiver. Actually, this value is not used to resolve the quality notification. Rather, it is used to do a plausibility check."},"messageId":{"type":"string","format":"uuid","example":"c2801472-5f87-41a7-9a25-b0939c4e0dff","description":"A UUIDv4 to uniquely identify an individual quality notification message. If this parameter is provided, the message for this messageId is resolved. If this parameter is not provided, then the last available message is resolved."}}}}}},"responses":{"200":{"description":"Quality notification was resolved successfully","content":{"application/json":{"schema":{"type":"object","required":["notificationId","senderBPN","senderAddress","recipientBPN","severity","status","messageId"],"properties":{"notificationId":{"type":"string","format":"uuid","example":"a7954026-3aff-4b6c-92bf-04671ef2fa46","description":"A UUIDv4 to uniquely identify a quality notification."},"senderBPN":{"type":"string","example":"BPNL00000003BW3S","description":"The business partner number (BPN) of the sender."},"senderAddress":{"type":"string","format":"uri","example":"https://edc.company-xyz.io/BPNL00000003BW3S","description":"The Eclipse Dataspace Connector (EDC) URL of the sender."},"recipientBPN":{"type":"string","example":"BPNL00000003BV4H","description":"The business partner number (BPN) of the receiver."},"severity":{"type":"string","enum":["MINOR","MAJOR","CRITICAL","LIFE-THREATENING"],"example":"CRITICAL","description":"The severity of the quality notification describes its criticality."},"status":{"type":"string","enum":["CREATED","SENT","RECEIVED","ACKNOWLEDGED","ACCEPTED","DECLINED","CLOSED"],"example":"SENT","description":"The status of the quality notification."},"targetDate":{"type":"string","format":"date-time","example":"2022-07-28T14:41:13.214Z","description":"The date and time when a processing of the notification is expected by the sender."},"messageId":{"type":"string","format":"uuid","example":"c2801472-5f87-41a7-9a25-b0939c4e0dff","description":"A UUIDv4 to uniquely identify an individual quality notification message."}}}}}},"400":{"description":"Request body was malformed"},"401":{"description":"Not authorized"},"403":{"description":"Forbidden"},"404":{"description":"Could not resolve the quality notification, because a quality notification with that notificationId does not exist"},"405":{"description":"Method not allowed"}},"method":"post","path":"/qualitynotifications/resolve","servers":[{"url":"/"}],"jsonRequestBodyExample":{"notificationId":"a7954026-3aff-4b6c-92bf-04671ef2fa46","senderBPN":"BPNL00000003BW3S","senderAddress":"https://edc.company-xyz.io/BPNL00000003BW3S","recipientBPN":"BPNL00000003BV4H","messageId":"c2801472-5f87-41a7-9a25-b0939c4e0dff"},"info":{"title":"Notification API","description":"Notification API","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"1.1.0"},"postman":{"name":"get Quality Notification","description":{"content":"Resolves a quality notification","type":"text/plain"},"url":{"path":["qualitynotifications","resolve"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/Traceability Kit/Software Development View/Notification API/notification-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## getQualityNotification + + + +Resolves a quality notification + +
      Request Body
      + +Quality notification was resolved successfully + +
      Schema
      + +Request body was malformed + +
      + +Not authorized + +
      + +Forbidden + +
      + +Could not resolve the quality notification, because a quality notification with that notificationId does not exist + +
      + +Method not allowed + +
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/Software Development View/Notification API/notification-api.info.mdx b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/Software Development View/Notification API/notification-api.info.mdx new file mode 100644 index 00000000000..e5c5a6a50f4 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/Software Development View/Notification API/notification-api.info.mdx @@ -0,0 +1,25 @@ +--- +id: notification-api +title: "Notification API" +description: "Notification API" +sidebar_label: Introduction +sidebar_position: 0 +hide_title: true +custom_edit_url: null +--- + +import ApiLogo from "@theme/ApiLogo"; +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; +import Export from "@theme/ApiDemoPanel/Export"; + +Version: 1.1.0 + +# Notification API + + + +Notification API + + + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/Software Development View/Notification API/receive-quality-notification.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/Software Development View/Notification API/receive-quality-notification.api.mdx new file mode 100644 index 00000000000..f52262f0055 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/Software Development View/Notification API/receive-quality-notification.api.mdx @@ -0,0 +1,58 @@ +--- +id: receive-quality-notification +title: "receiveQualityNotification" +description: "Receives a new quality notification" +sidebar_label: "receiveQualityNotification" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Quality notification"],"description":"Receives a new quality notification","operationId":"receiveQualityNotification","requestBody":{"content":{"application/json":{"schema":{"required":["header","content"],"type":"object","properties":{"header":{"type":"object","required":["notificationId","senderBPN","senderAddress","recipientBPN","classification","severity","status","messageId"],"properties":{"notificationId":{"type":"string","format":"uuid","example":"a7954026-3aff-4b6c-92bf-04671ef2fa46","description":"A UUIDv4 to uniquely identify a quality notification."},"senderBPN":{"type":"string","example":"BPNL00000003BW3S","description":"The business partner number (BPN) of the sender."},"senderAddress":{"type":"string","format":"uri","example":"https://edc.company-xyz.io/BPNL00000003BW3S","description":"The Eclipse Dataspace Connector (EDC) URL of the sender."},"recipientBPN":{"type":"string","example":"BPNL00000003BV4H","description":"The business partner number (BPN) of the receiver."},"classification":{"type":"string","enum":["QM-Investigation","QM-Alert"],"example":"QM-Investigation","description":"The classification defines the type of quality notification."},"severity":{"type":"string","enum":["MINOR","MAJOR","CRITICAL","LIFE-THREATENING"],"example":"CRITICAL","description":"The severity of the quality notification describes its criticality."},"relatedNotificationId":{"type":"string","format":"uuid","example":"7895a39d-c4ef-4b75-b39f-cae8207a262f","description":"A UUIDv4 to uniquely identify a related quality notification."},"status":{"type":"string","enum":["CREATED","SENT","RECEIVED","ACKNOWLEDGED","ACCEPTED","DECLINED","CLOSED"],"example":"SENT","description":"The status of the quality notification."},"targetDate":{"type":"string","format":"date-time","example":"2022-07-28T14:41:13.214Z","description":"The date and time when a processing of the notification is expected by the sender."},"messageId":{"type":"string","format":"uuid","example":"c2801472-5f87-41a7-9a25-b0939c4e0dff","description":"A UUIDv4 to uniquely identify an individual quality notification message. In case of an initial sending of a notification the messageId has to be a newly generated UUIDv4."}}},"content":{"type":"object","required":["listOfAffectedItems"],"properties":{"information":{"type":"string","maxLength":1000,"example":"Gear boxes loose oil while driving."},"listOfAffectedItems":{"type":"array","items":{"type":"string"},"example":["urn:uuid:57e4e3c1-a6f0-46a0-90df-1fb17cbc157d","urn:uuid:e4da568b-8cf1-4f5f-a96a-cf26265b2c72"]}}}}}}}},"responses":{"201":{"description":"Quality notification was received successfully"},"400":{"description":"Request body was malformed"},"401":{"description":"Not authorized"},"403":{"description":"Forbidden"},"405":{"description":"Method not allowed"},"409":{"description":"Could not accept the send quality notification, because a quality notification with that notificationId already exists"},"422":{"description":"Could not accept the send quality notification even though it is syntactically correct. The quality notification is not accepted, because of semantic reasons (e.g., an affected item is not known by the receiver)."}},"method":"post","path":"/qualitynotifications/receive","servers":[{"url":"/"}],"jsonRequestBodyExample":{"header":{"notificationId":"a7954026-3aff-4b6c-92bf-04671ef2fa46","senderBPN":"BPNL00000003BW3S","senderAddress":"https://edc.company-xyz.io/BPNL00000003BW3S","recipientBPN":"BPNL00000003BV4H","classification":"QM-Investigation","severity":"CRITICAL","relatedNotificationId":"7895a39d-c4ef-4b75-b39f-cae8207a262f","status":"SENT","targetDate":"2022-07-28T14:41:13.214Z","messageId":"c2801472-5f87-41a7-9a25-b0939c4e0dff"},"content":{"information":"Gear boxes loose oil while driving.","listOfAffectedItems":["urn:uuid:57e4e3c1-a6f0-46a0-90df-1fb17cbc157d","urn:uuid:e4da568b-8cf1-4f5f-a96a-cf26265b2c72"]}},"info":{"title":"Notification API","description":"Notification API","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"1.1.0"},"postman":{"name":"receive Quality Notification","description":{"content":"Receives a new quality notification","type":"text/plain"},"url":{"path":["qualitynotifications","receive"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/Traceability Kit/Software Development View/Notification API/notification-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## receiveQualityNotification + + + +Receives a new quality notification + +
      Request Body
        header object required
        content object required
      + +Quality notification was received successfully + +
      + +Request body was malformed + +
      + +Not authorized + +
      + +Forbidden + +
      + +Method not allowed + +
      + +Could not accept the send quality notification, because a quality notification with that notificationId already exists + +
      + +Could not accept the send quality notification even though it is syntactically correct. The quality notification is not accepted, because of semantic reasons (e.g., an affected item is not known by the receiver). + +
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/Software Development View/Notification API/sidebar.js b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/Software Development View/Notification API/sidebar.js new file mode 100644 index 00000000000..27414ca3715 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/Software Development View/Notification API/sidebar.js @@ -0,0 +1 @@ +module.exports = [{"type":"doc","id":"kits/Traceability Kit/Software Development View/Notification API/notification-api"},{"type":"category","label":"Quality notification","link":{"type":"generated-index","title":"Quality notification","slug":"/category/kits/Traceability Kit/Software Development View/Notification API/quality-notification"},"items":[{"type":"doc","id":"kits/Traceability Kit/Software Development View/Notification API/receive-quality-notification","label":"receiveQualityNotification","className":"api-method post"},{"type":"doc","id":"kits/Traceability Kit/Software Development View/Notification API/update-quality-notification","label":"updateQualityNotification","className":"api-method post"},{"type":"doc","id":"kits/Traceability Kit/Software Development View/Notification API/get-quality-notification","label":"getQualityNotification","className":"api-method post"}]}]; \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/Software Development View/Notification API/update-quality-notification.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/Software Development View/Notification API/update-quality-notification.api.mdx new file mode 100644 index 00000000000..6c1a5d53fe7 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/Software Development View/Notification API/update-quality-notification.api.mdx @@ -0,0 +1,58 @@ +--- +id: update-quality-notification +title: "updateQualityNotification" +description: "Updates a quality notification" +sidebar_label: "updateQualityNotification" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Quality notification"],"description":"Updates a quality notification","operationId":"updateQualityNotification","requestBody":{"content":{"application/json":{"schema":{"required":["header"],"type":"object","properties":{"header":{"type":"object","required":["notificationId","senderBPN","senderAddress","recipientBPN","status","messageId"],"properties":{"notificationId":{"type":"string","format":"uuid","example":"a7954026-3aff-4b6c-92bf-04671ef2fa46","description":"A UUIDv4 to uniquely identify a quality notification. Actually, this value cannot be updated. Rather, it is used to do a plausibility check."},"senderBPN":{"type":"string","example":"BPNL00000003BW3S","description":"The business partner number (BPN) of the sender. Actually, this value cannot be updated. Rather, it is used to do a plausibility check."},"senderAddress":{"type":"string","format":"uri","example":"https://edc.company-xyz.io/BPNL00000003BW3S","description":"The Eclipse Dataspace Connector (EDC) URL of the sender. Actually, this value cannot be updated. Rather, it is used to do a plausibility check."},"recipientBPN":{"type":"string","example":"BPNL00000003BV4H","description":"The business partner number (BPN) of the receiver. Actually, this value cannot be updated. Rather, it is used to do a plausibility check."},"severity":{"type":"string","enum":["MINOR","MAJOR","CRITICAL","LIFE-THREATENING"],"example":"CRITICAL","description":"The severity of the quality notification describes its criticality."},"status":{"type":"string","enum":["CREATED","SENT","RECEIVED","ACKNOWLEDGED","ACCEPTED","DECLINED","CLOSED"],"example":"SENT","description":"The status of the quality notification."},"targetDate":{"type":"string","format":"date-time","example":"2022-07-28T14:41:13.214Z","description":"The date and time when a processing of the notification is expected by the sender."},"messageId":{"type":"string","format":"uuid","example":"c2801472-5f87-41a7-9a25-b0939c4e0dff","description":"A UUIDv4 to uniquely identify an individual quality notification message. In case of an update of a notification the messageId must be a newly generated UUIDv4. It must not be an existing messageId."}}},"content":{"type":"object","properties":{"information":{"type":"string","maxLength":1000,"example":"Gear boxes loose oil while driving."}}}}}}}},"responses":{"200":{"description":"Quality notification was updated successfully"},"400":{"description":"Request body was malformed"},"401":{"description":"Not authorized"},"403":{"description":"Forbidden"},"404":{"description":"Could not update the quality notification, because a quality notification with that notificationId does not exist"},"405":{"description":"Method not allowed"},"422":{"description":"Could not update the quality notification even though the request is syntactically correct. The quality notification update is not accepted, because of semantic reasons (e.g., status cannot be changed)."}},"method":"post","path":"/qualitynotifications/update","servers":[{"url":"/"}],"jsonRequestBodyExample":{"header":{"notificationId":"a7954026-3aff-4b6c-92bf-04671ef2fa46","senderBPN":"BPNL00000003BW3S","senderAddress":"https://edc.company-xyz.io/BPNL00000003BW3S","recipientBPN":"BPNL00000003BV4H","severity":"CRITICAL","status":"SENT","targetDate":"2022-07-28T14:41:13.214Z","messageId":"c2801472-5f87-41a7-9a25-b0939c4e0dff"},"content":{"information":"Gear boxes loose oil while driving."}},"info":{"title":"Notification API","description":"Notification API","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"1.1.0"},"postman":{"name":"update Quality Notification","description":{"content":"Updates a quality notification","type":"text/plain"},"url":{"path":["qualitynotifications","update"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/Traceability Kit/Software Development View/Notification API/notification-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## updateQualityNotification + + + +Updates a quality notification + +
      Request Body
        header object required
        content object
      + +Quality notification was updated successfully + +
      + +Request body was malformed + +
      + +Not authorized + +
      + +Forbidden + +
      + +Could not update the quality notification, because a quality notification with that notificationId does not exist + +
      + +Method not allowed + +
      + +Could not update the quality notification even though the request is syntactically correct. The quality notification update is not accepted, because of semantic reasons (e.g., status cannot be changed). + +
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/Software Development View/Unique ID Push API/receive-unique-id-push-notification.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/Software Development View/Unique ID Push API/receive-unique-id-push-notification.api.mdx new file mode 100644 index 00000000000..3e94a998ff4 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/Software Development View/Unique ID Push API/receive-unique-id-push-notification.api.mdx @@ -0,0 +1,58 @@ +--- +id: receive-unique-id-push-notification +title: "receiveUniqueIdPushNotification" +description: "Receives a Traceability Unique Id push notification" +sidebar_label: "receiveUniqueIdPushNotification" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Unique ID Push Notification"],"description":"Receives a Traceability Unique Id push notification","operationId":"receiveUniqueIdPushNotification","requestBody":{"content":{"application/json":{"schema":{"required":["header","content"],"type":"object","properties":{"header":{"type":"object","required":["notificationId","senderBPN","senderAddress","recipientBPN","classification"],"properties":{"notificationId":{"type":"string","format":"uuid","example":"a7954026-3aff-4b6c-92bf-04671ef2fa46","description":"A UUIDv4 to uniquely identify a Unique ID push notification."},"senderBPN":{"type":"string","example":"BPNL00000003BW3S","description":"The business partner number (BPN) of the sender."},"senderAddress":{"type":"string","format":"uri","example":"https://edc.company-xyz.io/BPNL00000003BW3S","description":"The Eclipse Dataspace Connector (EDC) URL of the sender."},"recipientBPN":{"type":"string","example":"BPNL00000003BV4H","description":"The business partner number (BPN) of the receiver."},"classification":{"type":"string","enum":["Child-Relationship"],"example":"Child-Relationship","description":"The classification defines the type of the Unique ID push notification."}}},"content":{"type":"object","required":["listOfItems"],"properties":{"information":{"type":"string","maxLength":1000,"example":"Update of serialized parts and batches for which digital twins were created."},"listOfItems":{"type":"array","items":{"oneOf":[{"type":"object","required":["manufacturerId","manufacturerPartId","partInstanceId","catenaxId"],"properties":{"manufacturerId":{"type":"string","example":"BPNL00000003BW3S","description":"The Business Partner Number (BPNL) of the manufacturer of the serialized part, i.e., the companies main entry."},"manufacturerPartId":{"type":"string","example":"8840838-04","description":"The ID of the type/catalog part (of which the serialized part is an instance of) from the manufacturer."},"customerPartId":{"type":"string","example":"AAX178378","description":"The ID of the type/catalog part (of which the serialized part is an instance of) from the customer."},"partInstanceId":{"type":"string","example":"NO-009284492099792129568369","description":"The serial number of the serialized part from the manufacturer. We assume here that the customer does not have or create its own serial number for a part, but just used the manufacturer's serial number."},"catenaxId":{"type":"string","example":"urn:uuid:d32d3b55-d222-41e9-8d19-554af53124dd","description":"Catena-X ID for a serialized part."}}},{"type":"object","required":["manufacturerId","manufacturerPartId","batchId","catenaxId"],"properties":{"manufacturerId":{"type":"string","example":"BPNL00000003BW3S","description":"The Business Partner Number (BPNL) of the manufacturer of the batch, i.e., the companies main entry."},"manufacturerPartId":{"type":"string","example":"8840838-04","description":"The ID of the type/catalog part (of which the batch is an instance of) from the manufacturer."},"customerPartId":{"type":"string","example":"AAX178378","description":"The ID of the type/catalog part (of which the batch is an instance of) from the customer."},"batchId":{"type":"string","example":"NO-009284492099792129568369","description":"The serial number of the batch from the manufacturer. We assume here that the customer does not have or create its own serial number for a batch, but just used the manufacturer's serial number."},"catenaxId":{"type":"string","example":"urn:uuid:d32d3b55-d222-41e9-8d19-554af53124dd","description":"Catena-X ID for a batch."}}}]}}}}}}}}},"responses":{"201":{"description":"Notification was received successfully"},"400":{"description":"Request body was malformed"},"401":{"description":"Not authorized"},"403":{"description":"Forbidden"},"405":{"description":"Method not allowed"},"409":{"description":"Could not accept the send notification, because a notification with that notificationId already exists"},"422":{"description":"Could not accept the send notification even though it is syntactically correct. The notification is not accepted, because of semantic reasons (e.g., an item is not known by the receiver)."}},"method":"post","path":"/uniqueidpush/receive","servers":[{"url":"/"}],"jsonRequestBodyExample":{"header":{"notificationId":"a7954026-3aff-4b6c-92bf-04671ef2fa46","senderBPN":"BPNL00000003BW3S","senderAddress":"https://edc.company-xyz.io/BPNL00000003BW3S","recipientBPN":"BPNL00000003BV4H","classification":"Child-Relationship"},"content":{"information":"Update of serialized parts and batches for which digital twins were created.","listOfItems":[{"manufacturerId":"BPNL00000003BW3S","manufacturerPartId":"8840838-04","customerPartId":"AAX178378","partInstanceId":"NO-009284492099792129568369","catenaxId":"urn:uuid:d32d3b55-d222-41e9-8d19-554af53124dd"},{"manufacturerId":"BPNL00000003BW3S","manufacturerPartId":"8840838-04","customerPartId":"AAX178378","batchId":"NO-009284492099792129568369","catenaxId":"urn:uuid:d32d3b55-d222-41e9-8d19-554af53124dd"}]}},"info":{"title":"Unique ID Push Notification API","description":"API documentation for Traceability Unique ID Push Notifications","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"1.0.0"},"postman":{"name":"receive Unique Id Push Notification","description":{"content":"Receives a Traceability Unique Id push notification","type":"text/plain"},"url":{"path":["uniqueidpush","receive"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/Traceability Kit/Software Development View/Unique ID Push API/unique-id-push-notification-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## receiveUniqueIdPushNotification + + + +Receives a Traceability Unique Id push notification + +
      Request Body
        header object required
        content object required
        listOfItems object[] required
        oneOf
      + +Notification was received successfully + +
      + +Request body was malformed + +
      + +Not authorized + +
      + +Forbidden + +
      + +Method not allowed + +
      + +Could not accept the send notification, because a notification with that notificationId already exists + +
      + +Could not accept the send notification even though it is syntactically correct. The notification is not accepted, because of semantic reasons (e.g., an item is not known by the receiver). + +
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/Software Development View/Unique ID Push API/sidebar.js b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/Software Development View/Unique ID Push API/sidebar.js new file mode 100644 index 00000000000..e91341315cc --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/Software Development View/Unique ID Push API/sidebar.js @@ -0,0 +1 @@ +module.exports = [{"type":"doc","id":"kits/Traceability Kit/Software Development View/Unique ID Push API/unique-id-push-notification-api"},{"type":"category","label":"Unique ID Push Notification","link":{"type":"generated-index","title":"Unique ID Push Notification","slug":"/category/kits/Traceability Kit/Software Development View/Unique ID Push API/unique-id-push-notification"},"items":[{"type":"doc","id":"kits/Traceability Kit/Software Development View/Unique ID Push API/receive-unique-id-push-notification","label":"receiveUniqueIdPushNotification","className":"api-method post"}]}]; \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/Software Development View/Unique ID Push API/unique-id-push-notification-api.info.mdx b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/Software Development View/Unique ID Push API/unique-id-push-notification-api.info.mdx new file mode 100644 index 00000000000..2bca1c1059e --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/Software Development View/Unique ID Push API/unique-id-push-notification-api.info.mdx @@ -0,0 +1,25 @@ +--- +id: unique-id-push-notification-api +title: "Unique ID Push Notification API" +description: "API documentation for Traceability Unique ID Push Notifications" +sidebar_label: Introduction +sidebar_position: 0 +hide_title: true +custom_edit_url: null +--- + +import ApiLogo from "@theme/ApiLogo"; +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; +import Export from "@theme/ApiDemoPanel/Export"; + +Version: 1.0.0 + +# Unique ID Push Notification API + + + +API documentation for Traceability Unique ID Push Notifications + + + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/Software Development View/_category_.json b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/Software Development View/_category_.json new file mode 100644 index 00000000000..e5c5b7565a3 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/Software Development View/_category_.json @@ -0,0 +1,3 @@ +{ + "label": "Development View" +} diff --git a/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/Software Development View/page_app-provider_software-development-view.mdx b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/Software Development View/page_app-provider_software-development-view.mdx new file mode 100644 index 00000000000..c7c17bb4039 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/Software Development View/page_app-provider_software-development-view.mdx @@ -0,0 +1,38 @@ +--- +id: App Provider Development View Traceability Kit +title: App Provider +description: "Traceability Kit" +sidebar_position: 2 +--- + + + +import AspectModels from './part_aspect-models.mdx' +import Policies from './part_policies.mdx' +import Notice from '../part_notice.mdx' + +![Traceability kit banner](@site/static/img/doc-traceability_header-minified.png) + +The following page offers specific developer resources, including payloads and API endpoints for data consumer and app provider. It is important to read the business and architecture view first to understand everything. + + + + + + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/Software Development View/page_data-provider_software-development-view.mdx b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/Software Development View/page_data-provider_software-development-view.mdx new file mode 100644 index 00000000000..43417132d92 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/Software Development View/page_data-provider_software-development-view.mdx @@ -0,0 +1,46 @@ +--- +id: Data Provider Development View Traceability Kit +title: Data Provider +description: "Traceability Kit" +sidebar_position: 1 +--- + + + +import BillOfMaterials from './part_bill-of-materials.mdx' +import AspectModels from './part_aspect-models.mdx' +import DigitalTwin from './part_digital-twin.mdx' +import Policies from './part_policies.mdx' +import Notice from '../part_notice.mdx' + +![Traceability kit banner](@site/static/img/doc-traceability_header-minified.png) + +The following page offers specific developer resources, including payloads and API endpoints for data providers. It is important to read the business and architecture view first to understand everything. + + + + + + + + + + + + diff --git a/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/Software Development View/part_aspect-models.mdx b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/Software Development View/part_aspect-models.mdx new file mode 100644 index 00000000000..85fef047e5f --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/Software Development View/part_aspect-models.mdx @@ -0,0 +1,434 @@ +--- +sidebar_class_name: hidden +--- + + + +## Aspect Models + +### AsPlanned + +#### Short Introduction: What is a BoM AsPlanned? + +The BoM AsPlanned is the generic list of all possible catalogue parts & materials for a specific vehical project and the supply chain from OEM to raw material suppliers. The BoM is also called 120% which means that it includes alternative parts / materials (e.g. LED headlights and XENON headlights) and parts for certain markets. It will be set up way before Start of Production (SOP) and be updated if the contents are updated. It is used for Sourcing / Production Planning and always reflects the current state of parts / materials build into this specific vehicle project. + +The BoM AsPlanned also includes all versions of parts like changed parts. It has to enable parts/materials provided from multiple manufacturers or the same manufacturer at different production sites. Additionally it must be possible to map relations of the same part/material to different customers. + +The complexity of generic is much higher than BoM AsBuilt. It is used for technical topics, e.g., Supply Chain Act, DCM. + +#### Definition Status of the BoM AsPlanned + +Defined + +- Digital Twins + - Digtial Twin "PartType" + +- Traceability data aspect models + - Aspect model "PartAsPlanned" + - Aspect model "SingleLevelBoMAsPlanned" + - Aspect model "SingelLevelUsageAsPlanned" + - Aspect model "PartSiteInformationAsPlanned" + +#### 1. PartAsPlanned + +A Part as Planned represents an item in the Catena-X Bill of Material (BOM) in As-Planned lifecycle status in a specific version. + +Github Link to semantic data model: [https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.part_as_planned/1.0.1](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.part_as_planned/1.0.1) + +##### Example: Submodel `PartAsPlanned` for a Catalog Part + +```json +{ + "partTypeInformation": { + "classification": "component", + "manufacturerPartId": "123-0.740-3434-A", + "nameAtManufacturer": "Mirror left" + }, + "validityPeriod": { + "validFrom": "2021-06-14T06:55:29.935Z", + "validTo": "2022-06-14T06:55:29.935Z" + }, + "catenaXId": "urn:uuid:580d3adf-1981-44a0-a214-13d6ceed9379" +} +``` + +#### 2. SingelLevelBomAsPlanned + +The single-level Bill of Material represents one sub-level of an assembly and does not include any lower-level subassemblies. In as planned lifecycle state all variants are covered (\"120% BoM\"). If multiple versions of child parts exist that can be assembled into the same parent part, all versions of the child part are included in the BoM. If there are multiple suppliers for the same child part, each supplier has an entry for their child part in the BoM. + +Github Link to semantic data model: [https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.single_level_bom_as_planned/2.0.0](https://github.com/eclipse-tractusx/sldt-semantic-models/blob/main/io.catenax.single_level_bom_as_planned/2.0.0) + +##### Example: Submodel `SingleLevelBomAsPlanned` for a Catalog Part + +```json +{ + "catenaXId": "urn:uuid:055c1128-0375-47c8-98de-7cf802c3241d", + "childItems": [ + { + "catenaXId": "urn:uuid:5daB938E-Cafa-92B3-7ca1-9aD7885e9dC8" + "quantity": { + "quantityNumber": 2.5, + "measurementUnit": "unit:litre" + }, + "createdOn": "2022-02-03T14:48:54.709Z", + "businessPartner": "BPNL50096894aNXY", + "lastModifiedOn": "2022-02-03T14:48:54.709Z" + ] +} +``` + +#### 3. SingelLevelUsageAsPlanned + +The aspect provides the information in which parent part(s)/product(s) the given item is assembled in. This could be a 1:1 relationship in terms of a e.g. a brake component or 1:n for e.g. coatings. The given item as well as the parent item must refer to an object from as planned lifecycle phase. If multiple versions of parent parts exist that the child part can be assembled into, all versions of the parent part are included in the usage list. + +Github Link to semantic data model: [https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.single_level_usage_as_planned/1.1.0](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.single_level_usage_as_planned/1.1.0) + +##### Example: Submodel `SingleLevelUsageAsPlanned` for a Catalog Part + +```json +{ + "parentParts": [ + { + "parentCatenaXId": "urn:uuid:c8B01D5A-ce0B-6Dd4-5bA0-A3e3fcE9cA93", + "quantity": { + "quantityNumber": 2.5, + "measurementUnit": "unit:litre" + }, + "createdOn": "2022-02-03T14:48:54.709Z", + "lastModifiedOn": "2022-02-03T14:48:54.709Z" + } + ], + "catenaXId": "urn:uuid:055c1128-0375-47c8-98de-7cf802c3241d" +} +``` + +#### 4. PartSiteInformationAsPlanned + +The aspect provides site related information for a given as planned item (i.e. a part type or part instance that is uniquely identifiable within Catena-X via its Catena-X ID). A site is a delimited geographical area where a legal entity does business. In the \"as planned\" lifecycle context all potentially related sites are listed including all sites where e.g. production of this part (type) is planned. + +Github Link to semantic data model: [https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.part_site_information_as_planned/1.0.0](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.part_site_information_as_planned/1.0.0) + +##### Example: Submodel `PartSiteInformationAsPlanned` for a Component that is Produced at the Given Site + +```json +{ + "catenaXId": "urn:uuid:580d3adf-1981-44a0-a214-13d6ceed9379", + "sites": [ + { + "catenaXSiteId": "BPNS1234567890ZZ", + "functionValidUntil": "2025-11-21T11:14:30.825+01:00", + "function": "production", + "functionValidFrom": "2022-11-21T11:14:30.825+01:00" + } + ] +} +``` + +### AsBuilt + +#### Short Introduction: What is a BoM AsBuilt? + +A BoM AsBuilt resembles a single vehicle, which means that each vehicle built has its own individual BoM asBuilt. The BoM includes all part/components which either have a serial number, batch number, JIS number (sequence number) or a combination out of these. This means, that there is a direct and specific connection between a parent and a child part/component so that an accurate and exact traceability is possible. + +Also, the BoM is called 100%, as there are no alternative parts included but only built parts. Therefore, it will be set up when a part is produced and can be connected to its parent and child parts. + +In Catena-X the BoM asBuilt is used for technical topics, e.g., Quality, Battery Passport (CE). + +#### Definition Status of the BoM AsBuilt + +Defined + +- Digital Twins + - Digital Twin Serialized Part + - Digital Twin Batch + - Digital Twin Vehicle +- Build up the basic chain + - Aspect model "SerialPart" + - Aspect model "AssemblyPartRelation" + - Aspect model "Batch" + - Aspect model "JustInSequencePart" + - Aspect model "TractionBatteryCode" + +#### 1. SerialPart + +A serialized part is an instantiation of a (design-) part, where the particular instantiation can be uniquely identified by means of a serial numbers or a similar identifier (e.g. VAN) or a combination of multiple identifiers (e.g. combination of manufacturer, date and number) + +Github Link to semantic data model: [https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.serial_part/1.0.1](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.serial_part/1.0.1) + +##### Example: Submodel `SerialPart` for a Vehicle + +```json +{ + "localIdentifiers": [ + { + "key": "manufacturerId", + "value": "BPNL7588787849VQ" + }, + { + "key": "manufacturerPartId", + "value": "95657362-83" + }, + { + "key": "partInstanceId", + "value": "OEM-A-F8LM95T92WJ9KNDD3HA5P" + }, + { + "key": "van", + "value": "OEM-A-F8LM95T92WJ9KNDD3HA5P" + } + ], + "manufacturingInformation": { + "date": "2022-02-04T14:48:54", + "country": "DEU" + }, + "catenaXId": "urn:uuid:580d3adf-1981-44a0-a214-13d6ceed9379", + "partTypeInformation": { + "manufacturerPartID": "QX-39", + "classification": "product", + "nameAtManufacturer": "Vehicle Model A" + } +} +``` + +##### Example: Submodel `SerialPart` for a Serialized Part (Non-Vehicle) + +```json +{ + "localIdentifiers": [ + { + "key": "manufacturerId", + "value": "BPNL7588787849VQ" + }, + { + "key": "manufacturerPartId", + "value": "95657362-83" + }, + { + "key": "partInstanceId", + "value": "NO-574868639429552535768526" + } + ], + "manufacturingInformation": { + "date": "2022-02-04T14:48:54", + "country": "DEU" + }, + "catenaXId": "urn:uuid:d60b99b0-f269-42f5-94d0-64fe0946ed04", + "partTypeInformation": { + "manufacturerPartID": "95657362-83", + "customerPartId": "798-515297795-A", + "classification": "component", + "nameAtManufacturer": "High Voltage Battery", + "nameAtCustomer": "High Voltage Battery" + } +} +``` + +#### 2. SingleLevelBomAsBuilt + +The aspect provides the child parts (one structural level down) which the given object assembles. + +Github Link to semantic data model: [https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.single_level_bom_as_built/2.0.0](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.single_level_bom_as_built/2.0.0) + +##### Example: Submodel `SingleLevelBomAsBuilt` for a Serialized Part + +```json +{ + "catenaXId": "urn:uuid:580d3adf-1981-44a0-a214-13d6ceed9379", + "childItems": [ + { + "quantity": { + "quantityNumber": 1.0, + "measurementUnit": "unit:piece" + }, + "hasAlternatives": false, + "createdOn": "2022-02-03T14:48:54.709Z", + "lastModifiedOn": "2022-02-03T14:48:54.709Z", + "catenaXId": "urn:uuid:d60b99b0-f269-42f5-94d0-64fe0946ed04", + "businessPartner": "BPNL50096894aNXY" + } + ] +} +``` + +##### Submodel `SingleLevelBomAsBuilt` for a Batch + +```json +{ + "catenaXId": "urn:uuid:580d3adf-1981-44a0-a214-13d6ceed9379", + "childItems": [ + { + "quantity": { + "quantityNumber": 25.0, + "measurementUnit": "unit:kilogram" + }, + "hasAlternatives": false, + "createdOn": "2022-02-03T14:48:54.709Z", + "lastModifiedOn": "2022-02-03T14:48:54.709Z", + "catenaXId": "urn:uuid:d60b99b0-f269-42f5-94d0-64fe0946ed04", + "businessPartner": "BPNL50096894aNXY" + } + ] +} +``` + +#### 3. Batch + +A batch is a quantity of (semi-) finished products or (raw) material product that have been produced under the same circumstances (e.g. same production location), as specified groups or amounts, within a certain time frame. Every batch can differ in the number or amount of products. Different batches can have varied specifications, e.g., different colors. A batch is identified via a Batch ID. + +Github Link to semantic data model: [https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.batch/2.0.0](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.batch/2.0.0) + +##### Example: Submodel `Batch` for a Batch of Raw Material + +```json +{ + "localIdentifiers": [ + { + "value": "BID12345678", + "key": "batchId" + } + ], + "manufacturingInformation": { + "date": "2022-02-04T14:48:54", + "country": "HUR" + }, + "catenaXId": "urn:uuid:580d3adf-1981-44a0-a214-13d6ceed9379", + "partTypeInformation": { + "manufacturerPartId": "123-0.740-3434-A", + "classification": "product", + "nameAtManufacturer": "PA66-GF30", + } +} +``` + +#### 4. JustInSequencePart + +A just-in-sequence part is an instantiation of a (design-) part, where the particular instantiation can be uniquely identified by means of a combination of several IDs related to a just-in-sequence process. + +Github Link to semantic data model: [https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.just_in_sequence_part/1.0.0](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.just_in_sequence_part/1.0.0) + +##### Example: Submodel `JustInSequencePart` for a non-serialized component + +```json +{ + "localIdentifiers": [ + { + "key": "manufacturerId", + "value": "BPNL7588787849VQ" + }, + { + "key": "jisNumber", + "value": "894651684" + }, + { + "key": "parentOrderNumber", + "value": "OEM-A-F8LM95T92WJ9KNDD3HA5P" + }, + { + "key": "jisCallDate", + "value": "2022-01-24T09:13:34" + } + ], + "manufacturingInformation": { + "date": "2022-02-04T14:48:54", + "country": "DEU" + }, + "catenaXId": "urn:uuid:580d3adf-1981-44a0-a214-13d6ceed9379", + "partTypeInformation": { + "manufacturerPartID": "84816168424", + "classification": "product", + "nameAtManufacturer": "Black Leather Front Row Seat for Vehicle Model B" + } +} +``` + +> Please note that if a just-in-sequence part is also a serialized part, SerialPart should be used instead. + +#### 5. TractionBatteryCode + +The aspect provides the information of the Traction battery code of a battery cell, a battery module or a battery pack according to the chinese standard GB/T 34014-2017. Furthermore, it provides the traction battery codes for the assembled sub parts of the component, e.g. Traction battery code of a battery module plus all the traction battery codes of the assembled battery cells of this battery module. + +Github Link to semantic data model: [https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.traction_battery_code/1.0.0](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.traction_battery_code/1.0.0) + +##### Example: Submodel `TractionBatteryCode` for a Battery Cell + +```json +{ + "productType": "cell", + "tractionBatteryCode": "X12CCPM27KLPCLE662382320" +} +``` + +##### Example: Submodel `TractionBatteryCode` for a Battery Module + +```json +{ + "productType": "module", + "tractionBatteryCode": "B54MCPM27KLPCLE6A7519857", + "subcomponents": [ + { + "productType": "cell", + "tractionBatteryCode": "X12CCPM27KLPCLE662382320" + }, + { + "productType": "cell", + "tractionBatteryCode": "X12CCPM27KLPCLE662382321" + } + ] +} +``` + +##### Example: Submodel `TractionBatteryCode` for a Battery Pack + +```json +{ + "productType": "pack", + "tractionBatteryCode": "4A6PCPM27KLPCLE742946319", + "subcomponents": [ + { + "productType": "module", + "tractionBatteryCode": "B54MCPM27KLPCLE6A7519857", + "subcomponents": [ + { + "productType": "cell", + "tractionBatteryCode": "X12CCPM27KLPCLE662382320" + }, + { + "productType": "cell", + "tractionBatteryCode": "X12CCPM27KLPCLE662382321" + } + ] + }, + { + "productType": "module", + "tractionBatteryCode": "B54MCPM27KLPCLE6A7519858", + "subcomponents": [ + { + "productType": "cell", + "tractionBatteryCode": "X12CCPM27KLPCLE662382322" + }, + { + "productType": "cell", + "tractionBatteryCode": "X12CCPM27KLPCLE662382323" + } + ] + } + ] +} +``` + diff --git a/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/Software Development View/part_bill-of-materials.mdx b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/Software Development View/part_bill-of-materials.mdx new file mode 100644 index 00000000000..255dd3403d1 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/Software Development View/part_bill-of-materials.mdx @@ -0,0 +1,60 @@ +--- +sidebar_class_name: hidden +--- + + + +## Bill of Material (BoM) + +A bill of material resembles the structure of an end product. It is a list of all raw materials, sub-assemblies and sub-components that are needed to manufacture the end procuct. +At Catena-X Traceability we consider more than one single BoM. The BoM changes during the lifecyle and therefore, we are talking about different BoMs in different lifecycles. + +### BoM Representations + +#### Single-Level BOM + +A single-level BOM represents one level of an assembly and does not include any lower-level subassemblies. + +#### Multi-Level BOM + +A Multi-Level Bill of Materials (BOM) is a [bill of materials (BOM)](https://www.bterrell.com/sage-accpac-erp/manufacturing/definition-multi-level-bom/definition-bom/) that lists the components, assemblies, and materials required to make a part. It provides a display of all components that are directly or indirectly used in a parent item. When an item is a subcomponent, blend, intermediate, etc., all of its components, including purchased parts and [raw materials](https://www.bterrell.com/sage-accpac-erp/manufacturing/definition-multi-level-bom/definition-bom/definition-raw-materials/), are also exhibited. A multilevel structure can be illustrated by a tree with several levels. A multi-level BOM is created by connecting a series of individual single level BOMs together. + +#### Flattened BOM + +Flattening BOM means the intermediate levels in the BOM are removed and the lowest level is directly connected to the highest level. + +### BoM Lifecycle Stages + +BoM LifeCycleStage concept based on STEP AP242 with slight adoptions in layout & wording: + +- Each instance can be identified by unique (within the organization) serial number (SN). +- The ‘multi-SN’ (multi Serial number) describes product defined with a generic part or item +- The ‘one per SN’ (one per Serial number) describes product defined with an individual part or item + +| Name |Identifier Step |Implemented CX |Identifier CX| Description |Purpose |Creating time of BoM | BoM Ausprägungen | one/more fix suppliers | +| :--- | :----:|:----: |:----: |:----: | :----: |:----: |:----: |:----: | +| **AsDesigned (AsDeveloped)** | multi-SN | Currently Not Implemented |Part number*
      may not be the specific part number but a code that describes a part
      (technische Produktbeschreibung) |BoM asDesigned is generated in the design phase of a new product including alternative parts. |Build up the initial BoM in design phase of a new automotive product including alternative parts
      Expected to have research & development part descriptions instead of specific part numbers |starting 2 years before SoP (for e.g. of a new vehicle project) |150% incl. variants which will not be used later |partly known
      can be open at this point of time | +| **AsPlanned** | multi-SN | **Implemented** |Part number|BoM AsPlanned is used to plan the manufacturing process including alternative parts. |BoM AsPlanned is used to plan manufacturing including alternative parts.
      Sourcing will most likely be based on this (besides key parts which start earlier) |starting 1,5 years before building the first component |120% of all variants are covered, incl. possibly multiple suppliers for the same component |fixed suppliers, could be more than one supplier per part| +| **AsOrdered** | one per SN | Currently Not Implemented |Part number | BoM AsOrdered is used for manufacturing realization. | BoM that is used for manufacturing realization.
      This is the list of parts & components currently used for manufactoring after start of production (SOP) or shortly before.| fixed order
      (production order or custom order)|100% exact order is known |fixed suppliers, could be more than one supplier per part| +| **AsBuilt** | one per SN | **Implemented**|Serial number / batch number | BoM AsBuilt describes a product as manufactured. | BoM as a component is built or manufactured.
      During manufactoring of for e.g. a vehicle the serial numbers & batch numbers are documented (German: Verbaudokumentation).
      This leads to one BoM per built car|during building process or directly after finishing|100% |one specific supplier| +| **AsSupported / AsFlying / AsMaintained / AsOperated** | one per SN | Currently Not Implemented |Serial number / batch number | BoM AsMaintained describes the product after purchasing by a customer and updates by maintenance. | BoM after for e.g. a vehicle was picked up by the customer. Changes to live cycle before may apply due to maintenance or repair work e.g. exchange of parts, liquids, ...|Starts when customer has picked up the product, updating if any change is done|100% inkl. replaced parts, incl. history of exchanged parts |one specific supplier| +| **AsRecycled** | - |Currently Not Implemented| Serial number / batch number | BoM AsRecycled describes the BoM after the recycling of the product. | Requirement for Batteries.||100% || + +Two of the considered BoMs are already implemented in the use case Traceability and will be described as follows. + diff --git a/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/Software Development View/part_digital-twin.mdx b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/Software Development View/part_digital-twin.mdx new file mode 100644 index 00000000000..f4feaebafda --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/Software Development View/part_digital-twin.mdx @@ -0,0 +1,543 @@ +--- +sidebar_class_name: hidden +--- + + + +## Digital Twin + +### Register Digital Twins + +In Traceability, digital twins for different types of parts are registered at a Digital Twin Registry, e. g. serialized parts, batches, JIS parts or catalog parts. Basic information about how to register digital twins in Catana-X are described in the standard [CX-0002 Digital Twins in Catena-X](https://catena-x.net/de/standard-library). + +> :raised_hand: **Unique ID Push** +> Once a digital twin was created, optionally a Unique ID Push notification can be send to the customer of the part of batch to inform them that a new digital twin is available. + +The following general conventions apply for all these digital twins: + +- id: The AAS ID must be a UUIDv4 in URN format: `urn:uuid:`; +- globalAssetId: the Unique ID of the real-world part for which a digital twin is created. + +> :warning: The AAS ID is not the same id as the Catena-X Unique ID, although they have the same format (UUID) and therefore look the same. A Unique ID identifies real-world parts, whereas a AAS ID identifies a digital twin of such a part. So, don't use the same value for Unique ID and AAS ID. + +##### Property specificAssetIds + +For Traceability, we define some specific asset IDs as mandatory. Mandatory specific asset IDs are used to lookup or search for digital twins. This is a required step by a customer of a part to connect the digital twins of their parts with the digital twins of the suppliers' child parts. To a customer, only the information printed on a real-world part is available and can be used for the lookup. Mandatory specific asset IDs ensure that at least this information is available for the digital twin. + +The following conventions for specific asset IDs apply to all digital twins: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Key Availability Description Type
      manufacturerId Mandatory The Business Partner Number (BPNL) of the manufacturer of the part. BPNL
      manufacturerPartId Mandatory The ID of the type/catalog part from the manufacturer. String
      customerPartId Optional The ID of the type/catalog part from the customer.
      The main reason why this propertiy is optional is that it cannot be guaranteed that every manufacturer knows the customerPartId for their parts. In case the manufacturer knows the customer and the corresponding CustomerPartID of its part though, it is required to add this information for easier lookup and to enable further processes.
      + +
      String
      assetLifecyclePhase Optional (for DT As-Built)
      Mandatory (for DT As-Planned)
      + The lifecycle phase of the asset: +
      • For serialized parts, batches, and JIS parts, use the value "AsBuilt".
      • For catalog parts, use the value "AsPlanned".
      + assetLifecyclePhase was added to allow data consumers to search only for catalog parts by using assetLifecyclePhase="AsPlanned" as filter. Without this filter, a search for a particular manufacturer part ID would not only return the digital twin of the catalog part, but also all digital twins of instances of this catalog part, i.e., of the corresponding serial parts. +
      Enum
      + +**For serialized parts, additionally the following conventions apply:** + +| Key | Availability | Description | Type | +| :------------- | :----------- | :------------------------------------------------------------------------------------------- | :----- | +| partInstanceId | Mandatory | The serial number of the part from the manufacturer. | String | +| van | Optional | **Only for vehicles:** The pseudonymized vehicle identification number (VIN) of the vehicle. | String | + +**For batches, additionally the following conventions apply:** + +| Key | Availability | Description | Type | +| :------------- | :----------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----- | +| batchId | Optional | The number of the batch from the manufacturer. | String | +| partInstanceId | Mandatory | Also the number of the batch from the manufacturer.

      Currently, we also use the batch number as partInstanceId. This makes looking up digital twins for serialized parts and batches easier as a data consumer only has to specify the partInstanceId no matter if they are looking up a serialized part or a batch. Otherwise, the data consumer would need to know for what type of digital twin it is looking for or it would have to look for both until a match is found. | String | + +**For just-in-sequence (JIS) parts, additionally the following conventions apply:** + +| Key | Availability | Description | Type | +| :---------------- | :----------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----- | +| parentOrderNumber | Optional | A number identifying the just-in-sequence- part's destination parent part. The parent part is typically known upfront to the supplier for just-in-sequence parts. | String | +| jisNumber | Mandatory | A number that is used to identify the call-off that can be assumed unique within the specific just-in-sequence process. This is typically not the sequence number, but the call-off number. | String | +| jisCallDate | Optional | The date of the just-in-sequence call-off as stated on the call-off document itself.
      The value must be compliant to ISO 8601: `YYYY-MM-DD` or `YYYY-MM-DDThh:mm:ss` or `YYYY-MM-DDThh:mm:ss±hh:mm` | Date | +| partInstanceId | Mandatory | A composition of `jisNumber`, `parentOrderNumber` (if available), `jisCallDate` (ifavailable). This information is typically known upfront to the supplier `jisNumber`, `partOrderNumber` and `jisCallDate` for just-in-sequence parts. | String | + +> :raised_hand: **Lookup of Digital Twins** +> The lookup for parts can use the customerPartId or the manufacturerPartId. Both, manufacturer and customer must agree upon what part id will be used for the lookup. Otherwise, when the customer would use the customerPartId for the lookup, but the manufacturer would only provide the manufacturerPartId in its digital twins, the lookup would fail every time. **This is decision that a customer must agree upon with each of their suppliers individually.** + +##### Authorization: Visbility of Specific Asset IDs in the DTR + +To enforce a strict need-to-know (and prevent data from being exposed to non-authorized parties), the visibility of entries in the attribute `specificAssetIds` must be protected, i.e.,their visibility must be restricted to authorized parties only. For that, the attribute `externalSubjectId` must be used. Detailed information about this can be found in the [Digital Twin KIT](https://eclipse-tractusx.github.io/docs-kits/category/digital-twin-kit). + +##### Submodel Descriptors + +General conventions for submodel descriptors can be found in the standard [CX-0002 Digital Twins in Catena-X](https://catena-x.net/de/standard-library). This section is based on it and it is recommended to read it first. In this KIT, we extend this standard with some additional conventions. + +Submodel descriptors MUST be compliant to the following additional conventions: + +- `id`: The submodel ID must be a UUIDv4 in URN format: "urn:uuid:<UUIDv4>"; +- `idShort`: the name of the aspect model in camel case, e.g. for aspect SerialPart: "serialPart". + +The actual access information for the EDC is part of the endpoint attribute in the submodel descriptor. + +```json +{ + "interface": "SUBMODEL-3.0", + "protocolInformation": { + "href": "https://edc.data.plane/{path}/submodel", + "endpointProtocol": "HTTP", + "endpointProtocolVersion": ["1.1"], + "subprotocol": "DSP", + "subprotocolBody": "id=123;dspEndpoint=http://edc.control.plane/", + "subprotocolBodyEncoding": "plain", + "securityAttributes": [ + { "type": "NONE", "key": "NONE", "value": "NONE" } + ] + } +} +``` + +The following conventions apply for the endpoint: + +- `interface`, `endpointProtocol`, `endpointProtocolVersion`, `subprotocol`, `subprotocolBodyEncoding`, and `securityAttributes` are set as defined in the CX-0002 standard. +- `href`: The endpoint address for the logical operation GetSubmodel that is invoked by a data consumer to get the submodel. It must have the following format: + - `edc.data.plane`: Server and port of the EDC data plane that is providing the submodel. + - `{path}`: This `{path}` string is forwarded to the backend data service by the EDC data plane. Together with the EDC asset information (see below) it must contain all information for the backend data service to return the requested submodel. The actual path depends on the type of backend data service that the data provider uses to handle the request. More details follow below. + - `/submodel`: This `/submodel` string is also forwarded to the backend data service. As AAS Profile SSP-003 of the Submodel Service Specification is mandatory for release 3.2, `href` must have the suffix "/submodel" representing the invokation of the GetSubmodel operation. +- `subprotocolBody`: a semicolon-separated list of parameters used to negotiate the required contract agreement. + - `id=123`: The ID of the EDC asset for which a contract negitiation should be intiated. This ID is also called dataset ID as it is stored as `https://www.w3.org/ns/dcat/dataset.@id` in a catalog entry. This ID must be set by the data provider when creating the asset. Do not confuse this EDC asset ID (dataset ID) with other IDs that might be defined additionally for an EDC asset, e.g., `https://w3id.org/edc/v0.0.1/ns/id` (often refered to as `edc:id`). + - `dspEndpoint`: Server and port of the EDC control plane used for contract negotiation. + +> :raised_hand: **Backend Data Service for Submodels** +According to CX-0002, the backend data service identified via `href`and the filter criteria in `subprotocolBody` MUST be conformant to the Asset Administration Shell Profile SSP-003 of the Submodel Service Specification and must at least support the logical operation GetSubmodel. In release 3.2, only the logical parameter Content=Value must be supported via path suffix "/submodel/$value". This might change in later Catena-X releases. + +With this approach, the EDC asset structure must no longer follow the "one EDC asset per submodel" rule (as in Release 3.1 and before), but gives data providers more flexibility how to create EDC assets for their digital twins and submodels based on how they use `{path}`. + +###### Option 1: Same EDC Asset Structure as in Release 3.1 + +Submodels of digital twins are registered in the EDC the same way as for release 3.1: One EDC asset is created for every submodel of a digital twin. + +- `href` must have the following format: `http://edc.data.plane/submodel` +- `subprotocolBody` must have the following format: `id={edcAssetId};dspEndpoint=http://edc.control.plane` +- edcAssetId is the id of the EDC asset for the submodel. It must have the following format "{aasIdentifier}-{submodelIdentifier}" with + - aasIdentifier: the id of the digital twin (id property in the AAS descriptor) + - submodelIdentifier: the id of the submodel (id property in the submodel descriptor) + +Here's an example how such a submodel descriptor could look like: + +```json +"submodelDescriptors": [ + { + "idShort": "serialPart", + "id": "urn:uuid:7effd7f4-6353-4401-9547-c54b420a22a0", + "semanticId": { + "type": "ExternalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "urn:samm:io.catenax.serial_part:1.0.1#SerialPart" + } + ] + }, + "endpoints": [ + { + "interface": "SUBMODEL-3.0", + "protocolInformation": { + "href": "https://edc.data.plane/submodel", + "endpointProtocol": "HTTP", + "endpointProtocolVersion": ["1.1"], + "subprotocol": "DSP", + "subprotocolBody": "id=urn:uuid:75e98d67-e09e-4388-b2f6-ea0a0a642bfe-urn:uuid:7effd7f4-6353-4401-9547-c54b420a22a0;dspEndpoint=http://edc.control.plane/", + "subprotocolBodyEncoding": "plain", + "securityAttributes": [ + { "type": "NONE", "key": "NONE", "value": "NONE" } + ] + } + } + ] + } +] +``` + +In this example, the `path` part in the `href` is empty, as the EDC asset referenced in `subprotocolBody` directly points to a service returning the correct submodel (set up correctly with its dataAddress in the data provider's EDC). + +###### Option 2: EDC Asset Structure on Catalog Part Level + +A data provider can link several submodel endpoints to the same EDC asset (referenced by its id). This allows to create only one EDC asset (per aspect model) for a catalog part and link all submodels (of the same aspect model) for serialized parts of the catalog part to the same EDC asset. The data provider would still need to create separate EDC assets per aspect model as in most cases different usage policies are used for aspect models. + +If a data provider no longer creates EDC assets on the level of submodels, the EDC can no longer authorize a request on a submodel-level. For example: If EDC assets are created per catalog part, the EDC can only authorize if the requestor is allowed to see parts of these type in general; if the requestor is allowed to see a actual serialized part, must be authorized by the backend data service executing the request. + +Here's an example how such a submodel descriptor could look like: + +```json +"submodelDescriptors": [ + { + "idShort": "serialPart", + "id": "urn:uuid:7effd7f4-6353-4401-9547-c54b420a22a0", + "semanticId": { + "type": "ExternalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "urn:samm:io.catenax.serial_part:1.0.1#SerialPart" + } + ] + }, + "endpoints": [ + { + "interface": "SUBMODEL-3.0", + "protocolInformation": { + "href": "https://edc.data.plane/urn%3Auuid%3A75e98d67-e09e-4388-b2f6-ea0a0a642bfe-urn%3Auuid%3A7effd7f4-6353-4401-9547-c54b420a22a0/submodel", + "endpointProtocol": "HTTP", + "endpointProtocolVersion": ["1.1"], + "subprotocol": "DSP", + "subprotocolBody": "id=urn:uuid:1475f313-0a83-4e2b-b705-a100eebcb7d7;dspEndpoint=http://control-plane.edc.catena-x.net/", + "subprotocolBodyEncoding": "plain", + "securityAttributes": [ + { "type": "NONE", "key": "NONE", "value": "NONE" } + ] + } + } + ] + } +] +``` + +The path part of the `href` property contains the information for the backend data service which digital twin's submodel to return while the EDC asset ID is used for several endpoints. The path part here is just an example as it depends on the type of backend data service the data provider uses. + +The above options are only two examples how a submodel's endpoint can be created. As long as it's compliant with the above conventions (including CX-0002) a data provider can also use any other EDC asset structure. + +###### Data Consumption with AAS Submodel Descriptor Endpoints + +The endpoint `href` in the submodel descriptor cannot be used directly to contact an EDC and access the data in Catena-X. + +- A data consumer must first identify the protocol that must be used to retrieve the submodel data based on the `subprotocol`. For data transfers in Catena-X, this is "DSP" +- With `href`, the data consumer calls the local operation GetSubmodel as specified by the suffix "/submodel". As only the logical parameter "Content" must be supported in release 3.2, "/$value" must be appended to `href` by the data consumer. + If the `href` endpoint is called with operations or parameter values not yet supported, the error response 501 "Not Implemented" must be returned according to CX-0002. +- Then, the data consumer must use the information in the `subprotocolBody` to perform a contract negotiation for the EDC asset referenced by `id` with the EDC control plane of the data provider specified by `dspEndpoint`. +- Finally, using the id from the contract agreement with the control plane, the data consumer initiates the data transfer with the EDC data plane of the data provider referenced in the `href`. The enriched path part of the `href` (see bullet point 2) is passed to data provider data plane by the data consumer as a parameter for the backend data service that actually executes the request and returns the submodel. + +All these steps must be handled by the data consumer that want to retrieve the submodel data of a digital twin. + +### Lookup in the Digital Twin Registry + +For a data provider, there are currently the following steps where they have to lookup digital twins of other partners in the Catena-X network. + +- The data provider must use the local IDs for a serialized part or batch (manufacturer, part number, serial or batch number) and for a just-in-sequence part (manufacturer, parentOrderNumber, jisNumber, jisCallDate) to lookup the AAS ID of the digital twin of this serialized part, batch or just-in-sequence part. The AAS descriptor with this ID contains the Unique ID of the serialized part, batch or just-in-sequence (as globalAssetId) that is used to create SingleLevelBomAsBuilt submodel. + +- The data provider must use the local IDs for a catalog part (manufacturer, part number) to lookup the AAS ID of the digital twin of this catalog part. The AAS descriptor with this ID contains the Unique ID of the catalog part (as globalAssetId) that is used to create the SingleLevelBoMAsPlanned submodel. + +For a data consumer, there are currently the following steps where they have to lookup digital twins of other partners in the Catena-X network. + +- The data consumer in the Traceability use case in most cases will use the Unique ID of a part to lookup the digital twin (more precisely, its AAS ID) of this part. +- The data consumer from another use case (e.g., Circular Economy), might either use the Unique ID of a part (if known) or the local IDs of a part to lookup the part's digital twin (AAS ID) depending on what is available in the use case. + +##### Lookup up a Digital Twin with Local IDs + +The local IDs of a serialized part (manufacturer, part number, serial number) are stored as specific asset IDs in the AAS descriptor of the digital twin. From the Digital Twin Registry API, the following function can be used for this lookup `GET /lookup/shells`. + +All Asset identifier key-value-pairs used as parameter to this lookup function are combined using AND. An example query would look like this: `https://URL/registry/lookup/shells?assetIds=%5B%7B%22key%22%3A%20%22manufacturerId%22,%22value%22%3A%20%22BPNL7588787849VQ%22%7D,%7B%22key%22%3A%20%22manufacturerPartId%22,%22value%22%3A%20%2295657362-83%22%7D,%7B%22key%22%3A%20%22partInstanceId%22,%22value%22%3A%20%22NO-574868639429552535768526%22%7D%5D` + +**The assetIds value looks like this unencoded (but with additional spaces and linebreaks):** + +```json +[ + { + "key": "manufacturerId", + "value": "BPNL7588787849VQ" + }, + { + "key": "manufacturerPartId", + "value": "95657362-83" + }, + { + "key": "partInstanceId", + "value": "NO-574868639429552535768526" + } +] +``` + +The lookup (for serialized parts/batches as well as catalog parts) can use the customer or the manufacturer part id (manufacturerPartId or manufacturerPartId). + +- For a digital twin, adding the customer part id to the specific asset IDs is optional. The main reason for this is that it cannot be guaranteed that every manufacturer knows the customer part id for their parts. But, if they know it, it is recommended to always add the customer part id to the specifiAssetId property for easier lookup (by customers). +- A customer that wants to do a lookup for a supplier's digital twin, must first decide what id they want to use for the lookup. This depends on the information that is available to them. + - If the customer knows the manufacturer part id, they should use the manufacturer part id for the lookup as the manufacturer part id is guaranteed to be available in the digital twin (as the manufacturer part id is a mandatory property). + - If the customer does not know the manufacturer part id, they must use the customer part id (i.e., their own part id). In that case they must make sure that their suppliers register their digital twins with this information (as the customer part id is optional) as part of the specific asset IDs. This is decision that a customer must agree upon with each of their suppliers individually. + +As a result, the AAS ID of the digital twin with this local IDs is returned. The AAS ID can then be used to retrieve details about the digital twin, i.e. the digital twin's AAS descriptor including submodel descriptors. + +**Example result for looking up a digital twin with local IDs:** + +```json +["urn:uuid:c227a880-b82b-40f7-846c-3942ddf26c29"] +``` + +Note that this query can return more than one AAS ID depending on the local IDs uniquely identifying a digital twin or not. + +Currently, even if more than one digital twin is returned in a lookup, these digital twins should have different submodels assigned to them. These submodels should be disjunct and not overlap. This means that you can use the submodel to filter out the correct digital twin. + +- If there are returned more than one digital twin with the same submodel (based on their semanticId), this is considered an error. Processing should be canceled and an error message should be reported. + +The next section describes to modify the lookup to additionally restrict the results to digital twins with a specific submodel type based on it's semanticId. + +### Unique ID Push Notifications + +Unique ID Push notifications are a way for a manufacturer to notify a customer as soon as possible when a new digital twin for a part is available. + +The solution is based on notification assets in the EDC (which is the same approach that is used for quality alerts & investigations). The customer creates a notification asset in the EDC and the customer's suppliers send their notifications (with the Unique Id) to this notification asset. As this notification asset is a general EDC asset - as for all EDC assets - access policies, usage policies and contract definitions must be created. + +> :raised_hand: It is important to understand that the customer (receiver) creates EDC asset and policies, and thus, the supplier (sender) of the Unique ID push notification must check during the EDC negotiation process if the conditions the receiver offers are acceptable for the sender. + +##### Prerequisites and Constraints + +In order to be able to push Unique ID(s) of part(s) to the correct partner, it is required that the data provider (manufacturer) pushing the Unique IDs is aware of the BPN of the actual receiver of the part (i.e., the customer) or has enough data in its context to use BPDM functions to determine the BPN Number of the receiver. + +For actively pushing Unique IDs, an EDC is required and the data provider needs to be enabled to execute the complete process including EDC communication and HTTP Push (i.e., HTTP POST) of the payload. + +Secondly, EDCs are being used for the exchange and it is currently required to offer a HTTP POST API to receive the Unique IDs push at the receiver's side. This API needs to be registered in the EDC Catalog as a data offer and requires specific properties to be set to standardized values, as this allows discover-ability. Details still tbd. + +##### Unique ID Push Process Overview + +How the actual process is triggered is application specific. It is recommended to trigger the push of Unique IDs towards the customer after the Goods Issue has been booked, since commonly at that point the serial numbers/batch numbers of the parts being delivered are fixed in the logistics process and shall be contained in delivery documents, EDI Messages and/or any internal representation of the received items (non-Catena-X communication). + +The Unique ID push is initiated by the supplier (acting as sender) towards their customer (acting as receiver). Since the Unique ID of the asset (i.e., serial unit / batch) is unknown in the logistics process, the message needs to include local identifiers to be matched towards the information from the delivery documents and furthermore the internal data of the recipient's traceability solution. + +Upon receipt of the message, the customer needs to match the local identifiers with its internal traceability records and attach each Unique ID to the respective data set. How this is done is depending on the customer's internal systems: + +- If there is an object for incoming deliveries, this event could be updated. + Alternatively, if only production events are tracked, the data could be integrated at this point into the data provisioning pipeline's data structure for consumed materials. +- In the end this enables the customer to integrate the child parts into the SingleLevelBomAsBuilt aspect. + +![Unique ID Push Process](../assets/unique_id_push_process.png) + + + +##### Schema of Unique ID Push Notifications + +The notifications send to inform a customer about the creating of a new digital twin for one of the parts they received have a standardized format. + +All endpoints as well as the schema of the notification below are described in detail in the [Unique ID Push API documentation](Unique%20ID%20Push%20API/unique-id-push-notification-api). + +> Adding the customer part id to the notification is optional. The main reason for this is that it cannot be guaranteed that every manufacturer knows the customer part id for their parts. But, in case the manufacturer knows the customer and the corresponding customer part id of its part though, it is required to always add the customer part id to the notification. + +##### Notification Receiver (Customer) + +Here is a short overview what the receiver has to do when they want to support Unique Id Push notifications. This is an optional feature. + +- The receiver in this scenario is the customer of a part. +- The receiver must create a EDC asset in their EDC that works as the endpoint for receiving notifications. Also, access & usage policies as described below must be configured. +- The EDC in which the notification EDC asset was created must be registered at the Discovery Service (so that the sender can find the partner's EDC which should receive notifications) +- When the Receiver receives a Unique Id Push notification, it must process this notification after it was received by the EDC (in a Backend Data Service) +- How the Receiver processes the notification is up to them, but the following steps are recommended: + - Verify the correctness of the data in the notification (i.e., the receiver is actually the customer of this part). + - Store the notification data for later. + - Use this data when the digital twin for the part into which the delivered part is built into is created instead of doing a lookup to a supplier's Digital Twin Registry. + +###### EDC Asset + +The EDC asset can be created using the EDC Data Management API. The following conventions apply for the properties of this asset: + +```apacheconf +"id": "uniqueidpushnnotification-receipt" +"type": "notification.trace.uniqueidpush" +"notificationtype": "uniqueidpush" +"notificationmethod": "receive" +``` + +###### EDC Policies + +_More information about the Policies with detailed descriptions, payloads etc. are described on the [Adoption View](../page_adoption-view.md) page._ + +**Access Policies** +A data provider can decide on its own what access policies they want to define for their notification asset. Based on the purpose of the asset, all suppliers of the data provider should in general be allowed to send notifications to this asset. Therefore, either a public access policy or a BPN-based access policy (allowing all suppliers) should be used. + +**Usage Policies** +In general, a data provider is free to decide which usage policies to define for its assets. For notifications, though, the data provider is actually the receiver of notifications, i.e., the usage policy here has the purpose to define what the data provider does or is allowed to do with the notifications. It's something the sender of the notification has to rely on and accept when sending its notification. + +Keep in mind that usage policies currently aren't technically enforced by the EDC or other components. + +> :raised_hand: **Usage Policy for Unique ID Push** +> The Unique ID push notification endpoints are protected with a purpose-based usage policy and "purpose.trace.v1.aspects" as purpose. + +###### Backend Data Service to Process Unique ID Push Notifications + +The receiver must setup a backend data service that provides an HTTP Endpoint for notifications. All endpoints as well as the schema of the notification below are described in detail in the [Unique ID Push API documentation](Unique%20ID%20Push%20API/unique-id-push-notification-api). + +##### Notification Sender (Manufacturer, Supplier) + +Here is a short overview what the sender has to do when they want to support Unique Id Push notifications. This is an optional feature. + +- The Sender in this scenario is the manufacturer or supplier of a part. +- When a new digital twin for a part was created, the manufacturer is responsible to send a Unique Id Push notification for this twin to the customer of this part. +- It is recommended to send this notification as soon as possible, i.e., directly after the digital twin was created. + +###### Mapping BPN to EDC URL with Discovery Service API + +The sender must first find the EDC of the customer to which the notification should be sent to. For this, the BPN of the customer is required. With this, the Discovery Service can be used to query for all EDCs of the customer. After that, the data catalog of each of these EDCs must be queried for the notification EDC asset as described above. If this notification EDC asset is found in one of these EDCs, the notification can be sent. + +There should only be one EDC which provides the notification EDC asset for Unique Id Push. If more than one EDC (for the same BPN/partner) are found, this is considered a misconfiguration of the corresponding partner. + +### Creating Submodels + +Submodels for Traceability are mostly easy to create by transforming a company's internal data into the target aspect model, i.e. SerialPart or Batch. Transformations are mostly straightforward in these cases. + +The only special step in creating these two submodels is the initial creation of the Unique ID for the corresponding serialized parts or batches. + +##### Creation of Submodel SingleLevelBomAsBuilt + +The creation of the submodel SingleLevelBomAsBuilt is more complicated. This submodel contains the Unique ID of the manufacturer's part (attribute catenaXId) which is created - as described above - when the part's SerialPart or Batch submodel is created. But it also contains the Unique IDs of the built-in parts (attributes childItems.catenaXId), as shown in the following example: + +```json +{ + "catenaXId": "urn:uuid:d261e0fa-36f5-4128-875e-0f5735f5a535", + "childItems": [ + { + "quantity": { + "quantityNumber": 1, + "measurementUnit": "unit:piece" + }, + "hasAlternatives": false, + "createdOn": "2022-02-03T14:48:54.709Z", + "lastModifiedOn": "2022-02-03T14:48:54.709Z", + "catenaXId": "urn:uuid:9dc1b6fb-94e7-4911-9e39-abf06c4941d2", + "businessPartner": "BPNL50096894aNXY" + }, + { + "quantity": { + "quantityNumber": 1, + "measurementUnit": "unit:piece" + }, + "hasAlternatives": false, + "createdOn": "2022-02-03T14:48:54.709Z", + "lastModifiedOn": "2022-02-03T14:48:54.709Z", + "catenaXId": "urn:uuid:d17bbf68-6cb7-4045-b3ae-67f41403d098", + "businessPartner": "BPNL50097894aNXA" + } + ] +} +``` + +For the build-in parts (child items), their Unique ID is not known to the manufacturer initially. Only know are the local ids that are printed on the physical part (serialized part or batch), i.e., manufacturer (BPN), manufacturer part id and serial or batch number. To get the Unique ID of a built-in part, a data provider therefore has to do the following: + +- Get all necessary local ids for the built-in part: + - manufacturer (BPN), manufacturer part id and serial number for serialized parts + - manufacturer (BPN), manufacturer part id and batch number for batches +- The next step is about getting the Unique ID of all built-in parts. There are two ways: + - Unique IDs might for built-in parts might already be available locally if Unique ID Push is supported by the data provider and the suppliers of the built-in parts. + - Query a supplier's Digital Twin Registry to find the digital twin for this built-in part + +###### Unique ID Push + +Once the digital twin was created, optionally a Unique ID Push notification can be send by the manufacturer of the part to the customer of the serialized part of batch to inform the customer that information about a serialized part or batch is available as a digital twin. This is an optional process and both, the manufacturer of a part as well as the customer of the part must support Unique ID Push notifications. + +For more information, see [Unique ID Push Notifications](#unique-id-push-notifications) + +###### Query a Digital Twin Registry to find the digital twin for this built-in part + +- Querying digital twins is described in [Lookup for Digital Twins in the Digital Twin Registry](#lookup-for-digital-twins-in-the-digital-twin-registry) + - Note that the query parameters differ depending on what type of digital twin is looked up. + - Currently though, no matter if you want to lookup serialized parts or batches, you can use partInstanceId (using the serial number or the batch number as search parameter value). + - For Batch digital twins, the key batchId might be provided optionally. As this key is not mandatory currently, you cannot rely on this key being available when looking for Batch digital twins. + - To understand why, take a look at how these digital twins are created, especially their specific asset IDs: [Creating Submodels for Digital Twins](#creating-submodels-for-digital-twins) + - The result of this query will be the AAS ID of the digital twin. +- Use this AAS ID to get the AAS Descriptor including all Submodel Descriptors of this digital twin. The AAS Descriptor contains the Submodel Descriptor SerialPart or Batch (depending on the digital twin type). +- Fetch the submodel SerialPart or Batch (depending on the digital twin type) from the EDC that is referenced in the corresponding Submodel Descriptor. +- The submodel then contains the Unique ID of the built-in part in its catenaXId attribute. + +These steps have to be repeated for all built-in parts by the manufacturer. After that, the manufacturer has all information to create the SingleLevelBomAsBuilt. + +#### Publish Traceability Data Offers at EDC + +With the changes of Release 3.2 regarding the submodel endpoints in the DTR, the actual EDC asset structure for submodels is no longer restricted by use case conventions and can be decided by the data provider. + +##### Data Provider Tasks + +Basically, as a data provider you have to do the following + +- Implement a Backend Data Service (BDS) for every asset that is provided via the EDC. It does not have to be a different BDS for each asset - you can use the same BDS for several assets (to be verified). +- The BDS must support the Asset Administration Shell Profile SSP-003 of the Submodel Service Specification (see standard CX-0002 for more details). +- The BDS must use the REST API data plan for data transmission. +- The BDS must verify that it only returns data to the data consumer that is compliant to the EDC asset and data offer for which data is queried and authorize the request accordingly. + diff --git a/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/Software Development View/part_policies.mdx b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/Software Development View/part_policies.mdx new file mode 100644 index 00000000000..1b86a508b69 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/Software Development View/part_policies.mdx @@ -0,0 +1,155 @@ +--- +sidebar_class_name: hidden +--- + + + +## Policies + +### Access Policies +To enable data sovereignty, access and usage policies are important to protect the data assets of a data provider in the EDC, described in the following. Further details are described in the [CX - 0018 Sovereign Data Exchange](#standards) standard. + +To decide which company has access to the data assets, access policy should be used. Note that without protecting data assets with access policies, they become publicly available in the Catena-X network which is not recommended. Therefore, every asset should be protected and only be made available for specific companies, identified through their business partner number (BPN). + +#### BPN Access Policy + +This policy allows limiting access to a data offer based on a list of specific BPNs. This translates to the following functionality: + +- The data offer creator will be able to create a policy listing all the BPN that can access the data offer +- This means that only the connectors registered in the Catena-X network with the BPN listed in the policy can see the data offer and accept it (for the creation of data contracts and subsequent data exchange) + + +Examples including a JSON payload for single and multiple BPN are described on [this page in the tractus-x EDC repository](https://github.com/eclipse-tractusx/tractusx-edc/tree/main/edc-extensions/business-partner-validation) or in the [Business Partner Validation Extension part of the Connector Kit](../tractusx-edc/edc-extensions/business-partner-validation/). + +### Usage Policies +To decide which company can use the data asset under specific conditions, usage policies (or contract policies) are used. Therefore, they are more specific than access policies and only used just after access is granted. Currently, the usage policies aren't technically enforced but based on a legal framework (keep this in mind when publishing data assets). + +Policies are defined based on the [W3C ODRL format](https://www.w3.org/TR/odrl-model/). This allows a standardized way of formulating policy payloads. It further allows to stack different constraints with the `odrl:and` operator. Therefore, every data provider can decide on his or her own under which conditions their data assets are shared in the network. It is recommended to restrict the data usage for all traceability aspects. An example of one usage policy containing three different constraints is shown and described in the following: + +```json +{ + "@context": { + "odrl": http://www.w3.org/ns/odrl/2/ + }, + "@type": "PolicyDefinitionRequestDto", + "@id": "", // Important for the contract definition + "policy": { + "@type": "Policy", + "odrl:permission": [ + { + "odrl:action": "USE", + "odrl:constraint": { + "@type": "LogicalConstraint", + "odrl:and": [ // All of the following three constraints have to be fullfilled (and, not or) + // First constraint to verify the the Catena-X membership + { + "@type": "Constraint", + "odrl:leftOperand": "Membership", + "odrl:operator": { + "@id": "odrl:eq" + }, + "odrl:rightOperand": "active" + }, + // Second constraint to verify if the framework agreement for the traceability use case is accepted + { + "@type": "Constraint", + "odrl:leftOperand": "FrameworkAgreement.traceability", + "odrl:operator": { + "@id": "odrl:eq" + }, + "odrl:rightOperand": "active" + }, + // Third constraint to define the specific purpose, further detailed in the framework agreement + { + "@type": "Constraint", + "odrl:leftOperand": "PURPOSE", + "odrl:operator": { + "@id": "odrl:eq" + }, + "odrl:rightOperand": "" // See list in the framework agreement + } + ] + } + } + ] + } +} +``` +#### Membership Policy + +To verify the participants Catena-X membership, the `Membership` verifiable credential can be used. In case of a policy, the data can only be used from verified Catena-X members. The payload is shown in the first constraint-part of the example above and described in detail in the [EDC part of the SSI documentation](https://github.com/eclipse-tractusx/ssi-docu/blob/main/docs/architecture/cx-3-2/edc/policy.definitions.md#1-membership-constraint). + +```json +{ + "@type": "Constraint", + "odrl:leftOperand": "Membership", + "odrl:operator": { + "@id": "odrl:eq" + }, + "odrl:rightOperand": "active" +} +``` + +#### Framework Agreement Policy + +To verify if a participant accepted the framework agreement of a specific use case created by the [Catena-X association](https://catena-x.net/en/about-us/the-association), the `FrameworkAgreement.traceability` verifiable credential can be used for the traceability framework agreement. In case of a policy, the data can only be used from accepted and verified traceability framework agreement members. This is shown in the second constraint-part of the example above and described in detail in the [EDC part of the SSI documentation](https://github.com/eclipse-tractusx/ssi-docu/blob/main/docs/architecture/cx-3-2/edc/policy.definitions.md#35-traceability). + +```json +{ + "@type": "Constraint", + "odrl:leftOperand": "FrameworkAgreement.traceability", + "odrl:operator": { + "@id": "odrl:eq" + }, + "odrl:rightOperand": "active" +} +``` + +#### Purpose-based Policy + +To further restrict the data usage, a purpose-based policy can be used. If, for example, the purpose mentions a quality investigation, this means that the data usage is only allowed for handling and working on the quality investigation. All possible purposes and their meanings are defined in the traceability framework agreement. This allows to create a uniform understanding and a standardized set of payloads in the network by connecting technical strings to legal agreements. + +It is highly recommended to only use this purpose-based policy together with the [Framework Agreement Policy](#framework-agreement-policy). Only with both together it can be ensured that the payload of the purpose policy is agreed by the other part and is based on the same set. + +Details about the endpoint and payload can be found in the [Transfer Data sample in the tractus-x EDC repository](https://github.com/eclipse-tractusx/tractusx-edc/blob/main/docs/samples/Transfer%20Data.md#2-setup-data-offer) or in the [Connector Kit API documentation of the policy definition API](tractusx-edc/docs/kit/development-view/openAPI/management-api/policy-definition-api/create-policy-definition). + +```json +{ + "@type": "Constraint", + "odrl:leftOperand": "PURPOSE", + "odrl:operator": { + "@id": "odrl:eq" + }, + "odrl:rightOperand": "" +} +``` + +The `` have to be replaced with one purpose string defined in the framework agreement. + +### Contract Definitions + +In the EDC, every policy is associated with a contract. Thus, a contract definition is needed. Details about the endpoint and payload can be found in the [Transfer Data sample in the tractus-x EDC repository](https://github.com/eclipse-tractusx/tractusx-edc/blob/main/docs/samples/Transfer%20Data.md#2-setup-data-offer) or in the [Connector Kit API documentation of the contract definition API](../tractusx-edc/docs/kit/development-view/openAPI/management-api/contract-definition-api/edc-contract-definition-api). + +When using an above mentioned [Access Policy](#access-policies), their `id` needs to be included as a value of the `accessPolicyId` key in the contract definition. When using an above mentioned [Usage Policy](#usage-policies), their `id` needs to be included as a value of the `contractPolicyId` key in the contract definition. + +### Verifiable Credentials + +Verifiable Credentials (VC) are part of the Self-Sovereign Identity (SSI) standard by the W3C. Details about Catena-X specific VCs can be found in the [CX - 0016 Company Attribute Verification](#standards) standard. As mentioned there, it offers a `UseCaseFrameworkConditionCX` type allowing a data provider to check if specific conditions, like a signed use case contract as introduced in the [Purpose-base Usage Policy section](#purpose-based-policy), are agreed. Further technical documentation are presented in the [SSI Docu](https://github.com/eclipse-tractusx/ssi-docu/tree/main/docs/architecture) repository. diff --git a/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/assets/architecture_level_1.png b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/assets/architecture_level_1.png new file mode 100644 index 00000000000..d1d02ec1a58 Binary files /dev/null and b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/assets/architecture_level_1.png differ diff --git a/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/assets/architecture_level_1.png.license b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/assets/architecture_level_1.png.license new file mode 100644 index 00000000000..725b4f88d99 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/assets/architecture_level_1.png.license @@ -0,0 +1,15 @@ +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2023 BASF SE +- SPDX-FileCopyrightText: 2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +- SPDX-FileCopyrightText: 2023 Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V. (represented by Fraunhofer ISST & Fraunhofer IML) +- SPDX-FileCopyrightText: 2023 German Edge Cloud GmbH & Co. KG +- SPDX-FileCopyrightText: 2023 Mercedes Benz AG +- SPDX-FileCopyrightText: 2023 Robert Bosch Manufacturing Solutions GmbH +- SPDX-FileCopyrightText: 2023 SAP SE +- SPDX-FileCopyrightText: 2023 Siemens AG +- SPDX-FileCopyrightText: 2023 T-Systems International GmbH +- SPDX-FileCopyrightText: 2023 ZF Friedrichshafen AG +- SPDX-FileCopyrightText: 2023 Contributors to the Eclipse Foundation +- Source URL: https://github.com/eclipse-tractusx/eclipse-tractusx.github.io/tree/main/docs-kits/kits/Traceability%20Kit (latest version) \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/assets/data_provisioning_data_flow.png b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/assets/data_provisioning_data_flow.png new file mode 100644 index 00000000000..89cb01b93fb Binary files /dev/null and b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/assets/data_provisioning_data_flow.png differ diff --git a/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/assets/data_provisioning_data_flow.png.license b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/assets/data_provisioning_data_flow.png.license new file mode 100644 index 00000000000..725b4f88d99 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/assets/data_provisioning_data_flow.png.license @@ -0,0 +1,15 @@ +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2023 BASF SE +- SPDX-FileCopyrightText: 2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +- SPDX-FileCopyrightText: 2023 Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V. (represented by Fraunhofer ISST & Fraunhofer IML) +- SPDX-FileCopyrightText: 2023 German Edge Cloud GmbH & Co. KG +- SPDX-FileCopyrightText: 2023 Mercedes Benz AG +- SPDX-FileCopyrightText: 2023 Robert Bosch Manufacturing Solutions GmbH +- SPDX-FileCopyrightText: 2023 SAP SE +- SPDX-FileCopyrightText: 2023 Siemens AG +- SPDX-FileCopyrightText: 2023 T-Systems International GmbH +- SPDX-FileCopyrightText: 2023 ZF Friedrichshafen AG +- SPDX-FileCopyrightText: 2023 Contributors to the Eclipse Foundation +- Source URL: https://github.com/eclipse-tractusx/eclipse-tractusx.github.io/tree/main/docs-kits/kits/Traceability%20Kit (latest version) \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/assets/traceability_customer-journey.png b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/assets/traceability_customer-journey.png new file mode 100644 index 00000000000..1ab1dc00fbe Binary files /dev/null and b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/assets/traceability_customer-journey.png differ diff --git a/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/assets/traceability_customer-journey.png.license b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/assets/traceability_customer-journey.png.license new file mode 100644 index 00000000000..725b4f88d99 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/assets/traceability_customer-journey.png.license @@ -0,0 +1,15 @@ +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2023 BASF SE +- SPDX-FileCopyrightText: 2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +- SPDX-FileCopyrightText: 2023 Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V. (represented by Fraunhofer ISST & Fraunhofer IML) +- SPDX-FileCopyrightText: 2023 German Edge Cloud GmbH & Co. KG +- SPDX-FileCopyrightText: 2023 Mercedes Benz AG +- SPDX-FileCopyrightText: 2023 Robert Bosch Manufacturing Solutions GmbH +- SPDX-FileCopyrightText: 2023 SAP SE +- SPDX-FileCopyrightText: 2023 Siemens AG +- SPDX-FileCopyrightText: 2023 T-Systems International GmbH +- SPDX-FileCopyrightText: 2023 ZF Friedrichshafen AG +- SPDX-FileCopyrightText: 2023 Contributors to the Eclipse Foundation +- Source URL: https://github.com/eclipse-tractusx/eclipse-tractusx.github.io/tree/main/docs-kits/kits/Traceability%20Kit (latest version) \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/assets/unique_id_push_process.png b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/assets/unique_id_push_process.png new file mode 100644 index 00000000000..7d038364355 Binary files /dev/null and b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/assets/unique_id_push_process.png differ diff --git a/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/assets/unique_id_push_process.png.license b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/assets/unique_id_push_process.png.license new file mode 100644 index 00000000000..725b4f88d99 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/assets/unique_id_push_process.png.license @@ -0,0 +1,15 @@ +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2023 BASF SE +- SPDX-FileCopyrightText: 2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +- SPDX-FileCopyrightText: 2023 Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V. (represented by Fraunhofer ISST & Fraunhofer IML) +- SPDX-FileCopyrightText: 2023 German Edge Cloud GmbH & Co. KG +- SPDX-FileCopyrightText: 2023 Mercedes Benz AG +- SPDX-FileCopyrightText: 2023 Robert Bosch Manufacturing Solutions GmbH +- SPDX-FileCopyrightText: 2023 SAP SE +- SPDX-FileCopyrightText: 2023 Siemens AG +- SPDX-FileCopyrightText: 2023 T-Systems International GmbH +- SPDX-FileCopyrightText: 2023 ZF Friedrichshafen AG +- SPDX-FileCopyrightText: 2023 Contributors to the Eclipse Foundation +- Source URL: https://github.com/eclipse-tractusx/eclipse-tractusx.github.io/tree/main/docs-kits/kits/Traceability%20Kit (latest version) \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/page_architecture-view.mdx b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/page_architecture-view.mdx new file mode 100644 index 00000000000..89961943182 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/page_architecture-view.mdx @@ -0,0 +1,98 @@ +--- +id: Architecture View Traceability Kit +title: Architecture View +description: 'Traceability Kit' +sidebar_position: 2 +--- + + + +import Notice from './part_notice.mdx' + +![Traceability kit banner](@site/static/img/doc-traceability_header-minified.png) + + +The following page offers an architecture perspective including the main building blocks and information regarding communication between different components, shown as sequence diagrams in a runtime view. + +In general, data must be provided to the Catena-X network using the Data Space Protocol (DSP). As standard for digital twins the Asset Administration Shell (AAS) standard is used - this is relevant for registering digital twins (in the Digital Twin Registry) as well as for providing digital twin data. SAMM is used as modelling language to describe the data of digital twins as aspects models. + +## Assumptions +This architecture is based on the following assumptions: + +- The **customers of parts** (on catalog and instance level) must be known when creating a digital twin and registering its data. Registering data in EDC and DTR requires data providers to define appropriate access permissions to prevent exposing data to unauthorized parties. For Traceability, the customer of a part must have access to the digital twin in the DTR as well as to the digital twin's data in the EDC.If the customer is not known when a digital twin is created, additional processes must be set up by the data provider to add access permissions for the customer at a later time. + +## Non-Functional Requirements + +| Requirement | Description | +| :--: |:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Resilience | While processing data for publishing it to Catena-X, a data provider needs to access the digital twins of built-in parts from suppliers. These must be available in Catena-X at this point. If these digital twins are not found while the data provider is looking them up, the data provider will not be able to integrate these built-in parts into BoM aspect models (e.g., SingleLevelBomAsBuilt) as it is missing the built-in parts' Unique ID. Reasons for not finding a built-in part's digital twin can be:
      1. There is a network failure while the data provider's is looking for the digital twin.
      2. The supplier did not yet create the digital twin, e.g., because its internal processes were delayed.
      3. The supplier is not yet part of the Catena-X network.
      Resilience means that the data provider implements a pipeline that can cope with these issues. Digital twins are provided with the information that is available and are updated once more information is available (e.g., the supplier provides digital twins for built-in parts later on). | + + + + + + + +## Building Block View + +This architecture overview only shows Catena-X Core Services that are directly accessed by Traceability components, e.g. the EDC is shown, but not the DAPS which is accessed by the EDC, but not directly by the Data Provisioning component. + +![Architecture - Level 1](assets/architecture_level_1.png) + +### Traceability Components + +| Subsystem | Description | +|:------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Data Provisioning | This component provides a company's data to the Catena-X network by transforming it into the Catena-X format and publishing it. In Catena-X, data must be provided to the network based on existing standards from the other Kits. One example that can be used is the Connector Kit that builds a component based on the DSP protocol, e.g. the Connector of the Eclipse Dataspace Components (EDC). As standard for digital twins, the Asset Administration Shell standard is used - this is relevant for registering digital twins (in the Digital Twin Registry) as well as for providing digital twin data. The data format used for Traceability data is based on the BAMM aspects models published in the Semantic Hub. | +| Traceability App | Enables traceability functionalities like quality alerts or notifications. When a Traceability App fetches data for digital twins (submodels), there are two options:
      • Directly access the partner's EDC and DTR to connect to other partner's EDC and retrieve the data from ther
      • Use a local IRS service to get the data and let the IRS handle the EDC and DTR communication.
      | +| Internal Systems | Existing internal systems of a Catena-X partner which provide data to Traceability components.
      • For Data Provisioning: The data provided to Catena-X via the EDC should be fetched from a partner's internal PLM and parts master data systems.
      • For Traceability Apps: A Traceability App may show more data to a user than just the data that is provided to Catena-X (and fetched via the Data Provisioning component). The business scope of COTS software is bigger than just Traceability and they have existing interfaces to fetch all data they need for their business functionality (and not only Traceability data).
      Both components can also send data back to internal systems. That's at the discretion of the Catena-X partner and neither required nor prohibited by the Traceability use case. | + +### Catena-X Core Services + +| Subsystem | Description | +|:-----------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Digital Twin Registry | The Digital Twin Registry acts as an address book for Digital Twins. Data Providers register their Digital Twins in their own Digital Twin Registry. Data consumers query the Digital Twin Registries to find Digital Twins and interact with them further. A Digital Twin contains endpoint references to Submodel endpoints. Calling a Submodel endpoint returns data compliant to a semantic model. A semantic model describes the data that a Submodel endpoint returns.

      [Repository of the Digital Twin Registry](https://github.com/eclipse-tractusx/sldt-digital-twin-registry). | +| Item Relationship Service (IRS) | The IRS is providing a technical API Endpoint in the Catena-X Network, which builds an item tree representation of given digital twins stored across the industry. Therefore it is a key component for the Network to provide data chains along the value chain in the industry.

      [Repository of the IRS](https://github.com/eclipse-tractusx/item-relationship-service). | +| Eclipse Dataspace Components (EDC) | The Connector of the Eclipse Dataspace Components provides a framework for sovereign, inter-organizational data exchange. It will implement the International Data Spaces standard as well as relevant protocols associated with GAIA-X. The connector is designed in an extensible way in order to support alternative protocols and integrate in various ecosystems.

      [Repository of the Catena-X specific EDC](https://github.com/eclipse-tractusx/tractusx-edc). | +| Discovery Service | The EDC / dataspace discovery interface is a CX network public available endpoint which can get used to retrieve EDC endpoints and the related BPNs, as well as search for endpoints via the BPN. | + +## Runtime View + +_Detail runtime views including specific sequence diagrams will follow in the near future._ + + +## Standards + +Our relevant standards can be downloaded from the official [Catena-X Standard Library](https://catena-x.net/de/standard-library): + +- [CX - 0018 Sovereign Data Exchange](https://catena-x.net/fileadmin/user_upload/Standard-Bibliothek/Update_September23/CX-0018-EclipseDataConnector_EDC_-v.2.0.1.pdf) +- [CX - 0019 Aspect Model: Serial Part](https://catena-x.net/fileadmin/user_upload/Standard-Bibliothek/Update_September23/CX-0019-AspectModelSerialPart-v2.0.0.pdf) +- [CX - 0020 Aspect Model: Single Level BoMAsBuilt](https://catena-x.net/fileadmin/user_upload/Standard-Bibliothek/Update_September23/CX-0020-AspectModelSingleLevelBoMAsBuilt-v.2.0.0.pdf) +- [CX - 0021 Aspect Model: Batch](https://catena-x.net/fileadmin/user_upload/Standard-Bibliothek/Update_PDF_Maerz/PLM_Quality_Use_Case_Traceability/CX_-_0021__Batch_UseCaseTraceability_v_1.0.1.pdf) +- [CX - 0022 Notification Process](https://catena-x.net/fileadmin/user_upload/Standard-Bibliothek/Update_PDF_Maerz/PLM_Quality_Use_Case_Traceability/CX_-_0022_Notification_Process_v_1.1.1.pdf) +- [CX - 0023 Notification API](https://catena-x.net/fileadmin/user_upload/Standard-Bibliothek/Update_September23/CX-0023-NotificationAPI-v1.2.2.pdf) +- [CX - 0042 Aspect Model: Single Level BomAsPlanned](https://catena-x.net/fileadmin/user_upload/Standard-Bibliothek/Update_September23/CX-0042-AspectModelSingleLevelBomAsPlanned-v1.1.2.pdf) +- [CX - 0043 Semantic Model: PartAsPlanned](https://catena-x.net/fileadmin/user_upload/Standard-Bibliothek/Update_PDF_Maerz/PLM_Quality_Use_Case_Traceability/CX_-_0043_Semantic_Model_PartAsPlanned_v_1.0.1.pdf) +- [CX - 0093 Aspect Model Traction Battery Code](https://catena-x.net/fileadmin/user_upload/Standard-Bibliothek/Update_September23/CX-0093-AspectModelTractionBatteryCode-v1.0.0.pdf) +- [CX - 0094 Aspect Model PartSiteInformationAsPlanned](https://catena-x.net/fileadmin/user_upload/Standard-Bibliothek/Update_September23/CX-0094-AspectModelPartSiteInformationAsPlanned-v1.0.0.pdf) + + + diff --git a/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/page_business_view.mdx b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/page_business_view.mdx new file mode 100644 index 00000000000..f307e1d5bba --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/page_business_view.mdx @@ -0,0 +1,106 @@ +--- +id: Business View Traceability Kit +title: Business View +description: 'Traceability Kit' +sidebar_position: 1 +--- + + + +import Notice from './part_notice.mdx' + +![Traceability kit banner](@site/static/img/doc-traceability_header-minified.png) + + +The following page offers a high level business view on the Traceability KIT with its vision, mission, benefits, business value, customer journey and examples in form of videos. + + +## Vision & Mission + +### Vision + +The aim of the Traceability KIT is to trace parts and materials across the entire value chain to enable data driven use cases over all n-tier levels without compromising data sovereignty. This KIT enables data and app providers to deliver solutions for building data chains and to send quality notifications on all levels and industries. + +### Mission + +The Traceability KIT provides the necessary standards, aspect models, APIs, logics, and processes on how to build a data sovereign data chain and send quality notifications. This is done via the standardized creation of digital twins of components and vehicles as well as the logical linking to their sub-components (Bill of Material, BoM). The default visibility of digital twins and their respective semantic models follows the one-up/one-down principle. This enables businesses to track and trace products, components, material, and software along the value chain for all product lifecycle stages. + +All described specifications in the KIT are based on Catena-X standards like Data Space Connector, Asset Administration Shell (AAS), and Digital Twin Registry (DTR). They refer to other Catena-X KITs like the Connector KIT (EDC), Data Chain KIT (Item Relation Ship, IRS) and Business Partner KIT to ensure interoperability and data sovereignty according to IDSA and Gaia-X principles. + +Furthermore, APIs and data models enable partners to send quality notifications in a standardized way while already knowing which parts of their direct customer and suppliers are affected and which are not. Moreover, the KIT is compatible with the data chain KIT to allow apps and business to traverse through the data chains over n-tier levels to enable further use cases like Circular Economy. + +In the current version, the KIT supports the creation of data chains for the life cycle contexts “as built” and “as planned”. Further lifecycle contexts, e.g., as maintained will be supported in the future. Overall, the KIT represents the backbone to build data chains for use cases based on vehicles and parts. It empowers app providers to develop a Catena-X Traceability application and data provider to implement their digital twins and the connection to their subcomponents themselves. + + + +## Business Value & Benefits +### Business Value +Through the standardized specifications described in the “Traceability-KIT” – for example the semantic models and APIs – application and service providers can reduce investment and implementation costs to integrate new Catena-X services. Furthermore, application and service providers can enter potential new markets within the PLM & Quality domain. Data Provider and Businesses are able to build data sovereign data chains to enable data driven use – also for other domains like sustainability. + +### Todays Challenge +From Traceability's perspective, the main challenge within the automotive industry is to define and implement inter-organizational end-to-end data chains across the whole automotive supply chain to empower data driven use cases. Details regarding the challenges are: + +- Missing standards to trace serialized and non-serialized hardware and software components. This includes the datatype, data format and data description (semantics) as well as the data exchange. The existing regulatory requirements that every company within the industry faces today are being solved with individual, proprietary solutions. + +- The digital maturity is diverging within the automotive industry. For bigger companies it is a challenge to receive overall structured data from multiple different suppliers on a broad scale. Smaller companies struggle to generate and provide those data in a fully digitized way. + +- Current solutions are either costly due to expensive distributed ledgers or cannot guarantee trust and data sovereignty based on the GAIA-X and IDSA principles including the regulation of access and usage policies regarding data chains. Therefore, no end-to-end data exchange and cooperation has been achieved as of today. + +### Benefits for OEM, SME and Solution Provider +#### OEM +For OEM and large automotive suppliers: The Traceability solution from Catena-X enables companies to identify products affected by a defect faster and more precisely and thus avoiding general and inaccurate recalls. Through this targeted containment, companies can save both time and money with fewer actions for their customers. Moreover, the Traceability solution enables businesses to rapidly identify the affected part and the corresponding supplier after receiving an alert from the customer. This leads to faster and, therefore, cheaper problem-solving for all parties and less complicated claim management. Furthermore, suppliers can prove compliance of their supply chain to upcoming regulations such as the Supply Chain Act. + +#### SME +The developed and simple-to-use Traceability solutions support SMEs in their mission to digitize the shop floor and communication with customers and suppliers. Today, in order to provide data to their customers and suppliers, SMEs are obligated to use several, proprietary B2B-interfaces from their customers. With Catena-X aiming to have only one digital interface for all customers and suppliers, it increases the ease of data exchange and saves IT resources. Furthermore, due to the Catena-X data sovereignty principles, all participants know what happens with their data. This increases trust in the data exchange. + +#### Solution Provider +Solution providers have the potential to scale customer groups and access new market potentials via marketplace and shared service network. + +## Customer Journey + +With the Traceability KIT, we support the Catena-X customer journey for our adopters and solutions providers. + +![Customer Journey](assets/traceability_customer-journey.png) + + + + + + +## Further Explanations + +### Example - Industry Problem +The KIT enables business to start Quality Investigations and send Quality Alerts in a standardized way while already knowing which parts of your direct customer and suppliers are affected and which are not. + +Through the introduction of unique Catena-X IDs, companies can register digital twins for vehicles, products, components, and raw materials and uniquely identify them within the whole Catena-X ecosystem. Building on that, it is possible to interconnect the registered digital twins of different companies to create a coherent automotive data chain from end-to-end. Furthermore, those twins can easily be complemented with further data like material information to enable further use cases like Circular Economy. + +### Video +The following video gives an overview of the presented Traceability Use Case. + + + + + + + + diff --git a/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/page_changelog.mdx b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/page_changelog.mdx new file mode 100644 index 00000000000..8d59480945e --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/page_changelog.mdx @@ -0,0 +1,157 @@ +--- +id: Traceability Kit Changelog +title: Changelog +description: 'Traceability Kit' +sidebar_position: 0 +--- + + + + +import Notice from './part_notice.mdx' + +![Traceability kit banner](@site/static/img/doc-traceability_header-minified.png) + +### Traceability KIT + +All notable changes to this Kit will be documented in this file. + +## [3.0.0] - 2023-11-29 + +Compatible for release 23.12. + +### Added + +- **Business View:** + - ./. +- **Architecture View:** + - Added assumptions and non-functional requirements for Traceability architecture +- **Operation View:** + - ./. +- **Development View:** + - **Data Provider:** + - Added a description of the purpose why `assetLifecylePhase` was added as specific asset ID + - **App Provider:** + - ./. + +### Changed + +- **General:** + - Restructure from adoption, operation and development view to business, architecture, operation and development view + - License KIT to CC-BY-4.0 +- **Business View:** + - ./. +- **Architecture View:** + - Update links to the latest versions of the Catena-X standards +- **Operation View:** + - ./. +- **Development View:** + - **Data Provider:** + - Updated aspect model SingleLevelBoMAsPlanned from version 1.1.0 to 2.0.0 + - Updated aspect model SingleLevelBomAsBuilt from version 1.0.0 to 2.0.0 + - Updated example for creation of the aspect model SingleLevelBomAsBuilt regarding version 2.0.0 + - Updated EDC asset props for unique ID push + - **App Provider:** + - ./. + +### Removed + +- **Business View:** + - ./. +- **Architecture View:** + - ./. +- **Operation View:** + - ./. +- **Development View:** + - **Data Provider:** + - ./. + - **App Provider:** + - ./. + +## [2.0.0] - 2023-09-28 + +Compatible for release 23.09 (also known as 3.2). + +### Added + +- **Adoption View:** + - TractionBatteryCode aspect model + - Information about Verifiable Credentials +- **Development View:** + - TractionBatteryCode aspect model + +### Changed + +- **General:** + - Updated all parts of the KIT related to the digital twin registry as the DTR now has a decentralized architecture + - Updated SerialPartTypization 1.1.1 to SerialPart 1.0.1 + - Updated AssemblyPartRelationship 1.1.1 to SingleLevelBomAsBuilt 1.0.0 + - Updated aspect model Batch from version 1.0.2 to 2.0.0 ([Release Notes](https://github.com/eclipse-tractusx/sldt-semantic-models/blob/main/io.catenax.batch/RELEASE_NOTES.md)) + - Fixed references to deprecated releases +- **Adoption View:** + - Updated description of the policy section (Access Policies, Usage Policies, Contract Definitions) + - Updated relevant standards for release 3.2 +- **Development View:** + - Updated documentation because of the migration to the new standard AAS v3.0 by the DTR + - Updated conventions for submodel descriptors and EDC asset structure to give data provides more flexibility in how to create EDC assets for submodels of digital twins + - Setting the visibility of entries in a digital twin's specifid asset IDs is now mandatory to ensure need-know + - Removed optional customer attributes from example for Batch aspect model + - Updated purpose for Unique ID Push notifications to be compliant to the framework agreement for Traceability + +### Removed + +- **Adoption View:** + - Policy payloads are removed and replaced by specific documentation links + +## [1.0.1] - 2023-04-14 + +Compatible for release 3.1. + +### Added + +- **Adoption View:** + - Traceability tutorial video + - Customer journey + +### Changed + +- ./. + +### Removed + +- ./. + +## [1.0.0] - 2023-04-12 + +Compatible for release 3.1. + +### Added + +- Initial version of the Kit including adoption, operation and development view + two API specifications (Notification API, Unique ID Push API) + +### Changed + +- ./. + +### Removed + +- ./. + + + diff --git a/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/page_software-operation-view.mdx b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/page_software-operation-view.mdx new file mode 100644 index 00000000000..5fe09f0fb9b --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/page_software-operation-view.mdx @@ -0,0 +1,48 @@ +--- +id: Operation View Traceability Kit +title: Operation View +description: 'Traceability Kit' +sidebar_position: 3 +--- + + + +import Notice from './part_notice.mdx' + +![Traceability kit banner](@site/static/img/doc-traceability_header-minified.png) + + +The following page offers information on how to operate and deploy a Traceability application. + +Based on the information provided in this KIT, it is possible to create and operate an own, custom +Traceability app. One open-source example is the **Trace-X app** in conjunction with the **Simple +Data Exchanger (SDE)** for data provisioning. For further information regarding +their usage, configuration and deployment, follow these resources: + +- [Trace-X Frontend GitHub Repository](https://github.com/eclipse-tractusx/traceability-foss) +- [Trace-X Backend GitHub Repository](https://github.com/eclipse-tractusx/traceability-foss) +- [Trace-X Installation Guide](https://github.com/eclipse-tractusx/traceability-foss/blob/main/frontend/INSTALL.md) +- [SDE Frontend GitHub Repository](https://github.com/eclipse-tractusx/dft-frontend) +- [SDE Backend GitHub Repository](https://github.com/eclipse-tractusx/dft-backend) + + + + diff --git a/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/part_notice.mdx b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/part_notice.mdx new file mode 100644 index 00000000000..093d879433d --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/Traceability Kit/part_notice.mdx @@ -0,0 +1,39 @@ +--- +sidebar_class_name: hidden +--- + + + +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2023 BASF SE +- SPDX-FileCopyrightText: 2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +- SPDX-FileCopyrightText: 2023 Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V. (represented by Fraunhofer ISST & Fraunhofer IML) +- SPDX-FileCopyrightText: 2023 German Edge Cloud GmbH & Co. KG +- SPDX-FileCopyrightText: 2023 Mercedes Benz AG +- SPDX-FileCopyrightText: 2023 Robert Bosch Manufacturing Solutions GmbH +- SPDX-FileCopyrightText: 2023 SAP SE +- SPDX-FileCopyrightText: 2023 Siemens AG +- SPDX-FileCopyrightText: 2023 T-Systems International GmbH +- SPDX-FileCopyrightText: 2023 ZF Friedrichshafen AG +- SPDX-FileCopyrightText: 2023 Contributors to the Eclipse Foundation +- Source URL: https://github.com/eclipse-tractusx/eclipse-tractusx.github.io/tree/main/docs-kits/kits/Traceability%20Kit (latest version) diff --git a/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/adoption-view/intro.md b/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/adoption-view/intro.md new file mode 100644 index 00000000000..219a4ec2f45 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/adoption-view/intro.md @@ -0,0 +1,211 @@ +--- +sidebar_position: 1 +title: Adoption View +--- +## Agents KIT + + + +![Agents Kit Banner](/img/knowledge-agents/AgentsKit-Icon.png) + +This document describes the foundations of the (Knowledge) Agents KIT (=Keep It Together). + +For more information see + +* [Architecture](../development-view/architecture) +* [Deployment & Conformity](../operation-view/deployment) + +### Vision & Mission + +#### Vision + +We want to specify a semantically-driven and state-of-the-art compute-to-data architecture for (not only) automotive use cases based on the best [GAIA-X](https://gaia-x.eu/), [W3C](https://www.w3.org/2001/sw/wiki/Main_Page) and [Big Data](https://en.wikipedia.org/wiki/Big_data) practices. + +[![Agent-Oriented Dataspace](/img/knowledge-agents/dataspace_agent_small.png)](/img/knowledge-agents/dataspace_agent.png) + +#### Mission + +##### Specifications + +We compose specifications for invoking and performing semantic computations (inferences or `skills`) based on normalized and linked data representations (`knowledge graph` described as RDF triples) over the `dataspace`. + +Leveraging existing standards such as [IDS](https://internationaldataspaces.org/), [RDF](https://www.w3.org/2001/sw/wiki/RDF), [SparQL](https://www.w3.org/2001/sw/wiki/SPARQL), [OWL](https://www.w3.org/2001/sw/wiki/OWL), [SHACL](https://www.w3.org/2001/sw/wiki/SHACL) & [EClass](https://eclass.eu/), linked data and corresponding skills may be provisioned, consumed, federated and visualised across the complete dataspace (technically) and hence the complete supply chain (business-wise). + +Skills can be described in tractable sub-languages of well-known declarative syntaxes, such as [SparQL](https://www.w3.org/2001/sw/wiki/SPARQL) (in the future maybe also: [GraphQL](https://en.wikipedia.org/wiki/GraphQL) and [SQL](https://en.wikipedia.org/wiki/SQL)). + +##### Implementations + +We provide open-source reference implementations of these standards to Tractus-X in particular extending the [Connector KIT](../../tractusx-edc/docs/kit/adoption-view/Adoption%20View) + +These components are called [`agents`](https://en.wikipedia.org/wiki/Software_agent)) because they (semi-)actively negotiate and collaborate with each other (via so-called graph and skill assets) over the dataspace in order to derive higher-level semantic knowledge from the plain, isolated data. + +Knowledge agents introduce an ecosystem of efficient services (for data handling, compute, skill orchestration and frontend components) where an optimal matchmaking between those services needs to be reached. + +##### Support + +We support use case consumers, app developers, data providers, service providers and IT/domain consultants in order to operate as economically and well-informed as possible by giving them first-class tools, documentation and feedback. + +##### Technology Bridges + +We define bridges to other digital twin approaches, such as AAS (Asset Administration Shell), such that data and service provisioning into multiple use cases will be as effortless as possible. + +### Business Value + +The Agents KIT is the best fit for use case and applications which +- do not focus on exchanging/analyzing static assets between two peers in the supply chain, but instead require crawling over a whole dynamic branch of the supply tree. +- do not focus on gaining predefined schemas of digital twins, but need to perform complex search and aggregations over both catalog and assets. +- require rapidly changing and extensible logic that should reuse existing assets which have already been built for other use cases. +- need to securely extract & aggregate knowledge from large amounts of assets and/or large assets. + +As a dataspace participant, adopting the Agents KIT will +- allow you to easily bind your own data and services into the relevant use cases and applications +- give you the means to integrate your company-internal data sources with the dataspace as one big knowledge graph + +The following advantages play an important role. + +#### Widespread Standard + +##### Isn't this a proprietary approach? + +The underlying [API](https://en.wikipedia.org/wiki/API), protocols, standards and technologies are first-class citizens of the official [Gaia-X](https://gaia-x.eu/what-is-gaia-x/deliverables/data-spaces/) & [W3C Semantic Web](https://www.w3.org/standards/semanticweb/) portfolio. +These techs have been already adopted globally for a plethora of domains, use cases and derived (Open Source & commercial) projects. +Using these approaches will give you a competitive advantage which is even independent of the concrete dataspace instance/application that you are targeting at. + +#### No Redundancy + +##### Is this a replacement to the existing Aspect Meta Model (BAMM/SAMM) & Asset Administration Shell (AAS) approach? + +Agent technology is a complement that means that both approaches can be deployed in co-existance. + +There will be some use cases (large interconnected datasets, ad-hoc querying, inference of derived knowledge) which enfavour the knowledge agents approach, others (simple access to already identified remote twins) will more adequately stay with the BAMM/SAMM & AAS approach. + +For the data providers, it will be easy to mount their artifacts (files, data source partitions, backend interfaces) under both types of assets (submodels, graphs). We provide [bridging technology](../development-view/aas/bridge) for that purpose. + +For the app developers it will be easy to use both [SDK](https://en.wikipedia.org/wiki/Software_development_kit)s over a single consumer connector and even interchange the identifiers/[IRI](https://en.wikipedia.org/wiki/Internationalized_Resource_Identifier)s. + +For the modellers, there is only a loose coupling between a protocol-independent, inference-agnostic data format description, such as BAMM/SAMM, and a protocol-binding, but data-format independent inference/semantic model, such as OWL-R. We expect tools to generate at least the latter from ubiquitous Excel/Tabular specifications. We could also imagine a kind of OWL-R to BAMM/SAMM embedding (but not vice versa) once this is needed by a use case. + +#### Enhanced Security + +##### Isn't it inherently insecure to let arbitrary Dataspace tenants invoke ad-hoc computations in my backend? + +First, these are not arbitrary tenants, but access is only given to business partners with whom you have signed contracts (and who appear in certain roles there). +A Skill request from a non-authorized chain of computation would not be able to enter your backend at all. + +Furthermore, you would not expose your backend directly, but rather introduce a [virtualization layer](../development-view/architecture) between the Agent and your data source. This introduces another (role-based) security domain by appropriate sub-schemas and filters. So different contracts can be mapped to different security principals/data views in the backend. + +We do not introduce arbitrary (turing-equivalent, hence undecidable) ad-hoc computations, but the [SPARQL](../development-view/sparql) standard introduces a well-defined set of operations whose effects and consequences can be checked and validated in advance (hypervision). + +Finally, we are investigating a form of differential privacy which introduces noise between your data source and its graph representation such that original values can be effectively hidden from the reporting output. + +#### Easy Deployment + +##### Doesn't this impose additional burdens to the dataspace participants? + +For data consumers, there is virtually nothing to do. All they have to care for is to add an Agent-Enabled data plane to their connector (or even use our Agent Plane as a fully-blown replacement for the Http/AmazonS3 standard of Tractus-X). + +For smaller data and skill providers, there will be the possibility to host non-critical data directly through the storage facilities of the Agent Plane. + +For all others, they will employ techniques for data virtualization anyway to scale and shield their critical data. That is where the binding agents as one additional container/layer that is declaratively described (not: programmatically) come into play. + +#### Great Scalability + +##### How could such a scheme be efficient at all + +Our technology has been thoroughly developed, tested and piloted over the years 2022 and 2023. One key component is the ability of any Agent to delegate +a part of its work to other Business Partners/Agents and hence to bring the computations close to the actual data. This delegation pattern has several very nice properties: + +* Delegation is dynamic based on the supply chain(s) that are described in the actual data. So the actual computation chain optimizes with the data. +* Delegation is parallelized in the sense that several suppliers are requested simultaneously. Latency is hence minimized. +* Delegation may be opaque from the consumer view if contracts require so. + +### Use Cases + +[![Dataspace Roles](/img/knowledge-agents/dataspace_roles_small.png)](/img/knowledge-agents/dataspace_roles.png) + +The Agents KIT is the basis for other, use-case specific Agent-enabled KITs, services and applications, such as the [Behaviour Twin Remaining Useful Life (RUL Kit](/docs-kits/kits/Behaviour%20Twin%20RuL%20Kit/Adoption%20View%20Remaining%20Useful%20Life%20Kit) + +We distinguish between Dataspace Participants and other parties (who support the Dataspace Participants). + +#### Dataspace Participants + +The following stakeholders should [deploy](../operation-view/deployment) modules/artifacts of the Agents Kit. +In particular, each Dataspace Participant needs an [Agent-Enabled Connector](../operation-view/agent_edc). + +##### Consumer + +Any party who wants to use data and logic using Agent Technology (for example by employing Agent-Enabled Applications or Services), such as a Recycling Company or a Fleet Manager + +##### Provider + +We distinguish Providers whether they want to publish data or logic using Agent Technology + +###### Data Provider + +Any party who provides data (for example by a backend database or other Agent-enabled Applications or Services), for example an Automotive OEM (original equipment manufacturer) + +###### Function Provider + +Any party who provides proprietary functions (for example by a [REST](https://en.wikipedia.org/wiki/Representational_state_transfer) endpoint or other Agent-enabled Applications or Services), for example a Tier1 Sensor Device Supplier + +###### Skill (=Compute) Provider + +Any party who provides compute resources and/or procedural logic (for example by a server or other Agent-enabled Applications or Services), for example a Recycling Software Specialist + +###### Core Service Provider + +Any party offering ontology models (semantic/ontology hub) or federated catalogues, for example an Operating Company + +#### Additional Stakeholders + +The following stakeholders should [interface or implement](../development-view/architecture) modules of the Agents Kit. + +##### Business Developer + +Any party who publishes an Application, Standard or KIT based on Agent Technology on behalf of a Dataspace Participant (e.g. a Fleet Monitor, an Incident Reporting Solution, a Telematics KIT) + +##### Enablement Service Developer + +Any party who offers ready-made artifacts, packages and managed services assisting Dataspace Participants/Applications to process data using Agent technology (e.g. a Graph Database, a Virtual Graph Binding Engine, an EDC Package) + +### Catena-X Standards + +The concrete choices for how the data graphs are to be constructed (using the [Resource Description Framework](https://www.w3.org/RDF/)), how Skills are to be interpreted (using the [SPARQL](https://www.w3.org/TR/sparql11-query/) language) and which vocabulary should be applied by both approaches (using the [Web Ontology Language](https://www.w3.org/OWL/) (OWL)) is subject of the following two [Catena-X e.V. Standards](https://catena-x.net/de/standard-library): + +- [CX-0084 Federated Queries in Dataspaces (V1.1.0 Upcoming)](https://catena-x.net/de/standard-library) +- [CX-0084 Federated Queries in Dataspaces (V1.0.0 Superseded)](https://catena-x.net/fileadmin/user_upload/Standard-Bibliothek/Update_September_2023/CX-0084-FederatedQueriesInDataSpaces-v1.0.0.pdf) +- [CX-0067 Ontology Models to Realize Federated Queries in Catena-X (V1.0.0 Upcoming)](https://catena-x.net/de/standard-library) + +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2021,2023 T-Systems International GmbH +- SPDX-FileCopyrightText: 2021,2023 Mercedes-Benz AG +- SPDX-FileCopyrightText: 2022,2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +- SPDX-FileCopyrightText: 2021,2023 ZF Friedrichshafen AG +- SPDX-FileCopyrightText: 2021,2023 SAP SE +- SPDX-FileCopyrightText: 2022,2023 Contributors to the Eclipse Foundation diff --git a/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/development-view/Arc42.md b/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/development-view/Arc42.md new file mode 100644 index 00000000000..b256dc4603d --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/development-view/Arc42.md @@ -0,0 +1,171 @@ +--- +sidebar_position: 7 +title: Detailed Architecture +--- + + +### Agents KIT + +![Agents Kit Banner](/img/knowledge-agents/AgentsKit-Icon.png) + +This document describes the detailed Architecture of the (Knowledge) Agents KIT (=Keep It Together) based on ARC42 recommendations. + +For more information see + +* Our [Adoption](../adoption-view/intro) guideline +* The [High-Level](architecture) architecture +* An [API](api) specification +* The [Layers & Modules](modules) Architecture +* Our [Reference Implementation](reference) +* The [Deployment](../operation-view/deployment) guide + +## Introduction and Goals + +The main objective concerning the approach described in this section is to create a state-of-the-art compute-to-data architecture for automotive use cases (and beyond) based on standards and best practices around GAIA-X and W3C. To reach this aim, full semantic integration, search and query with focus on relations between entities and data sovereignty is focused. In contrast to a simple file-based data transfer, this shifts the responsibility for the access, authorization to the data and processing of the data from the application development to the provider and hence ultimately, the actual owner of the data. To achieve this aim, the Knowledge Agent standard shall achieve the following abilities: + +* the ability to define well-formed and composable computations/scripts (skills) which operate over various assets of various business partners. +* the ability to invoke and dynamically distribute these (sub-)skills over the relevant partners/connectors using an extensible agent interface. +* the ability to safely provide data and service assets via appropriate agent implementations which "bind" the skill to the backend execution engines (rather than mapping data). +* the ability for an agent/connector/business partner to decide + * whether to hide particular data and computations inside a sub-skill + * whether to delegate/federate particular computations/sub-skills to other agents + * whether to migrate or clone an agent/asset from a partner +* the ability to describe data and service assets as well as appropriate federation policies in the IDS vocabulary in order to allow for a dynamic matchmaking of skills and agents. +* the ability to define domain/use case-based ontologies which form the vocabulary used in the skill definitions. +* the ability to visualize and develop the ontologies and skills in appropriate SDKs and User Experience components. + +See also the KIT [Introduction](../adoption-view/intro) section and The [High-Level Architecture](architecture). + +## Constraints + +The Knowledge Agents Architecture is based on the Catena-X Dataspace Architecture with a specific focus on the Eclipse Dataspace Connector (EDC). It integrates with Catena-X Portal/Core Services & Identity Management principles and supports the typical interaction models as required by Catena-X Use Cases, such as + +* Traceability with Focus on Low-Volume Bills-Of-Material Data and Deep Supply Chains with One-Up and One-Down Visibility +* Behaviour Twin with Focus on High-Volume Telematics Data and Flat and Trustful Supply Chain   + +Furthermore, on the vocabulary/script level it utilizes and extends well-defined profiles of W3C Semantic Web Standards, such as OWL, RDF, SHACL, SPARQL. + +## Context and Scope + +The standard is relevant for the following roles: + +* Business Application Provider +* Enablement Service Provider +* Data Consumer +* Data Provider + +The following Catena-X stakeholders are affected by Knowledge Agent approach + +* **Business Application Provider:** Applications that use KA technology on behalf of a Dataspace Participant (e.g. a Fleet Monitor, an Incident Reporting Solution). + +* **Enablement Service Provider:** Services to assist Dataspace Participants/Applications in processing data based on KA technology (e.g. a Graph Database, a Virtual Graph Binding Engine, an EDC Package). +As a second path, Companies are addressed that want to provide compute resources (for example by a server or other KA-enabled Applications or Services) based on instances/configurations of KA-enabled EDC Packages, for example a Recycling Software Specialist + +* **Data Consumer:** Companies that want to use data and logic (for example by KA-enabled Applications or Services) based on instances/configurations of KA-enabled EDC Packages, such as a Recycling Company or a Tier-2 Automotive Supplier +* **Data Provider:** Companies that want to provide data (for example by a backend database or other KA-enabled Applications or Services) based on instances/configurations of KA-enabled EDC Packages, for example an Automotive OEM. Companies that want to provide functions (for example by a REST endpoint or other KA-enabled Applications or Services) based on instances/configurations of KA-enabled EDC Packages, for example a Tier1 Sensor Device Supplier + +Content-wise the following capabilities of Catena-X are addressed: + +* Query and Search (Basic Mechanism, Integration in User Experiences) +* Services for making use of various federated data sources being part of a data space (Data & Function Provisioning, Logic Development & Provisioning) +* Semantic Modelling +* Publishing, Negotiation, Transfer Protocols and Policy Enforcement via IDS (EDC) connector + +## Solution Strategy + +Knowledge Agents regards the peer-to-peer Dataspace as one large (virtual) knowledge graph. + +A graph, because the representation of data as a set of Triples (Outgoing-Node = Subject, Edge = Predicate, Receiving-Node = Object) is the highest form of normalization to which all other forms of structured data can be abstracted. + +Virtual, because this graph is not centrally instantiated in a dedicated database, but it is manifested by a computation (traversal) which jumps from node to node (and hereby: from the sovereignity domain of one business partner to the another one including taking over authentication and authorization information).   + +Knowledge because computations and graph contents are not arbitrary, but share common meta-data (again in the form of a graph interlinked with the actual instance graph) such that the vocabulary (at least: edge names) is standardized and computations can be formulated (offered) independent of the data. + +To reach that metaphor, the Knowledge Agents Architecture uses the following specifications, some of which are standard-relevant: + +* A general description language based on the Resource Description Framework (RDF) +* A Meta-Model defined by OWL-R +* A platform Ontology (consisting of several domain ontologies) as the Semantic Model +* A description of graphs (=graph assets) which contain instance data for the Semantic Model (or: use-case driven and role-driven subsets thereof) and which may be described as SHACL constraints +* A query language to traverse the graphs in SPARQL and store these queries as skills (=skill assets) in the database + +Non-standard relevant, but provided as a best practice/blueprint architecture are + +* Bindings for relational and functional data + * [R2RML](https://www.w3.org/TR/r2rml/) or OBDA (Ontology-Based Data Access ) for relational data + * [RDF4J](https://en.wikipedia.org/wiki/RDF4J)/SAIL (Storage And Inference Layer) configuration for REST remoting +* SQL- and REST-based Virtualizers which bridge public Dataspace Operations with internal/private backend systems/data sources. + + [![Example_Graph_Standards](/img/knowledge-agents/Example_Graph.jpg)](/img/knowledge-agents/Example_Graph.jpg) + +Knowledge Agents regards the peer-to-peer Dataspace as one large federated execution engine. + +Federation means distributed that is there is no central endpoint/resource which controls the computation, but the execution may be entered/triggered on any tenant and uses a scalable set of resources which are contributed by each participant. + +Federation means independent in that there is no central authentication/authorization regime, but the computation is validated, controled and (transparently) delegated by decentral policies as given/defined be each particpant. + +See also [High-Level Architecture](architecture). + +## Building Block View + +See chapter [Layers & Modules](modules) + +[![Architecture High-Level](/img/knowledge-agents/knowledge_agent_architecture_small.png)](/img/knowledge-agents/knowledge_agent_architecture.png) + + +## Runtime View + +[![Runtime View2](/img/knowledge-agents/Runtime_View3.png)](/img/knowledge-agents/Runtime_View3.png) + +Sequence of actions: + +1. A data provider provides a self description of the piece of knowledge he likes to provide including the terms of conditions in his own data catalogue + * Graph assets describe means of domain ontologies the + * node classes + * relations (edges between nodes) + * constraints on nodes and relations (temporal, value ranges, regex patterns, ...)  + * constraints on the queries/skills that may be executed on the graph (e.g. allowed and denied network connections) + * Graph policies will restrict the following operations on graphs (based on nodes and edges, given an execution context) + * selection + * traversion + * storage + * manipulation + * deletion + * delegation + (Although the diagram depicts only one single instance of the Federated Datacatalog, each EDC of each participant (Provider or Consumer) runs a Datacatalog instance. Beween those synchronisation takes place) +2. A data provider marks particular graph assets as being visible in the federated data catalog. The federated data catalogues of the federated companies/EDCs will be automatically synchronized. +3. Any consuming app can employ an agent with a suitable skill/query (which can be provided locally or as a remote asset, too) +4. The agent will match the requirements in the skill with the offers in the federated data catalog to fill in the endpoints and usage policies from the self descriptions. +5. Agreements (between XA (5.1), XC (5.2), eventually between AB (5.3)) have to be set up in such a way that the corresponding agents are allowed to communicate through the data plane. +6. The agent delegates a sub-query/sub-skill to the respective knowledge owners (data provider C: 6.1, A: 6.2 and B: 6.3) via an instance of EDC. It annotates the sub-queries with a call context containing the EDC/agent calling sequence and the other assets to be joined with the result data. 6.3 shows that an agent can decide to delegate further down the line +7. The data plane will validate the calling context together with the claims inside the agreement token. +8. The agent executes the actual query by mapping to a backend data system and finally providing the result to the app + +Just as the Federated Datacatalog is a multi-instance-synchronised component, also the Federated Trust is an instance running on each EDC. All Federated Trust instances are synchronised with each other within the referring EDC ecosystem. +## Deployment View + +See chapter [Deployment](../operation-view/deployment). + +(C) 2021,2023 Contributors to the Eclipse Foundation. SPDX-License-Identifier: CC-BY-4.0 diff --git a/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/development-view/api.md b/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/development-view/api.md new file mode 100644 index 00000000000..e22e763391d --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/development-view/api.md @@ -0,0 +1,290 @@ +--- +sidebar_position: 1 +title: API +--- + + +The Agent API is designed along the [W3C SPARQL 1.1](https://www.w3.org/TR/sparql11-query/) +specification. It represents the core interface of the [Catena-X Knowledge Agents (CX KA) +Architecture](architecture) to enable federated (i.e. distributed, but independent) and sovereign +(i.e. collaborative, but controlled and secured) data processing over GAIA-X/IDS dataspaces. + +For that purpose, this API is used in three different functions/building +blocks of CX KA: + +1. As a Consumer-facing entrypoint into the dataspace (the so-called + Matchmaking Agent). +2. As a Provider-facing callback from the dataspace into the backend + (the so-called Binding Agent). +3. As an intermediate Transfer protocol between "Sinks" representing SPARQL Remote + Service Contexts (=sub queries/routines) and the + corresponding "Sources" representing backend-bound SPARQL Graph Contexts. + These Sinks and Sources are to be implemented using the + EDC (Eclipse Dataspace Components) framework. + +For each of these three functions, a particular "profile" of this API +(here: a fragment or variant of the full-blown SPARQL 1.1 specification) +is employed: + +1. The KA-MATCH profile allows to call federated SPARQL logic as stored procedures + (so-called Skills) based on a rich set of meta-data (ontology) +2. The KA-BIND profile allows to delegate non-federated and data-focussed SPARQL sub-queries by compiling them into native backend API calls (e.g. in SQL or REST). +3. The KA-TRANSFER profile allows to wrap (and unwrap) well-defined header and + protocol information from SPARQL into the generic payload of the EDC Http transfer. + +This API is already designed with alternative query protocols (such as GRAPHQL +or Federated SQL) in mind. + +## Examples + +### Invoke a Locally-Stored Parameterized Skill (Simple) + +see the [AGENT GET](api/agent/getAgent) method specification + +```console +curl --location '${KA-MATCH}/agent?asset=urn%3Acx%3ASkill%3Aconsumer%3ALifetime&(vin=WBAAL31029PZ00001&troubleCode=P0746&troubleCode=P0745)&(vin=WBAAL31029PZ00002&troubleCode=P0744)&(vin=WBAAL31029PZ00003&troubleCode=P0743)' \ +--header 'Authorization: Basic ${UuencodedUsernameColonPassword}' +``` + +### Invoke a Dataspace-Stored Parameterized Skill (Flexible) + +see the [AGENT POST](api/agent/postAgent) method specification + +```console +curl --location '${KA-MATCH}/agent?asset=${EDC-BUSINESSPARTNER}%23urn%3Acx%3ASkill%3Aconsumer%3ALifetime' \ +--header 'Content-Type: application/sparql-results+json' \ +--header 'Authorization: Basic ${UuencodedUsernameColonPassword}' \ +--data '{ + "head": { + "vars": [ + "vin", + "troubleCode" + ] + }, + "results": { + "bindings": [ + { + "vin": { + "type": "literal", + "value": "WBAAL31029PZ00001" + }, + "troubleCode": { + "type": "literal", + "value": "P0746" + } + }, + { + "vin": { + "type": "literal", + "value": "WBAAL31029PZ00001" + }, + "troubleCode": { + "type": "literal", + "value": "P0745" + } + }, + { + "vin": { + "type": "literal", + "value": "WBAAL31029PZ00002" + }, + "troubleCode": { + "type": "literal", + "value": "P0744" + } + } + ] + } +}' +``` + +### Register a Parameterized Skill + +see the [AGENT SKILL POST](api/agent/skill/postSkill) method specification + +```console +curl --location '${KA-MATCH}/agent/skill?asset=urn%3Acx%3ASkill%3Aconsumer%3ALifetime' \ +--header 'Content-Type: application/sparql-query' \ +--header 'Authorization: Basic ${UuencodedUsernameColonPassword}' \ +--data-raw 'PREFIX xsd: +PREFIX rdf: +PREFIX rdfs: +PREFIX cx: + +############################################################################################ +# Catena-X Knowledge Agents Sample Federated Skill +# Realizes a 5-Step Business Process +# "Remaining Useful Life Prognosis based on Diagnosis TroubleCodes" +############################################################################################ +# Preconditions: +# - A Contract Offering from OEM (e.g. BMW) to CONSUMER (e.g. ADAC) +# - VIN-VAN Conversion +# - DTC Analysis/Resolution (including the READING of PartType and Description) +# - Serial Part & SUPPLIER Lookup +# - A Contract Offering from SUPPLIER (e.g. ZF) to OEM +# - Telematics data (including the PROPAGATION of LoadSpectrum) +# - RUL Prognosis Invocation (including the DISTRIBUTION of RUL results) +############################################################################################ + +#### +# 5. Project the actual output of the Skill on CONSUMER side +#### +SELECT ?van ?troubleCode ?description ?affectedPart ?distanceKm ?timeDays ?vin WHERE { + +#### +# 1. The CONSUMER detects a trouble code on a car in his fleet +#### +VALUES (?vin ?troubleCode) { ("@vin"^^xsd:string "@troubleCode"^^xsd:string) }. + +#### +# 2. The CONSUMER looks up the OEM (connector) associated to the VIN +# using the Federated Data Catalogue (Catalogue=Default Graph) +#### +?oem cx:isIssuerOfVehicleIdentificationNumber ?vin; + cx:hasConnector ?oemConnector. + +?oemConnector cx:offersAsset ?diagnoseAsset. +?diagnoseAsset rdf:type ; + rdfs:isDefinedBy . + +#### +# 3. The CONSUMER delegates the following logic to the OEM (connector) +#### +SERVICE ?oemConnector { + + #### + # 3.1 The OEM (e.g. BMW) anomyzes the VIN into an anomymous (VAN) node + #. and gets some master data with it + #### + ?van cx:isAnonymousVehicle ?vin; + cx:hasRegistration ?registration. + + #### + # 3.2 The OEM analyzes the DTC-affected part type (Diagnosis Graph) + #### + GRAPH ?diagnoseAsset { + + ?Dtc rdf:type cx:DTC; + cx:Code ?troubleCode; + cx:affects [ cx:EnDenomination ?partType ]; + cx:Description ?description. + + } # OEM#Diagnosis context + + #### + # 3.3 The OEM obtains fresh telematics/load-spectrum data for the vehicle + # focussed to the problematic partType (Telematics Graph) + #### + ?van cx:latestMileageReceived ?mileage; + cx:latestDetailReceived ?telematicsDetail. + ?telematicsDetail cx:hasPartType ?partType; + cx:hasLoadSpectrum ?loadSpectrum. + + #### + # 3.4 The OEM looks up the serialized part of the VAN (Traceability Graph) + # and the supplier address in the dataspace + #### + ?serializedPart cx:isComponentOf+ ?van; + cx:hasPartType ?partType; + cx:hasName ?affectedPart; + cx:hasSupplier [ + cx:hasConnector ?tieraConnector + ]. + + ?tieraConnector cx:offersAsset ?prognosisAsset. + ?prognosisAsset rdfs:isDefinedBy . + + #### + # 4. The OEM (and not the CONSUMER) delegates to the SUPPLIER (connector) + # which means that load spectrum data etc is only exchanged using their + # contract and between their connectors. + #### + SERVICE ?tieraConnector { + + #### + # 4.1 The SUPPLIER adds additional measurement information + #### + ?telematicsDetail cx:hasFile ?loadSpectrumFile; + cx:hasHeader ?loadSpectrumHeader. + + #### + # 4.2 The SUPPLIER invokes a prognosis model associated the part type using the load-spectrum data + #### + GRAPH ?prognosisAsset { + + ?invocation rdf:type cx:LifetimePrognosis; + + # <--General vehicle info + cx:loadCollectiveMileage ?mileage; + cx:loadCollectiveRegistrationDate ?registration; + + # <--Part Info from the OEM + cx:loadCollectiveComponent ?affectedPart; + cx:loadCollectiveBody ?loadSpectrum; + + # <--Additional info from the SUPPLIER + cx:loadCollectiveFile ?loadSpectrumFile; + cx:loadCollectiveHeader ?loadSpectrumHeader; + + # -->the actual prognosis output + cx:remainingDistance ?distanceKm; + cx:remainingTime ?timeDays. + + } # SUPPLIER#Prognosis context + + } # SUPPLIER context + +} # OEM context + + # now we do reporting/operationalising on the CONSUMER side +} ORDER BY ?remainingDistance LIMIT 5' +``` + +### Invoke an Ad-hoc Query + +see the [AGENT POST](api/agent/postAgent) method specification + +```console +curl --location '${KA-BIND}/agent' \ +--header 'Content-Type: application/sparql-query' \ +--header 'Authorization: Basic ${UuencodedUsernameColonPassword}' \ +--data-raw 'PREFIX xsd: +PREFIX rdf: +PREFIX rdfs: +PREFIX cx: + +# Sample Graph Context that is Delegated/Instantiated to a Binding Agent Call +SELECT ?partType ?description WHERE { + VALUES (?troubleCode) { ("P0745"^^xsd:string) ("P0746"^^xsd:string) }. + + ?Dtc rdf:type cx:DTC; + cx:Code ?troubleCode; + cx:affects [ cx:EnDenomination ?partType ]; + cx:Description ?description. + +} +``` + +(C) 2021,2023 Contributors to the Eclipse Foundation. SPDX-License-Identifier: CC-BY-4.0 diff --git a/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/development-view/api/agent/get.mdx b/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/development-view/api/agent/get.mdx new file mode 100644 index 00000000000..d39deb1b14f --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/development-view/api/agent/get.mdx @@ -0,0 +1,203 @@ +--- +id: getAgent +title: Invoke a Skill or Query (Simple) +slug: agent-get +--- + +``` +GET /agent +``` + +**Invoke a Skill or Query (Simple): ** + +## Parameters + +| name | in | type | required | description | +| ----------- | ----- | ------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| asset | query | string | false | The Target Asset of the Query (targets the complete dataspace if empty) | +| runMode | query | string | false | Determines the preferred execution location which may be "consumer" (in the computing environment of the endpoint agent), "provider" (in the computing environment of the remote agent providing the targetted asset) or "all" (the agent will choose the best computing environment based on contracts and policies, this is the default mode). | +| queryLn | query | string | false | Determines the query language. Currently only "SPARQL" is supported. | +| query | query | string | false | The SPARQL query | +| (vin | query | string | false | A sample bound parameter 'vin' which opens a new input tuple | +| troubleCode | query | array | false | A sample multi-bound parameter 'troubleCode' which closes the tuple | + +## Code Snippets + +```shell title="Shell + Curl" +curl --request GET \ + --url 'https://knowledge.dev.demo.catena-x.net/consumer-edc-data/BPNL00000003CQI9/api/agent?asset=SOME_STRING_VALUE&runMode=SOME_STRING_VALUE&queryLn=SOME_STRING_VALUE&query=SOME_STRING_VALUE&(vin=SOME_STRING_VALUE&troubleCode=SOME_ARRAY_VALUE' +``` + +## Responses + +### 200 + +The SparQL query has been processed successfully. + +| Headers | | +| ------------ | ------------------------------- | +| content-type | application/sparql-results+json | + +**Example `response` for `application/sparql-results+json`** + +```json +{} +``` + +| Headers | | +| ------------ | ------------------------------ | +| content-type | application/sparql-results+xml | + +**Example `response` for `application/sparql-results+xml`** + +```xml + + + + + string + + + + + + string + string + string + + + + +``` + +| Headers | | +| ------------ | -------- | +| content-type | text/csv | + +**Example `response` for `text/csv`** + +```json +"\"subject\",\"predicate\",\"object\"\n\"foo\",\"meets\",\"bar\"\n\"one\",\"meets\",\"two\"" +``` + +| Headers | | +| ------------ | ------------------------- | +| content-type | text/tab-separated-values | + +**Example `response` for `text/tab-separated-values`** + +```json +"?subject ?predicate ?object" +``` + +| Headers | | +| ------------ | -------------------------------------- | +| content-type | application/x-binary-rdf-results-table | + +**Example `response` for `application/x-binary-rdf-results-table`** + +```json +"string" +``` + +### 203 + +The SparQL query has been processed successfully but warnings did occur. + +| Headers | | +| ------------ | ------------------------------- | +| content-type | application/sparql-results+json | + +**Example `response` for `application/sparql-results+json`** + +```json +{} +``` + +| Headers | | +| ------------ | ------------------------------ | +| content-type | application/sparql-results+xml | + +**Example `response` for `application/sparql-results+xml`** + +```xml + + + + + string + + + + + + string + string + string + + + + +``` + +| Headers | | +| ------------ | -------- | +| content-type | text/csv | + +**Example `response` for `text/csv`** + +```json +"\"subject\",\"predicate\",\"object\"\n\"foo\",\"meets\",\"bar\"\n\"one\",\"meets\",\"two\"" +``` + +| Headers | | +| ------------ | ------------------------- | +| content-type | text/tab-separated-values | + +**Example `response` for `text/tab-separated-values`** + +```json +"?subject ?predicate ?object" +``` + +| Headers | | +| ------------ | -------------------------------------- | +| content-type | application/x-binary-rdf-results-table | + +**Example `response` for `application/x-binary-rdf-results-table`** + +```json +"string" +``` + +### 400 + +Bad request or malformed SPARQL + +### 500 + +Fatal error + +(C) 2021,2023 Contributors to the Eclipse Foundation. SPDX-License-Identifier: CC-BY-4.0 diff --git a/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/development-view/api/agent/post.mdx b/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/development-view/api/agent/post.mdx new file mode 100644 index 00000000000..6854ee572a1 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/development-view/api/agent/post.mdx @@ -0,0 +1,246 @@ +--- +id: postAgent +title: Invoke a Skill or Query (Flexible) +slug: agent-post +--- + +``` +POST /agent +``` + +**Invoke a Skill or Query (Flexible): ** + +## Parameters + +| name | in | type | required | description | +| ----------- | ----- | ------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| asset | query | string | false | The Target Asset of the Query (targets the complete dataspace if empty) | +| runMode | query | string | false | Determines the preferred execution location which may be "consumer" (in the computing environment of the endpoint agent), "provider" (in the computing environment of the remote agent providing the targetted asset) or "all" (the agent will choose the best computing environment based on contracts and policies, this is the default mode). | +| queryLn | query | string | false | Determines the query language. Currently only "SPARQL" is supported. | +| query | query | string | false | The SPARQL query (in case that the body contains a tuple set) | +| (vin | query | string | false | A sample bound parameter 'vin' which opens a new input tuple | +| troubleCode | query | array | false | A sample multi-bound parameter 'troubleCode' which closes the tuple | + +## Request Body + +| Headers | | +| ------------ | ------------------------------- | +| content-type | application/sparql-results+json | + +```json title="Example request" +{} +``` + +| Headers | | +| ------------ | ------------------------------ | +| content-type | application/sparql-results+xml | + +```title="Example request"xml + + + + + string + + + + + + string + string + string + + + + +``` + +| Headers | | +| ------------ | ------------------------ | +| content-type | application/sparql-query | + +```json title="Example request" +"string" +``` + +## Code Snippets + +```shell title="Shell + Curl" +curl --request POST \ + --url 'https://knowledge.dev.demo.catena-x.net/consumer-edc-data/BPNL00000003CQI9/api/agent?asset=SOME_STRING_VALUE&runMode=SOME_STRING_VALUE&queryLn=SOME_STRING_VALUE&query=SOME_STRING_VALUE&(vin=SOME_STRING_VALUE&troubleCode=SOME_ARRAY_VALUE' \ + --header 'content-type: application/sparql-query' +``` + +## Responses + +### 200 + +The SparQL query has been processed successfully. + +| Headers | | +| ------------ | ------------------------------- | +| content-type | application/sparql-results+json | + +**Example `response` for `application/sparql-results+json`** + +```json +{} +``` + +| Headers | | +| ------------ | ------------------------------ | +| content-type | application/sparql-results+xml | + +**Example `response` for `application/sparql-results+xml`** + +```xml + + + + + string + + + + + + string + string + string + + + + +``` + +| Headers | | +| ------------ | -------- | +| content-type | text/csv | + +**Example `response` for `text/csv`** + +```json +"\"subject\",\"predicate\",\"object\"\n\"foo\",\"meets\",\"bar\"\n\"one\",\"meets\",\"two\"" +``` + +| Headers | | +| ------------ | ------------------------- | +| content-type | text/tab-separated-values | + +**Example `response` for `text/tab-separated-values`** + +```json +"?subject ?predicate ?object" +``` + +| Headers | | +| ------------ | -------------------------------------- | +| content-type | application/x-binary-rdf-results-table | + +**Example `response` for `application/x-binary-rdf-results-table`** + +```json +"string" +``` + +### 203 + +The SparQL query has been processed successfully but warnings did occur. + +| Headers | | +| ------------ | ------------------------------- | +| content-type | application/sparql-results+json | + +**Example `response` for `application/sparql-results+json`** + +```json +{} +``` + +| Headers | | +| ------------ | ------------------------------ | +| content-type | application/sparql-results+xml | + +**Example `response` for `application/sparql-results+xml`** + +```xml + + + + + string + + + + + + string + string + string + + + + +``` + +| Headers | | +| ------------ | -------- | +| content-type | text/csv | + +**Example `response` for `text/csv`** + +```json +"\"subject\",\"predicate\",\"object\"\n\"foo\",\"meets\",\"bar\"\n\"one\",\"meets\",\"two\"" +``` + +| Headers | | +| ------------ | ------------------------- | +| content-type | text/tab-separated-values | + +**Example `response` for `text/tab-separated-values`** + +```json +"?subject ?predicate ?object" +``` + +| Headers | | +| ------------ | -------------------------------------- | +| content-type | application/x-binary-rdf-results-table | + +**Example `response` for `application/x-binary-rdf-results-table`** + +```json +"string" +``` + +### 400 + +Bad request or malformed SPARQL + +### 500 + +Fatal error + +(C) 2021,2023 Contributors to the Eclipse Foundation. SPDX-License-Identifier: CC-BY-4.0 diff --git a/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/development-view/api/agent/skill/post.mdx b/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/development-view/api/agent/skill/post.mdx new file mode 100644 index 00000000000..2ea712e3d9b --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/development-view/api/agent/skill/post.mdx @@ -0,0 +1,81 @@ +--- +id: postSkill +title: Register a Skill +slug: agent-skill-post +--- + +``` +POST /agent/skill +``` + +**Register a Skill: ** + +## Parameters + +| name | in | type | required | description | +| ---------------- | ----- | ------- | -------- | ----------------------------------------------------------------------- | +| asset | query | string | true | The Target Asset of the Query (targets the complete dataspace if empty) | +| distributionMode | query | string | false | The distribution mode under which to publish the skill | +| contract | query | string | false | The contract under which the skill should be published | +| isFederated | query | boolean | false | Whether the skill should be visible in the Federated Catalogue | +| ontology | query | string | false | Multiple references to ontologies which are referenced in the skill | + +## Request Body + +| Headers | | +| ------------ | ------------------------ | +| content-type | application/sparql-query | + +```json title="Example request" +"string" +``` + +## Code Snippets + +```shell title="Shell + Curl" +curl --request POST \ + --url 'https://knowledge.dev.demo.catena-x.net/consumer-edc-data/BPNL00000003CQI9/api/agent/skill?asset=SOME_STRING_VALUE&distributionMode=SOME_STRING_VALUE&contract=SOME_STRING_VALUE&isFederated=SOME_BOOLEAN_VALUE&ontology=SOME_STRING_VALUE' \ + --header 'content-type: application/sparql-query' +``` + +## Responses + +### 200 + +Skill has been registered + +### 204 + +Skill has been updated + +### 400 + +Bad request or malformed SPARQL + +### 500 + +Fatal error + +(C) 2021,2023 Contributors to the Eclipse Foundation. SPDX-License-Identifier: CC-BY-4.0 diff --git a/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/development-view/architecture.md b/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/development-view/architecture.md new file mode 100644 index 00000000000..46bc70c0cfe --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/development-view/architecture.md @@ -0,0 +1,121 @@ +--- +sidebar_position: 1 +title: High-Level Architecture +--- + + +### Agents KIT + +![Agents Kit Banner](/img/knowledge-agents/AgentsKit-Icon.png) + +This document describes the High-Level Architecture of the (Knowledge) Agents KIT (=Keep It Together). + +For more information see + +* Our [Adoption](../adoption-view/intro) guideline +* The [ARC42](Arc42) documentation +* An [API](api) specification +* The [Layers & Modules](modules) Architecture +* Our [Reference Implementation](reference) +* The [Deployment](../operation-view/deployment) guide + +## Compute-To-Data + +The main objective concerning the approach described in this section is to create a state-of-the-art compute-to-data architecture for automotive use cases (and beyond) based on standards and best practices around [GAIA-X](https://gaia-x.eu), [W3C](https://www.w3.org/) and [Big Data](https://en.wikipedia.org/wiki/Big_data). To reach this aim, full semantic integration, search and query with focus on relations between entities and data sovereignty is focused. In contrast to a simple file-based data transfer, this shifts the responsibility for the (I) access, (II) authorization to the data and (III) processing of the data from the application development to the provider and hence ultimately, the actual owner of the data. Figure 2 shows the high-level approach, introducing the most important concepts needed for the realization. + +[![Architecture Interaction](/img/knowledge-agents/architecture_small.png)](/img/knowledge-agents/architecture.png) + +### App + +The App in the figure serves the Consumer by gathering, analyzing, and presenting the knowledge about business questions such as: How much of a certain material can be found in a different vehicle series? It is assumed that the data which is needed to answer such questions is distributed over the network and cannot be found at one central place. + +### Skill + +To help collecting the data over the network, Skills are introduced. A Skill is a pre-formulated query (or: procedure) with limited scope such as: List all vehicle series that contain ?material produced in ?location. The Skill is used to access all federated data instances via the tenant (=authentication and authorization scope) of the caller. A skill receives input in the form of a data set [{?material:“Rubber”,?location:“Phuket”}] which drives the control flow, the filtering and aggregating of the information, and finally producing an output data set [{?series:<4711>,?oem:<OEM>,?weightKg:”3.2”},{?series:<0815>,?oem:<EMO>, ?weightKg:”1.4”}]}. + +### Semantic Model + +In order to obtain the correct results in a federated system, all the participants of the skill execution need to have common understanding (Semantic Model, in KA this is mechanized by a Federated Catalogue based on the Web Ontology Language OWL) over the vocabulary (Data Model, in KA this is represented generically by sets, i.e., graphs of Resource Description Framework RDF triples). Relying on these conventions, a Skill executor can calculate which Providers are able to contribute or yield the necessary information in which sequence such that the resulting distributed operation will be performant. + +### Matchmaking Agent + +This coordinating job is taken over by the Matchmaking Agent, an endpoint that is mandatory for any KA-enabled Dataspace Participant. For that purpose, the Matchmaking Agent supports the [SPARQL](https://en.wikipedia.org/wiki/SPARQL) specification with the effect that the dataspace can be traversed as one large data structure. Hereby, the Consumer-Side Matchmaking Agent will – as driven by the builtin federation features of SPARQL - interact with the KA-enabled EDC in order to negotiate and perform the transfer of Sub-Skills (=SPARQL Contexts) to other Dataspace Participants. See the [Knowledge Agents SPARQL API](api) for detailed information. + +### Binding Agent + +In turn, upon successful transfer of the Sub-Skill, the Provider-Side Matchmaking Agent(s) will be activated by their respective EDC. Prior to such a success, the Provider EDC of course first needs to offer a so-called Graph Asset: Graph Assets are a variant of ordinary Data Assets in the Catena-X EDC Standard; while Data Asset typically refer to an actual backend system (e.g., an Blob in an ObjectStorey, an AAS server, a REST endpoint), Graph Assets introduce another intermediary instance, the so-called Binding Agent. + +Simply put, the Binding Agent is a restricted version of the Matchmaking Agent (subset of OWL/SPARQL, e.g., without federation) which is just focused on translating Sub-Skils of a particular business domain (Bill-Of-Material, Chemical Materials, Production Sites, etc.) into proper SQL- or REST based backend system calls. This scheme has several advantages: + +* For different types of backend systems, business domains and usage scenarios, different Binding Agent implementations (Caching Graph Store, SQL Binding Engine, REST Binding Engine) can be switched-in without affecting both the shared dataspace/semantic model and the mostly immutable backend systems/data models as well. +* Access to the backend systems can be optimized by JIT compilation technology. +* The same backend system/data model can be used in various Graph Assets/Use Cases und different roles and policies. +* Access to the backend system is decoupled by another layer of security, such that additional types of policies (role-based row-level and attribute-level access) can be implemented in the interplay of Matchmaking and Binding Agents. +* There is a clear distinction between advanced graph operations (including type inference and transitive/recursive traversal also via EDC) on the Matchmaking Level and efficient, but more restricted and secure graph operations on the Binding/Data Level. + +### Federated Catalogue + +As mentioned earlier, essential for the realization of the idea is the creation, governance and discoverability of a well-defined semantic catalogue, which forms together with the data a Federated Knowledge Graph. In this context, the definition of a Knowledge Graph (KG) as "a multi relational graph composed of entities and relations which are regarded as nodes and different types of edges, respectively" is extended with aspect of federation. We see a Federated KG as a KG where entities and relations reside physically distributed over multiple systems connected through a network and a common query language. We see semantic metadata as structural information to scope the entities and relations of the KG based on ontological principles. This is the agreement, necessary for the successful interplay of the distributed parties within the data space. + +## Abilities + +To summarize, the Knowledge Agent standard shall achieve the following abilities: + +* the ability to define well-formed and composable computations/scripts (skills) which operate over various assets of various business partners. +* the ability to invoke and dynamically distribute these (sub-)skills over the relevant partners/connectors using an extensible agent interface. +* the ability to safely provide data and service assets via appropriate agent implementations which "bind" the skill to the backend execution engines (rather than mapping data). +* the ability for an agent/connector/business partner to decide + * whether to hide particular data and computations inside a sub-skill + * whether to delegate/federate particular computations/sub-skills to other agents + * whether to migrate or clone an agent/asset from a partner +* the ability to describe data and service assets as well as appropriate federation policies in the IDS vocabulary in order to allow for a dynamic matchmaking of skills and agents. +* the ability to define domain/use case-based ontologies which form the vocabulary used in the skill definitions. +* the ability to visualize and develop the ontologies and skills in appropriate SDKs and User Experience components. + +With these abilities, the Knowledge Agent standard provides the following value propositions: + +## Democratization of added value service design for data spaces + +Currently, the development of full-scale Apps to address use cases for cross-company exchange requires a lot of development effort. By proceeding this way, addressing new business problems or fast prototyping of solution ideas are not straightforward to achieve. Thus, the idea of a fast-growing ecosystems based on data exchange between companies is at risk. KA introduces Skills as a new concept to support query of data spaces with small effort. A new Skill can be developed in few days in comparison to weeks or months for app development. In this context it is aimed that data consumers are able to create skills by themselves based on their very specific business demand. + +[![Architecture Modules and Parties](/img/knowledge-agents/modules_roles_small.png)](/img/knowledge-agents/modules_roles.png) + +In addition, a third party in addition to Consumer and (Data, Function) Provider can be imagined: The Skill provider (see Figure 3). Similar to an App Provider, the Skill Provider develops queries to address various business problems. Developed Skills can be offered as Skill Assets over the dataspace and in the Marketplace, quite similar to the existing Services and Apps. + +It is also possible to combine Skill and App development (by using Skills as stored procedures in the App framework). By following this approach App developers can concentrate on frontend optimization and usability of the app while the skills deliver the business relevant information. + +## Custom Search + +Based on the skill concept, mighty search functionalities can be realized by utilizing the KA approach. SPARQL is already a common standard to browse large data catalogues (e.g. Wikidata). By utilizing this principle, it becomes possible to search for objects which are unknown at the beginning of the search (similar to Google). This advantage is important since comparable twin-based approaches for the semantic layer require a specific ID to find an object. + +## Scalability for data consumers + +Utilization of dataspaces for exchanging complex product- or production data usually involves transfer of large datasets. If for example an automotive OEM wants to access information of their car fleets ranging from hundreds to millions of cars, the dataspace still needs to provide required data in short time without risking too much load on the network. Thus, the outlined approach is based on efficient federated SPARQL queries which only transport computation results across the network in contrast to full datasets (compute to data). Further potentials for streamlining performance are for example parallelized EDC contract negotiations and efficient delegations between suppliers. + +## Data Sovereignty + +One of the key requirements for dataspaces is to guarantee that data is only shared willingly and subject to specific terms and conditions of respective data providers. One core component to support definition and negotiation of contracts and policies is the Eclipse Dataspace Connector (EDC). Nevertheless, the way how data is processed via a semantic layer also contributes to data sovereignty. KA follows a strict compute to data approach. Thus, by design only computation results are shared instead of copying all data relevant for this computation (e.g. submit only weight information instead of geometry and material information). Furthermore, by utilizing data models based on ontologies definition of access rights can be made up to a high level of granularity (attribute level). + +(C) 2021,2023 Contributors to the Eclipse Foundation. SPDX-License-Identifier: CC-BY-4.0 diff --git a/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/development-view/modules.md b/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/development-view/modules.md new file mode 100644 index 00000000000..74e2ca17ddb --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/development-view/modules.md @@ -0,0 +1,306 @@ +--- +sidebar_position: 1 +title: Layers & Modules +--- + +This chapter gives an overview how the Agent standard and Kit should be implemented in terms of layers and modules. + +For more information see + +* Our [Adoption](../adoption-view/intro) guideline +* The [High-Level Architecture](architecture) +* The [ARC42](Arc42) documentation +* An [API](api) specification +* Our [Reference Implementation](reference) +* The [Deployment](../operation-view/deployment) guide + +In this context generic building blocks were defined (see next figure) which can be implemented with different open source or [COTS](https://en.wikipedia.org/wiki/Commercial_off-the-shelf) solutions. In the scope of Catena-X project these building blocks are instantiated with a reference implementation based on open source components (the Knowledge Agents KIT). The detailed architecture following this reference implementation can be found here: . + +[![Architecture High-Level](/img/knowledge-agents/layer_architecture_small.png)](/img/knowledge-agents/layer_architecture.png) + +In the following paragraphs, all building blocks relevant for this standard are introduced: + +## Semantic Models + +Ontologies, as defined by W3C Web Ontology Language OWL 2 () standard, provide the core of the KA catalogue. By offering rich semantic modelling possibilities, they contribute to a common understanding of existing concepts and their relations across the data space participants. To increase practical applicability, this standard contains an overview about most important concepts and best practices for ontology modelling relevant for the KA approach (see chapter 5). OWL comes with several interpretation profiles () for different types of applications. For model checking and data validation (not part of this standard), we propose the Rule Logic (RL) profile. For query answering/data processing (part of this standard), we apply the Existential Logic (EL) profile (on the Dataspace Layer) and the Query Logic (QL) profile (on the Binding Layer). + +### Ontology Editing & Visualization + +To create and visualize ontology models, dedicated tooling is advised. For this purpose, various open source tools (e.g. Protegé) or commercial products (e.g. metaphacts) are available. We hence standardize on the ubiquitous RDF Terse Triple Language TTL () format which is furthermore able to divide/merge large ontologies into/from modular domain ontology files. + +### Ontology Management + +To achieve model governance, a dedicated solution for ontology management is necessary. Key function is to give an overview about available models and their respective meta data and life cycle (e.g. in work, released, deprecated). Because of the big parallels, it is today best practice to perform ontology management through modern and collaborative source code versioning systems. The de-facto standard in this regard is GIT (in particular: its http/s protocol variant, including an anonymous read-only raw file access to release branches). In the following, we call the merged domain ontology files in a release branch “the” (shared) Semantic Model (of that release). For practicability purposes, the Data Consumption and the Binding Layer could be equipped with only use-case and role-specific excerpts of that Semantic Model. While this may affect the results of model checking and validity profiles, it will not affect the query/data processing results. + +## Data Consumption Layer/Query Definition + +This layer comprises all applications which utilize provided data and functions of business partners to achieve a direct business impact and frameworks which simplify the development of these applications. Thus, this layer focuses on using a released Semantic Model (or a use-case/role-specific excerpt thereof) as a vocabulary to build flexible queries (Skills) and integrating these Skills in data consuming apps. + +We rely on SPARQL 1.1 specification () as a language and protocol to search for and process data across different business partners. As a part of this specification, we support the QUERY RESULTS JSON () and the QUERY RESULTS XML () formats to represent both the answer sets generated by SPARQL skills and the sets of input parameters that a SPARQL skill should be applied to. For answer sets, additional formats such as the QUERY RESULTS CSV and TSV () format may be supported. Required is the ability to store and invoke SPARQL queries as parameterized procedures in the dataspace; this is a KA-specific extension to the SPARQL endpoint and is captured a concise [Openapi specification](api). Also part of that specification is an extended response behaviour which introduces the warning status code “203” and a response header “cx_warning” bound to a JSON structure that lists abnormal events or trace information that appeared during the processing. + +### Skill Framework + +Consumer/Client-side component, which is connected to the consumer dataspace components (the Matchmaking Agent via SPARQL, optionally: the EDC via the Data Management API). It is at least multi-user capable (can switch/lookup identities of the logged-in user), if not multi-tenant capable (can switch Matchmaking Agents and hence ED Connectors). It looks up references to Skills in the Dataspace and delegates their execution to the Matchmaking Agent. The Skill framework may maintain a “conversational state” per user (contextual memory which is a kind of graph/data set) which drives the workflow. It may also help to define, validate and maintain Skills in the underlying Dataspace Layer. + +### Query/Skill Editor + +To systematically build and maintain Skills, a query editor for easy construction and debugging queries is advisable. The skill editor should support syntax highlighting for the query language itself and it may support auto-complete based on the Semantic Model. A skill editor could also have a graphical model in which a procedure can be composed out of pre-defined blocks. Finally, a skill editor should have the ability to test-drive the execution of a skill (maybe without storing/publishing the skill and making any “serious” contract agreements in the dataspace and based on sample data). + +### Data Consuming App + +Application that utilizes data of data providers to deliver added value to the user (e.g. CO2 footprint calculation tool). Skills can be easily integrated in these apps as stored procedure. Hence, skill and app development can be decoupled to increase efficiency of the app development process. For more flexible needs, Skills could be generated ad-hoc from templates based on the business logic and app data. The Data Consuming App could integrate a Skill Framework to encapsulate the interaction with the Dataspace Layer. The Consuming App could also integrate a Query/Skill Editor for expert users. + +## Dataspace Layer + +The base Dataspace-building technology is the Eclipse Dataspace Connector (EDC) which should be extended to operate as a HTTP/S contracting & transfer facility for the SPARQL-speaking Matchmaking Agent. To resolve dataspace offers and addresses using the ontological vocabulary, the Matchmaking Agent keeps a default meta-graph, the Federated Catalogue, that is used to host the Semantic Model and that is regularly synchronized with the relevant dataspace information including the offers of surrounding business partners/EDCs. + +[![Dataspace Layer](/img/knowledge-agents/dataspace_layer_small.png)](/img/knowledge-agents/dataspace_layer.png) + +### EDC + +Actually, the Eclipse Dataspace Connector (see Catena-X Standard CX-00001) consists of two components, one of which needs to be extended. +See the [Tractus-X Knowledge Agents EDC Extensions (KA-EDC)](https://github.com/eclipse-tractusx/knowledge-agents-edc) and their [KA-EDC Deployment](../operation-view/agent_edc) + +#### Control Plane + +The Control Plane hosts the actual management/negotiation engine and is usually a singleton that is exposing + +- an internal (api-key secured) API for managing the control plane by administrative accounts/apps and the Matchmaking Agent + - Manages Assets (=Internal Addresses including security and other contextual information into the Binding/Virtualization/Backend Layers together with External meta-data/properties of the Assets for discovery and self-description) + - Manages Policies (=Conditions regarding the validity of Asset negotiations and interactions) + - Manages Contract Definitions (=Offers are combinations of Assets and Policies and are used to build up a Catalogue) +- a public (SSI-secured) Protocol API for coordination with other control planes of other business partners to setup transfer routings between the data planes. + - state machines for monitoring (data) transfer processes which are actually executed by the (multiple, scalable) data plane(s). KA uses the standard “HttpProxy” transfer. + - a validation engine which currently operates on static tokens/claims which are extracted from the transfer flow but may be extended with additional properties in order to check additional runtime information in the form of properties +- callback triggers for announcing transfer endpoints to the data plane to external applications, such as the Matchmaking Agent (or other direct EDC clients, frameworks and applications). We want to support multiple Matchmaking Agent instances per EDC for load-balancing purposes and we also like to allow for a bridged operation with other non-KA use cases, so it should be possible to configure several endpoint callback listeners per control plane. + +#### Data Plane + +The Data Plane (multiple instances) performs the actual data transfer tasks as instrumented by the control plane. The data plane exposes transfer-specific capabilities (Sinks and Sources) to adapt the actual endpoint/asset protocols (in the EDC standard: the asset type). + +Graph Assets use the asset type/data source “urn:cx:Protocol:w3c:Http#SPARQL”. In their address part, the following properties are supported + +| Data Address Property | Description | +|-----------------------------------------------|--------------------------------------------------------------------------------------------------| +| @type | must be set to "DataAddress" | +| type | Must be set to "cx-common:Protocol?w3c:http:SPARQL" | +| id | The name under which the Graph will be offered. Should be a proper IRI/URN, such as GraphAsset?oem=BehaviourTwin | +| baseUrl | The endpoint URL of the binding agent (see below). Should be a proper http/s SPARQL endpoint. | +| proxyPath | must be set to “false” | +| proxyMethod | must be set to “true” | +| proxyQueryParams | must be set to “true” | +| proxyBody | must be set to “true” | +| authKey | optional authentication header, e.g. “X-Api-Key” | +| authCode | optional authentication value, such as an API key | +| header:Accepts | optional fixes the Accepts header forwarded to the endpoint, e.g., “application/sparql-results+json” | +| cx-common:allowServicePattern | an optional regular expression that overrides the default service URL allowance (white list) for this asset | +| cx-common:denyServicePattern | an optionaal regular expression that overrides the default service URL denial (black list) for this asset | + +Skill Assets use the asset type/data source “urn:cx:Protocol:w3c:Http#SKILL”. In their address part, the following properties are supported + +| DataAddress Property | Description | +|-----------------------------------------------|--------------------------------------------------------------------------------------------------| +| @type | must be set to "DataAddress" | +| type | Must be set to "cx-common:Protocol?w3c:http:SKILL" | +| id | The name under which the Skill will be offered. Should be a proper IRI/URN, such as SkillAsset?supplier=RemainingUsefulLife | +| baseUrl | The endpoint URL of the binding agent (see below). Should be a proper http/s SPARQL endpoint. | +| proxyPath | must be set to “false” | +| proxyMethod | must be set to “true” | +| proxyQueryParams | must be set to “true” | +| proxyBody | must be set to “true” | + +Both Skill and Graph Assets share public properties + +| Public Property | Description | +|-----------------------------------------------|--------------------------------------------------------------------------------------------------| +| @type | must be set to "Asset" | +| @id | The name under which the Skill/Graph will be offered. Should coincide with the "id" in the DataAddress | +| properties.name | Title of the asset in the default language (English). | +| properties.name@de | Title of the asset in German (or other languages accordingly). | +| properties.description | Description of the asset in the default language (English) | +| properties.description@de | Description of the asset in German (or other languages accordingly). | +| properties.version | A version IRI | +| properties.contenttype | "application/json, application/xml" for Graph Assets, "application/sparql-query, application/json, application/xml" for Skill Assets | +| properties.rdf:type | "cx-common:GraphAssetAsset" for graph Assets, "cx-common:SkillAsset" for Skill Assets | +| properties.rdfs:isDefinedBy | An RDF description listing the Use case ontologies that this asset belongs to, e.g., “<https://w3id.org/catenax/ontology/core>" | +| properties.cx-common:implementsProtocol | should be set to “<urn:cx:Protocol:w3c:Http#SPARQL>” for Graph Assets, “<urn:cx:Protocol:w3c:Http#SKILL>” for Skill Assets | +| properties.cx-common:isFederated | Whether this asset will be automatically synchronized (and is hence inferrable) in the federated data catalogue | + +Graph Assets have the following public properties + +| Public Property | Description | +|-----------------------------------------------|--------------------------------------------------------------------------------------------------| +| properties.sh:shapesGraph | A turtle string describing the shape of the offered Graph Asset in the SHACL constraint language. | + +Skill Assets have the following public properties + +| Public Property | Description | +|-----------------------------------------------|--------------------------------------------------------------------------------------------------| +| properties.cx-common:distributionMode | Determines where the SKILL is actually executed; "cx-common:SkillDistribution?run=provider" needs to be executed at the provider (agent/EDC). "cx-common:SkillDistribution?run=consumer" needs to be execute at the consumer (agent/EDC), "cx-common:SkillDistribution?run=all" allows both executions. | + +Skill Assets have the following private properties + +| Private Property | Description | +|-----------------------------------------------|--------------------------------------------------------------------------------------------------| +| privateProperties.cx-common:query | A SPARQL string implementing the skill. | + +For both Graph and Skill Assets, appropriate Sink and Source implementations have to be registered which operate just as the standard HttpSink and HttpSource, but cater for some additional peculiarities. In particular, the “AgentSource” +- will detunnel all protocol-specific information from the HttpProxy call (headers wrapped as parameters etc., see the standard). +- may parse the query and validate the given data address using additional runtime information from the query, the header, the parameters and extended policies with the help of the extended control plane. +- rewrites the resulting SPARQL query parameter/body by replacing any occurrence of the Asset-URI “GRAPH ” with the actual URL of the asset baseUrl (SERVICE ). +- may rewrite the query using the “sh:shape” property of the GraphAsset in order to enforce particular constraints. +- finally delegate the resulting call to the Matchmaking Agent. + +### Matchmaking Agent + +This component which is the first stage of SPARQL processing serves several purposes. It operates as the main invocation point to the Data Consuming Layer. It operates as the main bridging point between incoming EDC transfers (from an “Agent Source”) and the underlying Binding Layer. And it implements federation by delegating any outgoing SERVICE/GRAPH contexts to the EDC. The Matchmaking Agent + +* Should perform a realm-mapping from the tenant domain (Authentication Scheme, such as API-Key and Oauth2) into the dataspace domain (EDC tokens) +* Should use the EDC management API in order to negotiate outgoing “HttpProxy” transfers. It may use parallelism and asynchronity to perform multiple such calls simultaneously. It will wrap any inbound “Accept” header requirements as an additional “cx_accept” parameter to the transfer sink. +* Should operate as a endpoint callback listener, such that the setup transfers can invoke the data plane +* Uses and Maintains the Federated Catalogue as an RDF store. +* Should be able to access Binding Agents by means of “SERVICE” contexts in the SPARQL standard. Hereby, the Matchmaking Agent should be able to restrict the type of sub-queries that are forwarded. For practicability purposes, Binding Agents need only support a subset of SPARQL and OWL (no embedded GRAPH/SERVICE contexts, no transitive closures and inversion, no object variables in rdf:type, no owl:sameAs lookups, …). + +Since EDC and Matchmaking Agent are bidirectionally coupled, implementations could merge Data Plane and Matchmaking Agent into a single package, the so-called Agent Plane. Agent Planes and ordinary Data Planes can co-exist due to our design choices. + +### Federated Catalogue + +The Federated Catalogue is an RDF data storage facility for the Matchmaking Agent. It could be an in-memory triple store (that is restored via downloading TTL and configuration files upon restart) or an ordinary relational database that has been adapted to fit to the chosen Matchmaking Agent implementation. One example of such an interface is the [RDF4J SAIL](https://rdf4j.org/documentation/reference/sail/) compliant to all RDF4J based SPARQL engines. + +The Federated Catalogue should initially download the complete Semantic Model that has been released for the target environment. It should also contain a list of business partners and their roles which form the surrounding dataspace neighborhood of the tenant. For that purpose, It could use GPDM (Business Partner Data Management) and Self-Description Hub services in order to lookup EDC addresses and additional domain information (sites, geo addresses). It should then be frequently updated with “live” information by invoking the EDC data management API to regularly obtain catalogue information. + +The portion of the Semantic Model describing these meta-data (Business Partners, Sites, Addresses, Use Cases, Use Case Roles, Connectors & Assets) is called the Common domain ontology and is mandatory for all releases/excerpts of the Semantic Model (). + +## Virtualization Layer (Non-Standard Relevant) + +The data virtualization layer fulfills the function of making the company +internal, department-hosted data available for cross-company data exchange +scenarios, e.g. via data lakes, data warehouses or other enterprise +middleware. + +Instead of connecting each and every backend system separately to +an published data source/sink (such as provided by Catena-X) it often makes +sense to have this additional layer on top of backend systems +which orchestrates data demand and supply across the systems. + +Depending on company IT architecture different technologies can be used +to build up this layer. + +### ETL/Data Lakes + +In this scenario data from connected backend systems is stored in a central repository, such as in a Data Lake or central Data Warehouse scenario. Here, different kinds of raw data can be stored, processed, and combined to new data sets, while still being centrally available for any access. Synchronization between backends and data lake is achieved via ETL processes. + +### API Gateway + +This approach offers users a unified and technically abstract view for querying and manipulating data across a range of disparate sources. As such, it can be used to create virtualized and integrated views of data in memory rather than executing data movement and physically storing integrated views. + +## Binding Layer + +Finally, the missing link between the Dataspace Layer and the Virtualization Layer is the Binding Layer. Hereby rather than mapping the data between different formats (e.g. Data Tables in CSV Format to and from Data Graphs in the TTL format) which is a mostly resource-consuming data transformation process, binding rather rewrites the actual queries (e.g. SPARQL into SQL, SPARQL into GraphQL or REST). In order to make this query rewriting not too complicated, a restricted subset of SPARQL is envisaged. + +See the [Tractus-X Knowledge Agents Reference Implementations (KA-RI)](https://github.com/eclipse-tractusx/knowledge-agents) and their [KA-RI Deployment](../operation-view/provider) + +### Virtual Knowledge Graph + +A Virtual Knowledge Graph has the aim to make the content of relational databases accessable as a virtual knowledge graph. Virtual in this context means that the data itself remains in the relational database. Furthermore, this building block provides the function to translate SPARQL to SQL queries (e.g. via R2RML mappings in TTL). + +### Functional Remoting + +The Functional Remoting building block allows translation of SPARQL queries to specific API calls, e.g. to trigger a certain computation function. Function Binding is described in a special RDF4J TTL configuration. + +### Graph Database + +A graph database stores a pre-mapped Knowledge Graph in a dedicated RDF store. It can be combined with a Virtual Knowledge Graph in order to cache frequent accesses to the Virtualization Layer. + +### AAS Bridge(s) + +These are virtualization components which bridge between the [Semantic Web](https://www.w3.org/standards/semanticweb/) technology of +Knowledge Agents with the [Industrial Digital Twin Association's](https://industrialdigitaltwin.org/) +[Asset Administration Shell (AAS)](https://industrialdigitaltwin.org/wp-content/uploads/2023/04/IDTA-01002-3-0_SpecificationAssetAdministrationShell_Part2_API.pdf) +standard. + +Actually, we are talking about two bridges, one which bridges AAS information that is described in Catena-X aspect schemas +into the Catena-X domain ontologies (the AAS-KA Bridge). And one bridge which is able to emulate +shells and submodels out of a given (federated) virtual graph. + +[![AAS Bridge(s)](/img/knowledge-agents/aas_bridge_small.png)](/img/knowledge-agents/aas_bridge.png) + +As the result, we are able to provide both SPARQL-based Graph Assets as well as AAS-based Submodel Assets based on the same +data sources. + +This integration does not aim to solve the fundamental challenge of conflicting data formats on the meta-model level but +maps only a subset of the domain-models between the Knowledge-Graph- and AAS-world. This is true for either direction: The +native submodel template/aspect model must be mapped to a subset of the Catena-X-Ontology manually. Likewise, only that part +of the graph can be exposed via the AAS-APIs that has mapper implementing the transformation. + +#### AAS->KA Bridge + +Special form of virtualization component which denormalizes/flattens & caches the often hierarchical +information (Shells, Submodels, Submodel Elements) stored in backend AAS servers in order to make it +accessible for ad-hoc querying. + +There are two main components whose interplay implements the AAS-KA bridge: + +* A flexible SQL/JSON engine, such as Dremio or in parts also Postgresql which is able to mount raw data in various +formats from remote filesystems and APIs. This engine is used to build flat relational views onto a hierarchical +json structure that may originate in the value-only-serialization of the AAS. Typically there will be one table/view +per json-schema/submodel template. As an example, see these [scripts](https://github.com/catenax-ng/product-knowledge/tree/main/infrastructure/resources/dremio) +* A graph engine (such as [ontop](https://ontop-vkg.org/guide/) ) that is able to bind/translate SPARQL queries into SQL. As an example, see these [bindings](https://github.com/catenax-ng/product-knowledge/tree/main/infrastructure/oem/resources/trace.obda) + +Of course, if the data is available in a native SQL-schema, the SQL/JSON-engine can be omitted. Likewise, even the graph engine +can be left out if a sparql-capable database holds its data in conformance to the CX-ontologies. + +#### KA->AAS Bridge + +In order to form a twin-based, highly-standarized access to any graphTo allow for a more strict +In order to form a graph-based, flexible access to AAS backend components, we +employ a bridge virtualization module which denormalizes/caches the information +inside Shells and Submodels. + +Exposing substructures of the distributed knowledge graph via the AAS APIs is possible by deploying the [KA-AAS-Bridge](https://github.com/eclipse-tractusx/knowledge-agents-aas-bridge). This generic tool can be used to expose the graphs structures as AAS by configuring a set of mappings. Each consists of two components + +* a SPARQL query extracting "flat" information out of the virtual graph +* a mapping configuration providing the basic structure of the target AAS + +These two components must be closely coordinated with each other. The query is executed against an internal +SPARQL-endpoint configured by the data provider. Its response (XML) is then digested by the [aas4j-transformation-library](https://github.com/eclipse-aas4j/aas4j-transformation-library) +and transformed into AAS-native structures. This is executed at runtime whenever a request hits the AAS-APIs of the bridge so +that the ground truth remains in the RDF-graph (or the persistence it was virtualized from, see above). [FAAAST framework](https://github.com/FraunhoferIOSB/FAAAST-Service/) provides +the AAS-tooling required for the implementation of all relevant AAS-APIs. The library ships with four default mappings for +Traceability-related Aspect-Models but is not restricted to these. Details on the KA-AAS-bridge's deployment can (soon) be found in [its documentation](https://github.com/eclipse-tractusx/knowledge-agents-aas-bridge/blob/main/README.md). + +## Backend Systems (Non-Standard Relevant) + +(Legacy, Non-Dataspace) IT landscape of data space participants consisting of various backend systems, such as PLM, ERP, ObjectStores mostly located in the Enterprise Intranet and hosted/goverened by the business departments. +Here, the actual data sources of all Catena-X participants is originated +where they are served using custom, but mission-critical business or +technological APIs in specific, transaction-oriented formats. + +### AAS Servers and Databases + +As a special case of backend systems, we also regard existing AAS servers and databases as valid data sources +to form a semantic dataspace. + +(C) 2021,2023 Contributors to the Eclipse Foundation. SPDX-License-Identifier: CC-BY-4.0 diff --git a/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/development-view/reference.md b/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/development-view/reference.md new file mode 100644 index 00000000000..29d15d62ff5 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/development-view/reference.md @@ -0,0 +1,77 @@ +--- +sidebar_position: 1 +title: Reference Implementation +--- + +This document describes the Reference Implementation of Agents Standard and Kit. + +For more information see + +* Our [Adoption](../adoption-view/intro) guideline +* The [Layers & Modules](modules) Architecture +* Our [Build](build) instructions +* The [Deployment](../operation-view/deployment) guide + +## High Level Architecture + +[![Architecture High-Level](/img/knowledge-agents/knowledge_agent_architecture_small.png)](/img/knowledge-agents/knowledge_agent_architecture.png) + +## Technology Stack + +* Provider-Side Programming Language: Java > 12 + * Eclipse Dataspace Connector + * Provider Agent: OnTop + * Inference Agent: Fuseki + * Function Agent: RDF4J + * SPARQL-AAS Bridge: FAAAST +* Consumer-Side Programming Language: Typescript + * Skill Framework: React/Redux + * Knowledge Explorer: React/Redux & Catena-X Portal + * Skill Development Environment: React/Redux & Catena-X Portal + +## Sources And Artifacts + +### Tractus-X Knowledge Agents EDC Extensions (KA-EDC) + +see the [Tractus-X Repository](https://github.com/eclipse-tractusx/knowledge-agents-edc) and its [KA-EDC Deployment](../operation-view/agent_edc) + +### Tractus-X Knowledge Agents Reference Implementations (KA-RI) + +see the [Tractus-X Repository](https://github.com/eclipse-tractusx/knowledge-agents) and its [KA-RI Deployment](../operation-view/provider) + +### Tractus-X Knowledge Agents AAS Bridge (KA-AAS) + +see the [Tractus-X Repository](https://github.com/eclipse-tractusx/knowledge-agents-aas-bridge) and its [KA-AAS Deployment](../operation-view/bridge) + +## Contact & Further Reading + + For more information see + +* Our [Adoption](../adoption-view/intro) guideline +* The [Layers & Modules](modules) Architecture +* Our [Build](build) instructions +* The [Deployment](../operation-view/deployment) guide + +(C) 2021,2023 Contributors to the Eclipse Foundation. SPDX-License-Identifier: CC-BY-4.0 diff --git a/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/operation-view/agent_edc.md b/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/operation-view/agent_edc.md new file mode 100644 index 00000000000..89e44339046 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/operation-view/agent_edc.md @@ -0,0 +1,366 @@ +--- +sidebar_position: 2 +title: Agent-Enabled Dataspace Connector +--- + + +For participating in Semantic-Web Driven Dataspace Applications following the Catena-X Knowledge Agents Standard, we recommend deploying an [Agent-Enabled Tractus-X EDC](https://github.com/eclipse-tractusx/knowledge-agents-edc/tree/main/docs/README.md) + +For more information see + +* Our [Adoption](../adoption-view/intro) guidelines +* The [Implementation](../development-view/architecture) documentation +* The [Deployment](deployment) overview +* The [Conformity](testbed) testbed +* A [Data Sovereignity & Graph Policy](policy) discussion + +### Quick Setup Guide for Agent-Enabled EDC (KA-EDC) + +Add a helm dependency to your umbrella/infrastructure Chart.yaml (this example uses the postgresql-hashicorp variant but abstracts away from vault and SSI settings - *vaultsettings and *ssisettings as well as the persistence config, see [here](https://github.com/eclipse-tractusx/knowledge-agents-edc/tree/main/docs/README.md) for more options and full details). + +```yaml + - name: agent-connector + repository: https://eclipse-tractusx.github.io/charts/dev + version: 1.10.15 + alias: my-agent-connector +``` + +Then configure the connector in the values.yaml + +```yaml +my-agent-connector: + participant: + id: {{MYBPNL}} + nameOverride: my-agent-connector + fullnameOverride: "my-agent-connector" + vault: *vaultsettings + controlplane: + image: + pullPolicy: Always + ssi: *ssisettings + endpoints: + management: + authKey: "{{EDC_API_KEY}}" + ## Ingress declaration to expose the network service. + ingresses: + - enabled: true + # -- The hostname to be used to precisely map incoming traffic onto the underlying network service + hostname: "{{controlPlaneName}}" + # -- EDC endpoints exposed by this ingress resource + endpoints: + - protocol + - management + - control + # -- Enables TLS on the ingress resource + tls: + enabled: true + dataplanes: + dataplane: + configs: + dataspace.ttl: |- + ################################################ + # Catena-X Agent Bootstrap + ################################################ + @prefix : . + @prefix cx-core: . + @prefix cx-common: . + @prefix rdf: . + @prefix xsd: . + @prefix bpnl: . + @base . + + bpnl:{{PARTNERBPNL}} cx-common:hasBusinessPartnerNumber "{{PARTNERBPNL}}"^^xsd:string; + cx-common:hasConnector . + + bpnl:{{MYBPNL}} cx-common:hasBusinessPartnerNumber "MYBPNL"^^xsd:string; + cx-common:hasConnector . + agent: + synchronization: 60000 + connectors: + - [https://{{controlPlaneName}}]https://{{partnerControlPlanePublic}} + + ## Ingress declaration to expose the network service. + ingresses: + - enabled: true + hostname: "{{agentPlaneName}}" + # -- EDC endpoints exposed by this ingress resource + endpoints: + - public + - default + - control + - callback + # -- Enables TLS on the ingress resource + tls: + enabled: true +``` + +### Quick Setup Guide for Registering A Skill + +We demonstrate the steps by interacting with the EDC Control Plane Management API and the EDC Data Plane Agent Endpoint + +#### Register A Skill Policy + +```console +curl --location --globoff '{{controlPlaneName}}/management/v2/policydefinitions' \ +--header 'X-Api-Key: {{EDC_API_KEY}}' \ +--header 'Content-Type: application/json' \ +--data-raw '{ + "@context": { + "odrl": "http://www.w3.org/ns/odrl/2/", + "cx-common": "https://w3id.org/catenax/ontology/common#" + }, + "@type": "PolicyDefinitionRequestDto", + "@id": "Policy?me=SkillPolicy", + "policy": { + "@type": "Policy", + "odrl:permission" : [{ + "odrl:action" : "USE", + "odrl:constraint" : { + "@type": "LogicalConstraint", + "odrl:or" : [{ + "@type" : "Constraint", + "odrl:leftOperand" : "BusinessPartnerNumber", + "odrl:operator" : { + "@id": "odrl:eq" + }, + "odrl:rightOperand" : "{{PARTNERBPNL}}" + }, + { + "@type" : "Constraint", + "odrl:leftOperand" : "BusinessPartnerNumber", + "odrl:operator" : { + "@id": "odrl:eq" + }, + "odrl:rightOperand" : "{{MYBPNL}}" + }] + } + }] + } +} +' +``` + +#### Register A Skill Contract + +```console +curl --location --globoff '{{controlPlaneName}}/management/v2/policydefinitions' \ +--header 'X-Api-Key: {{EDC_API_KEY}}' \ +--header 'Content-Type: application/json' \ +--data-raw '{ + "@context": { + "cx-common": "https://w3id.org/catenax/ontology/common#" + }, + "@id": "Contract?me=SkillContract", + "@type": "ContractDefinition", + "accessPolicyId": "Policy?me=SkillPolicy", + "contractPolicyId": "Policy?me=SkillPolicy", + "assetsSelector" : { + "@type" : "CriterionDto", + "operandLeft": "https://w3id.org/catenax/ontology/common#publishedUnderContract", + "operator": "=", + "operandRight": "Contract?me=Skill" + } +} +' +``` + +#### Register a Skill Asset + +```console +curl --location --globoff '{{dataPlaneName}}/api/agent/skill?asset=SkillAsset%3Fsupplier%3DRemainingUsefulLife&distributionMode=ALL&contract=Contract?me=SkillContract' \ +--header 'Content-Type: application/sparql-query' \ +--header '{{DATA_PLANE_KEY}}: {{DATA_PLANE_TOKEN}}' \ +--data-raw 'PREFIX cx-common: +PREFIX cx-core: +PREFIX cx-vehicle: +PREFIX cx-reliability: +PREFIX cx-behaviour: +PREFIX rdf: +PREFIX rdfs: +PREFIX xsd: +PREFIX json: +PREFIX bpnl: +PREFIX oem: +PREFIX supplier: + +################################################################ +# Sample for a Federated (Consumer-Deployed) SparQL Skill which +# - Jumps into an OEM-owned reliability asset given a set of candidate VANs +# - Feeds the gathered data back into the respective supplier connector/agent +#. to perform a health indication +# Author: cgjung +# (c) 2023 Catena-X assocation +################################################################ + +SELECT ?vehicle ?van ?aggregate ?assembly ?supplier ?lc ?operatingTime ?mileage ?recordDate ?ls_type ?ls_name ?ls_value ?ls_unit ?ls_method ?ls_channels ?ls_classes ?ls_values ?distanceKm ?timeHours WHERE { + + VALUES (?van ?aggregate ?ls_type) { + ("@van"^^xsd:string "Differential Gear"^^xsd:string "GearOil"^^xsd:string) + } + + bpnl:BPNL00000003AYRE cx-common:hasConnector ?oemEDC. + ?oemEDC cx-common:offers [ rdfs:isDefinedBy ; cx-common:id ?reliabilityAssetId]. + + SERVICE ?oemEDC { + GRAPH ?reliabilityAssetId { + ?vehicle rdf:type cx-vehicle:Vehicle; + cx-vehicle:vehicleIdentificationNumber ?van. + + ?assembly rdf:type cx-vehicle:Part; + cx-vehicle:name ?aggregate; + cx-vehicle:isPartOf ?vehicle; + cx-vehicle:supplier ?supplier. + + ?teleAnalysis rdf:type cx-reliability:Analysis; + cx-reliability:analysedObject ?assembly; + cx-reliability:operatingHoursOfVehicle ?operatingTime; + cx-reliability:mileageOfVehicle ?mileage; + cx-core:startDateTime ?recordDate; + cx-reliability:result [ + cx-core:id ?ls_type; + cx-core:name ?ls_name; + cx-reliability:countingValue ?ls_value; + cx-reliability:countingUnit ?ls_unit; + cx-reliability:countingMethod ?ls_method; + cx-reliability:channels ?ls_channels; + cx-reliability:classes ?ls_classes; + cx-reliability:values ?ls_values + ]. + } # OEM#GRAPH + + ?supplier cx-common:hasConnector ?supplierEDC. + ?supplierEDC cx-common:offers [ rdfs:isDefinedBy ; cx-common:id ?prognosisAssetId]. + + SERVICE ?supplierEDC { + GRAPH ?prognosisAssetId { + ?invocation a cx-behaviour:RemainingUsefulLife; + cx-behaviour:sender bpnl:BPNL00000003AYRE; + cx-behaviour:senderConnector ?oemEDC; + cx-behaviour:recipient ?supplier; + cx-behaviour:recipientConnector ?supplierEDC; + cx-behaviour:targetDate ?recordDate; + cx-behaviour:timeStamp ?recordDate; + cx-behaviour:component "GearBox"; + cx-behaviour:statusDate ?recordDate; + cx-behaviour:statusOperatingHours ?operatingTime; + cx-behaviour:statusMileage ?mileage; + cx-behaviour:countingValue ?ls_value; + cx-behaviour:countingUnit ?ls_unit; + cx-behaviour:countingMethod ?ls_method; + cx-behaviour:headerChannels ?ls_channels; + cx-behaviour:bodyClasses ?ls_classes; + cx-behaviour:bodyCountsList ?ls_values; + cx-behaviour:remainingOperatingHours ?timeHours; + cx-behaviour:remainingRunningDistance ?distanceKm. + } # SUPPLIER#GRAPH + } # SUPPLIER#CATALOG + + } # OEM#CATALOG + +} # SELECT +' +``` + +### Quick Setup Guide for Calling A Skill + +We demonstrate the steps by interacting with the EDC Data Plane Agent Endpoint + +#### Calling A Local Skill + +```console +curl --location --globoff '{{agentPlaneName}}/api/agent?asset=SkillAsset%3Fsupplier%3DRemainingUsefulLife' \ +--header 'Content-Type: application/sparql-results+json' \ +--header 'Accept: application/json' \ +--header '{{DATA_PLANE_KEY}}: {{DATA_PLANE_TOKEN}}' \ +--data '{ + "head": { + "vars": [ + "van" + ] + }, + "results": { + "bindings": [ + { + "van": { + "type": "literal", + "value": "FNLQNRVCOFLHAQ" + } + }, + { + "van": { + "type": "literal", + "value": "FGPTXINYZAVJYK" + } + }, + { + "van": { + "type": "literal", + "value": "DVAJDTLJMKKZGY" + } + } + ] + } +}' +``` + +#### Calling A Remote Skill + +```console +curl --location --globoff '{{agentPlaneName}}/api/agent?asset={{URLENCODED_PARTNER_CONTROL_PLANE}}%23SkillAsset%3Fsupplier%3DRemainingUsefulLife' \ +--header 'Content-Type: application/sparql-results+json' \ +--header 'Accept: application/json' \ +--header '{{DATA_PLANE_KEY}}: {{DATA_PLANE_TOKEN}}' \ +--data '{ + "head": { + "vars": [ + "van" + ] + }, + "results": { + "bindings": [ + { + "van": { + "type": "literal", + "value": "FNLQNRVCOFLHAQ" + } + }, + { + "van": { + "type": "literal", + "value": "FGPTXINYZAVJYK" + } + }, + { + "van": { + "type": "literal", + "value": "DVAJDTLJMKKZGY" + } + } + ] + } +}' +``` + +(C) 2021,2023 Contributors to the Eclipse Foundation. SPDX-License-Identifier: CC-BY-4.0 diff --git a/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/operation-view/bridge.md b/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/operation-view/bridge.md new file mode 100644 index 00000000000..53dd5640a77 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/operation-view/bridge.md @@ -0,0 +1,38 @@ +--- +sidebar_position: 1 +title: Bridging +--- + +For Bridging between Knowledge Agents API and AAS, we recommend deploying the [Tractus-X Knowledge Agents AAS Bridge (KA-AAS)](https://github.com/eclipse-tractusx/knowledge-agents-aas-api) + +For more information see + +* Our [Adoption](../adoption-view/intro) guideline +* The [Architecture](../development-view/architecture) documentation +* The [Deployment](deployment) overview +* The [Conformity](testbed) testbed +* A [Data Sovereignity & Graph Policy](policy) discussion + +(C) 2021,2023 Contributors to the Eclipse Foundation. SPDX-License-Identifier: CC-BY-4.0 diff --git a/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/operation-view/deployment.md b/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/operation-view/deployment.md new file mode 100644 index 00000000000..a0ddf80ffe8 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/operation-view/deployment.md @@ -0,0 +1,544 @@ +--- +sidebar_position: 1 +title: Deployment +--- + + +### Agents KIT + +![Agents Kit Banner](/img/knowledge-agents/AgentsKit-Icon.png) + +This document describes the deployment of the (Knowledge) Agents KIT (=Keep It Together) depending on the role that the respective tenant/business partner has. +It also provides a runbook for deploying a minimal stable environment for testing purposes. + +For more information see + +* Our [Adoption](../adoption-view/intro) guideline +* The [Architecture](../development-view/architecture) documentation +* The [EDC Deployment](agent_edc) description +* The [(Data/Function) Provider Deployment](provider) description +* The [AAS Bridge Deployment](bridge) description +* The [Conformity](testbed) testbed +* A [Data Sovereignity & Graph Policy](policy) discussion + + +## Motivation & Deployment Roles + +Knowledge Agents is a federated technology, so there is no central component setup to take into account. +Instead, the Semantic Dataspace is formed by the individual business partners extending/configuring their +connectors and enabling their backend systems and/or datalakes. The deployment depends hereby on the +role that the business partner takes. The roles are described in more detail in our [Adoption](../adoption-view/intro) guideline. + +[![Dataspace Roles](/img/knowledge-agents/dataspace_roles_small.png)](/img/knowledge-agents/dataspace_roles.png) + +## Role: As A Consumer + +As a consumer, you just need to: + +* enable your [dataspace connector](agent_edc) to initiate/delegate the required Agent protocols (here: SparQL-over-Http). +* (optionally) mount your connector/matchmaking agent as a remote repository into your enterprise graph infrastructure. + +## Role: As A Skill Provider + +As a skill provider, you need to + +* enable your [dataspace connector](agent_edc) to transfer/delegate the required Agent protocols. +* (optionally) employ multiple data planes in case you want to expose hosted skills (skill assets that operate as stored procedures +and which require computational resources at the provider side) instead of distributed skills (skill assets that are offered as query texts/files and which are executed at the consumer side). + +## Role: As A (Data/Function) Provider + +As a provider, you need to + +* enable your [dataspace connector](agent_edc) to receive/internalize the required Agent protocols. + +Depending on the kind of provisioning, you will setup additional internal "agents" (endpoints). + +### Sub-Role: As A Data Provider + +As a data provider, you want to + +* [bind](provider) your data sources to knowledge graphs following the Catena-X ontology. Therefore, a provisioning agent +should be setup on top of a data virtualization/database layer. + +### Sub-Role: As A Function Provider + +As a function provider, you want to + +* [bind](provider) your API to a special knowledge graph structure. Therefore, a remoting agent should be setup. + +### Sub-Role: As A Twin Provider + +As a function provider, you want to + +* [bridge](bridge) between the Knowledge Agent and Asset Administration Shell APIs. + +## Runbook For Deploying and Smoke-Testing Knowledge Agents (Stable) + +Knowledge Agents on Stable is deployed on the following two tenants +- App Provider 1 (BPNL000000000001) + - Agent-Enabled Dataspace Connector + - In-Memory Hashicorp-Vault Control Plane + - Hashicorp-Vault Agent Data Plane + - Provisioning Agent incl. Local Database + - Remoting Agent +- App Consumer 4 (BPNL0000000005VV) + - Agent-Enabled Dataspace Connector + - In-Memory Hashicorp-Vault Control Plane + - Hashicorp-Vault Agent Data Plane + +### 1. Prepare the Two Tenants + +As a first step, we installed two technical users for the dataspace connectors using the https://portal.stable.demo.catena-x.net +- App Provider 1: sa4 +- App Consumer 4: sa5 + + +The generated secrets have been installed under https://vault.demo.catena-x.net/ui/vault/secrets/knowledge +- stable-provider-miw +- stable-consumer-miw + +Further secrets have been installed +- oem-cert +- oem-key +- oem-symmetric-key +- consumer-cert +- consumer-key +- consumer-symmetric-key + +Finally an access token has been generated. + +### 2. Deploy Agent-Enabled Connector's + +Using https://argo.stable.demo.catena-x.net/settings/projects/project-knowledge the following two applications have been installed. + +We give the complete manifests but hide the secrets. + +#### App Provider 1 Datspace Connector Manifest + +```yaml +project: project-knowledge +source: + repoURL: 'https://eclipse-tractusx.github.io/charts/dev' + targetRevision: 1.10.15 + plugin: + env: + - name: HELM_VALUES + value: | + participant: + id: BPNL000000000001 + nameOverride: agent-connector-provider + fullnameOverride: agent-connector-provider + vault: + hashicorp: + enabled: true + url: https://vault.demo.catena-x.net + token: **** + healthCheck: + enabled: false + standbyOk: true + paths: + secret: /v1/knowledge + secretNames: + transferProxyTokenSignerPrivateKey: oem-key + transferProxyTokenSignerPublicKey: oem-cert + transferProxyTokenEncryptionAesKey: oem-symmetric-key + controlplane: + securityContext: + readOnlyRootFilesystem: false + image: + pullPolicy: Always + ssi: + miw: + # -- MIW URL + url: "https://managed-identity-wallets-new.stable.demo.catena-x.net" + # -- The BPN of the issuer authority + authorityId: "BPNL00000003CRHK" + oauth: + # -- The URL (of KeyCloak), where access tokens can be obtained + tokenurl: "https://centralidp.stable.demo.catena-x.net/auth/realms/CX-Central/protocol/openid-connect/token" + client: + # -- The client ID for KeyCloak + id: "sa4" + # -- The alias under which the client secret is stored in the vault. + secretAlias: "stable-provider-miw" + endpoints: + management: + authKey: **** + ## Ingress declaration to expose the network service. + ingresses: + - enabled: true + # -- The hostname to be used to precisely map incoming traffic onto the underlying network service + hostname: "agent-provider-cp.stable.demo.catena-x.net" + # -- EDC endpoints exposed by this ingress resource + endpoints: + - protocol + - management + - control + # -- Enables TLS on the ingress resource + tls: + enabled: true + dataplanes: + dataplane: + securityContext: + readOnlyRootFilesystem: false + image: + pullPolicy: Always + configs: + dataspace.ttl: |- + ################################################ + # Catena-X Agent Bootstrap + ################################################ + @prefix : . + @prefix cx: . + @prefix cx-common: . + @prefix rdf: . + @prefix xsd: . + @prefix bpnl: . + @base . + + bpnl:BPNL000000000001 cx:hasBusinessPartnerNumber "BPNL000000000001"^^xsd:string; + cx:hasConnector ; + cx-common:hasConnector . + + bpnl:BPNL0000000005VV cx:hasBusinessPartnerNumber "BPNL0000000005VV"^^xsd:string; + cx:hasConnector ; + cx-common:hasConnector . + agent: + #synchronization: 360000 + connectors: + - https://agent-provider-cp.stable.demo.catena-x.net + + ## Ingress declaration to expose the network service. + ingresses: + - enabled: true + hostname: "agent-provider-dp.stable.demo.catena-x.net" + # -- EDC endpoints exposed by this ingress resource + endpoints: + - public + - default + - control + - callback + # -- Enables TLS on the ingress resource + tls: + enabled: true + chart: agent-connector-memory +destination: + server: 'https://kubernetes.default.svc' + namespace: product-knowledge +``` + +#### App Consumer 4 Datspace Connector Manifest + +```yaml +project: project-knowledge +source: + repoURL: 'https://eclipse-tractusx.github.io/charts/dev' + targetRevision: 1.10.15 + plugin: + env: + - name: HELM_VALUES + value: | + participant: + id: BPNL0000000005VV + nameOverride: agent-connector-consumer + fullnameOverride: agent-connector-consumer + vault: + hashicorp: + enabled: true + url: https://vault.demo.catena-x.net + token: **** + healthCheck: + enabled: false + standbyOk: true + paths: + secret: /v1/knowledge + secretNames: + transferProxyTokenSignerPrivateKey: consumer-key + transferProxyTokenSignerPublicKey: consumer-cert + transferProxyTokenEncryptionAesKey: consumer-symmetric-key + controlplane: + securityContext: + readOnlyRootFilesystem: false + image: + pullPolicy: Always + ssi: + miw: + # -- MIW URL + url: "https://managed-identity-wallets-new.stable.demo.catena-x.net" + # -- The BPN of the issuer authority + authorityId: "BPNL00000003CRHK" + oauth: + # -- The URL (of KeyCloak), where access tokens can be obtained + tokenurl: "https://centralidp.stable.demo.catena-x.net/auth/realms/CX-Central/protocol/openid-connect/token" + client: + # -- The client ID for KeyCloak + id: "sa5" + # -- The alias under which the client secret is stored in the vault. + secretAlias: "stable-consumer-miw" + endpoints: + management: + authKey: *** + ## Ingress declaration to expose the network service. + ingresses: + - enabled: true + # -- The hostname to be used to precisely map incoming traffic onto the underlying network service + hostname: "agent-consumer-cp.stable.demo.catena-x.net" + # -- EDC endpoints exposed by this ingress resource + endpoints: + - protocol + - management + - control + # -- Enables TLS on the ingress resource + tls: + enabled: true + dataplanes: + dataplane: + securityContext: + readOnlyRootFilesystem: false + image: + pullPolicy: Always + configs: + dataspace.ttl: |- + ################################################ + # Catena-X Agent Bootstrap + ################################################ + @prefix : . + @prefix cx: . + @prefix cx-common: . + @prefix rdf: . + @prefix xsd: . + @prefix bpnl: . + @base . + + bpnl:BPNL000000000001 cx:hasBusinessPartnerNumber "BPNL000000000001"^^xsd:string; + cx:hasConnector ; + cx-common:hasConnector . + + bpnl:BPNL0000000005VV cx:hasBusinessPartnerNumber "BPNL0000000005VV"^^xsd:string; + cx:hasConnector ; + cx-common:hasConnector . + agent: + # synchronization: 360000 + connectors: + - https://agent-provider-cp.stable.demo.catena-x.net + + ## Ingress declaration to expose the network service. + ingresses: + - enabled: true + hostname: "agent-consumer-dp.stable.demo.catena-x.net" + # -- EDC endpoints exposed by this ingress resource + endpoints: + - public + - default + - control + - callback + # -- Enables TLS on the ingress resource + tls: + enabled: true + chart: agent-connector-memory +destination: + server: 'https://kubernetes.default.svc' + namespace: product-knowledge +``` + +### 3. Deploy App Provider 1 Provisioning Agent + +Using https://argo.stable.demo.catena-x.net/settings/projects/project-knowledge the following application has been installed. + +For simplicity, the provisioning agent exposes a builtin sample H2 database as a graph and therefore needs to write the file system with its non-root account. +Therefore, some of the following settings are specific to stable and will not be used under productive settings. + +```yaml +project: project-knowledge +source: + repoURL: 'https://eclipse-tractusx.github.io/charts/dev' + targetRevision: 1.10.15 + plugin: + env: + - name: HELM_VALUES + value: | + securityContext: + readOnlyRootFilesystem: false + runAsUser: 999 + runAsGroup: 999 + runAsUser: 999 + podSecurityContext: + runAsGroup: 999 + fsGroup: 999 + bindings: + dtc: + port: 8080 + settings: + jdbc.url: "jdbc:h2:file:/opt/ontop/database/db;INIT=RUNSCRIPT FROM '/opt/ontop/data/dtc.sql'" + jdbc.driver: "org.h2.Driver" + ontop.cardinalityMode: "LOOSE" + mapping: | + [PrefixDeclaration] + cx-common: https://w3id.org/catenax/ontology/common# + cx-core: https://w3id.org/catenax/ontology/core# + cx-vehicle: https://w3id.org/catenax/ontology/vehicle# + cx-reliability: https://w3id.org/catenax/ontology/reliability# + uuid: urn:uuid: + bpnl: bpn:legal: + owl: http://www.w3.org/2002/07/owl# + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# + xml: http://www.w3.org/XML/1998/namespace + xsd: http://www.w3.org/2001/XMLSchema# + json: https://json-schema.org/draft/2020-12/schema# + obda: https://w3id.org/obda/vocabulary# + rdfs: http://www.w3.org/2000/01/rdf-schema# + oem: urn:oem: + + [MappingDeclaration] @collection [[ + mappingId dtc-meta + target bpnl:{bpnl} rdf:type cx-common:BusinessPartner ; cx-core:id {bpnl}^^xsd:string . + source SELECT distinct "bpnl" FROM "dtc"."meta" + + mappingId dtc-content + target oem:Analysis/{id} rdf:type cx-reliability:Analysis ; cx-core:id {code}^^xsd:string ; cx-core:name {description}^^xsd:string . + source SELECT * FROM "dtc"."content" + + mappingId dtc-part + target oem:Part/{entityGuid} rdf:type cx-vehicle:Part ; cx-core:id {enDenomination}^^xsd:string ; cx-core:name {classification}^^xsd:string . + source SELECT * FROM "dtc"."part" + + mappingId dtc-meta-part + target oem:Part/{entityGuid} cx-vehicle:manufacturer bpnl:{bpnl}. + source SELECT "bpnl","entityGuid" FROM "dtc"."part" + + mappingId dtc-part-content + target oem:Analysis/{dtc_id} cx-reliability:analysedObject oem:Part/{part_entityGuid}. + source SELECT "part_entityGuid","dtc_id" FROM "dtc"."content_part" + + ]] + chart: provisioning-agent +destination: + server: 'https://kubernetes.default.svc' + namespace: product-knowledge +``` + +### 4. Deploy App Provider 1 Remoting Agent + +Using https://argo.stable.demo.catena-x.net/settings/projects/project-knowledge the following application has been installed. + +For simplicity, the remoting agent exposes a simply public API as a graph. + +```yaml +project: project-knowledge +source: + repoURL: 'https://eclipse-tractusx.github.io/charts/dev' + targetRevision: 1.10.15 + plugin: + env: + - name: HELM_VALUES + value: | + image: + pullPolicy: Always + repositories: + prognosis: | + # + # Rdf4j configuration for prognosis remoting + # + @prefix rdf: . + @prefix rdfs: . + @prefix rep: . + @prefix sr: . + @prefix sail: . + @prefix sp: . + @prefix xsd: . + @prefix json: . + @prefix dcterms: . + @prefix cx-fx: . + @prefix cx-common: . + @prefix cx-prognosis: . + @prefix cx-rt: . + + [] rdf:type rep:Repository ; + rep:repositoryID "prognosis" ; + rdfs:label "Prognosis Functions" ; + rep:repositoryImpl [ + rep:repositoryType "openrdf:SailRepository" ; + sr:sailImpl [ + sail:sailType "org.eclipse.tractusx.agents:Remoting" ; + cx-fx:callbackAddress ; + cx-fx:supportsInvocation cx-prognosis:Prognosis; + ] + ]. + + cx-prognosis:Prognosis rdf:type cx-fx:Function; + dcterms:description "Prognosis is a sample simulation function with input and output bindings."@en ; + dcterms:title "Prognosis" ; + cx-fx:targetUri "https://api.agify.io"; + cx-fx:input cx-prognosis:name; + cx-fx:result cx-prognosis:hasResult. + + cx-prognosis:hasResult rdf:type cx-fx:Result; + cx-fx:output cx-prognosis:prediction; + cx-fx:output cx-prognosis:support. + + cx-prognosis:name rdf:type cx-fx:Argument; + dcterms:description "Name is an argument to the Prognosis function."@en ; + dcterms:title "Name"; + cx-fx:argumentName "name". + + cx-prognosis:prediction rdf:type cx-fx:ReturnValue; + dcterms:description "Prediction (Value) is an integer-based output of the Prognosis function."@en ; + dcterms:title "Prediction" ; + cx-fx:valuePath "age"; + cx-fx:dataType xsd:int. + + cx-prognosis:support rdf:type cx-fx:ReturnValue; + dcterms:description "Support (Value) is another integer-based output of the Prognosis function."@en ; + dcterms:title "Support" ; + cx-fx:valuePath "count"; + cx-fx:dataType xsd:int. + chart: remoting-agent +destination: + server: 'https://kubernetes.default.svc' + namespace: product-knowledge +``` + +### 5. Perform Smoke Tests + +We provide a [Postman collection](https://www.postman.com/catena-x/workspace/catena-x-knowledge-agents/folder/2757771-f11c5dda-cc04-444f-b38b-3deb3c098478?action=share&creator=2757771&ctx=documentation&active-environment=2757771-31115ff3-61d7-4ad6-8310-1e50290a1c3a) and a corresponding [environment](https://www.postman.com/catena-x/workspace/catena-x-knowledge-agents/environment/2757771-31115ff3-61d7-4ad6-8310-1e50290a1c3a?action=share&creator=2757771&active-environment=2757771-3a7489c5-7540-470b-8e44-04610511d9a9) + +It consists of the following steps: +- Query Provider Agent (Internally) +- Query Provider Agent (Internally from Agent Plane) +- Query Remoting Agent (Internally) +- Query Remoting Agent (Internally from Agent Plane) +- Create Graph Policy (Provider) +- Create Graph Contract (Provider) +- Create Data Graph Asset (Provider) +- Create Function Graph Asset (Provider) +- Show Own Catalogue (Provider) +- Show Remote Catalogue (Consumer) +- Query Data Graph Asset (Consumer) +- Query Function Graph Asset (Consumer) + + + +(C) 2021,2023 Contributors to the Eclipse Foundation. SPDX-License-Identifier: CC-BY-4.0 diff --git a/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/operation-view/ka_conformity_scripts.postman_collection.json b/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/operation-view/ka_conformity_scripts.postman_collection.json new file mode 100644 index 00000000000..409d518b375 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/operation-view/ka_conformity_scripts.postman_collection.json @@ -0,0 +1,3428 @@ +{ + "info": { + "_postman_id": "0ad1b7a6-734c-4289-9221-667fc56a21da", + "name": "KA Conformity Assessment Scripts", + "description": "(C) 2021,2023 Contributors to the Eclipse Foundation\n\nSPDX-LICENSE-IDENTIFIER: CC-BY-4.0", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "2757771", + "_collection_link": "https://www.postman.com/catena-x/workspace/catena-x-knowledge-agents/collection/2757771-0ad1b7a6-734c-4289-9221-667fc56a21da?action=share&source=collection_link&creator=2757771" + }, + "item": [ + { + "name": "01_TESTASSETS", + "item": [ + { + "name": "I_02_00_01_OPEN_POLICY", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Creation/Existance was successful\", function () {", + " pm.expect(pm.response.code).oneOf([200,204,409]);", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "X-Api-Key", + "value": "{{cabEdcApiKey}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"@context\": {\n \"odrl\": \"http://www.w3.org/ns/odrl/2/\",\n \"cx-common\": \"https://w3id.org/catenax/ontology/common#\"\n },\n \"@type\": \"PolicyDefinitionRequestDto\",\n \"@id\": \"Policy?cab=Asset&mode=open\",\n \"policy\": {\n\t\t\"@type\": \"Policy\",\n\t\t\"odrl:permission\" : [{\n\t\t\t\"odrl:action\" : \"USE\",\n\t\t\t\"odrl:constraint\" : []\n\t\t}]\n }\n}\n", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{cabEdcControl}}/management/v2/policydefinitions", + "host": [ + "{{cabEdcControl}}" + ], + "path": [ + "management", + "v2", + "policydefinitions" + ] + }, + "description": "Calls the datamanagement API in order to create a graph policy." + }, + "response": [] + }, + { + "name": "I_02_00_02_CLOSED_POLICY", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Creation/Existance was successful\", function () {", + " pm.expect(pm.response.code).oneOf([200,204,409]);", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "X-Api-Key", + "value": "{{cabEdcApiKey}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"@context\": {\n \"odrl\": \"http://www.w3.org/ns/odrl/2/\",\n \"cx-common\": \"https://w3id.org/catenax/ontology/common#\"\n },\n \"@type\": \"PolicyDefinitionRequestDto\",\n \"@id\": \"Policy?cab=Asset&mode=closed\",\n \"policy\": {\n\t\t\"@type\": \"Policy\",\n\t\t\"odrl:permission\" : [{\n\t\t\t\"odrl:action\" : \"USE\",\n\t\t\t\"odrl:constraint\" : {\n\t\t\t\t\"@type\" : \"Constraint\",\n\t\t\t\t\"odrl:leftOperand\" : \"BusinessPartnerNumber\",\n\t\t\t\t\t\"odrl:operator\" : {\n \"@id\": \"odrl:eq\"\n },\n\t\t\t\t\"odrl:rightOperand\" : \"{{cabBPNL}}\"\n\t\t\t}\n\t\t}]\n }\n}\n", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{cabEdcControl}}/management/v2/policydefinitions", + "host": [ + "{{cabEdcControl}}" + ], + "path": [ + "management", + "v2", + "policydefinitions" + ] + }, + "description": "Calls the datamanagement API in order to create a graph policy." + }, + "response": [] + }, + { + "name": "I_02_00_03_OPEN_CONTRACT", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Creation/Existance was successful\", function () {", + " pm.expect(pm.response.code).oneOf([200,204,409]);", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "X-Api-Key", + "value": "{{cabEdcApiKey}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"@context\": {\n \"cx-common\": \"https://w3id.org/catenax/ontology/common#\"\n },\n \"@id\": \"Contract?cab=Asset&mode=open\",\n \"@type\": \"ContractDefinition\",\n \"accessPolicyId\": \"Policy?cab=Asset&mode=open\",\n \"contractPolicyId\": \"Policy?cab=Asset&mode=open\",\n \"assetsSelector\" : {\n \"@type\" : \"CriterionDto\",\n \"operandLeft\": \"https://w3id.org/catenax/ontology/common#publishedUnderContract\",\n \"operator\": \"=\",\n \"operandRight\": \"Contract?cab=Asset&mode=open\"\n }\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{cabEdcControl}}/management/v2/contractdefinitions", + "host": [ + "{{cabEdcControl}}" + ], + "path": [ + "management", + "v2", + "contractdefinitions" + ] + }, + "description": "Calls the datamanagement API in order to create a contract." + }, + "response": [] + }, + { + "name": "I_02_00_04_CLOSED_CONTRACT", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Creation/Existance was successful\", function () {", + " pm.expect(pm.response.code).oneOf([200,204,409]);", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "X-Api-Key", + "value": "{{cabEdcApiKey}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"@context\": {\n \"cx-common\": \"https://w3id.org/catenax/ontology/common#\"\n },\n \"@id\": \"Contract?cab=Asset&mode=closed\",\n \"@type\": \"ContractDefinition\",\n \"accessPolicyId\": \"Policy?cab=Asset&mode=closed\",\n \"contractPolicyId\": \"Policy?cab=Asset&mode=closed\",\n \"assetsSelector\" : {\n \"@type\" : \"CriterionDto\",\n \"operandLeft\": \"https://w3id.org/catenax/ontology/common#publishedUnderContract\",\n \"operator\": \"=\",\n \"operandRight\": \"Contract?cab=Asset&mode=closed\"\n }\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{cabEdcControl}}/management/v2/contractdefinitions", + "host": [ + "{{cabEdcControl}}" + ], + "path": [ + "management", + "v2", + "contractdefinitions" + ] + }, + "description": "Calls the datamanagement API in order to create a contract." + }, + "response": [] + }, + { + "name": "I_02_00_05_OPEN_GRAPH_ASSET", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Creation/Existance was successful\", function () {", + " pm.expect(pm.response.code).oneOf([200,204,409]);", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "X-Api-Key", + "value": "{{cabEdcApiKey}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"@context\": {\n \"rdf\": \"http://www.w3.org/1999/02/22-rdf-syntax-ns#\",\n \"rdfs\": \"http://www.w3.org/2000/01/rdf-schema#\",\n \"cx-common\": \"https://w3id.org/catenax/ontology/common#\",\n \"xsd\": \"http://www.w3.org/2001/XMLSchema#\",\n \"sh\": \"http://www.w3.org/ns/shacl#\"\n },\n \"asset\": {\n \"@type\": \"Asset\",\n \"@id\": \"GraphAsset?cab=Conforming&mode=open\", \n \"properties\": {\n \"name\": \"Open Conforming Asset.\",\n \"description\": \"A graph asset/offering hosting a conforming agent for testing and conformity checking.\",\n \"version\": \"1.9.4-SNAPSHOT\",\n \"contenttype\": \"application/json, application/xml\",\n \"cx-common:publishedUnderContract\": \"Contract?cab=Asset&mode=open\",\n \"rdf:type\": \"cx-common:GraphAsset\",\n \"rdfs:isDefinedBy\": \"\",\n \"cx-common:implementsProtocol\": \"cx-common:Protocol?w3c:http:SPARQL\",\n \"sh:shapesGraph\": \"@prefix : .\\n\",\n \"cx-common:isFederated\": \"true^^xsd:boolean\"\n }\n },\n \"dataAddress\": {\n \"id\": \"GraphAsset?cab=Conforming&mode=open\", \n \"@type\": \"DataAddress\",\n \"baseUrl\": \"{{cabConformingAgent}}/bind\",\n \"type\": \"cx-common:Protocol?w3c:http:SPARQL\",\n \"proxyPath\": \"false\",\n \"proxyMethod\": \"true\",\n \"proxyQueryParams\": \"true\",\n \"proxyBody\": \"true\"\n }\n}\n", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{cabEdcControl}}/management/v2/assets", + "host": [ + "{{cabEdcControl}}" + ], + "path": [ + "management", + "v2", + "assets" + ] + }, + "description": "Calls the datamanagement API in order to create a graph asset." + }, + "response": [] + }, + { + "name": "I_02_00_06_CLOSED_GRAPH_ASSET", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Creation/Existance was successful\", function () {", + " pm.expect(pm.response.code).oneOf([200,204,409]);", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "X-Api-Key", + "value": "{{cabEdcApiKey}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"@context\": {\n \"rdf\": \"http://www.w3.org/1999/02/22-rdf-syntax-ns#\",\n \"rdfs\": \"http://www.w3.org/2000/01/rdf-schema#\",\n \"cx-common\": \"https://w3id.org/catenax/ontology/common#\",\n \"xsd\": \"http://www.w3.org/2001/XMLSchema#\",\n \"sh\": \"http://www.w3.org/ns/shacl#\"\n },\n \"asset\": {\n \"@type\": \"Asset\",\n \"@id\": \"GraphAsset?cab=Conforming&mode=closed\", \n \"properties\": {\n \"name\": \"Closed Conforming Asset.\",\n \"description\": \"A graph asset/offering hosting a conforming agent for testing and conformity checking.\",\n \"version\": \"1.9.4-SNAPSHOT\",\n \"contenttype\": \"application/json, application/xml\",\n \"cx-common:publishedUnderContract\": \"Contract?cab=Asset&mode=closed\",\n \"rdf:type\": \"cx-common:GraphAsset\",\n \"rdfs:isDefinedBy\": \"\",\n \"cx-common:implementsProtocol\": \"cx-common:Protocol?w3c:http:SPARQL\",\n \"sh:shapesGraph\": \"@prefix : .\\n\",\n \"cx-common:isFederated\": \"true^^xsd:boolean\"\n }\n },\n \"dataAddress\": {\n \"id\": \"GraphAsset?cab=Conforming&mode=closed\", \n \"@type\": \"DataAddress\",\n \"baseUrl\": \"{{cabConformingAgent}}/bind\",\n \"type\": \"cx-common:Protocol?w3c:http:SPARQL\",\n \"proxyPath\": \"false\",\n \"proxyMethod\": \"true\",\n \"proxyQueryParams\": \"true\",\n \"proxyBody\": \"true\"\n }\n}\n", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{cabEdcControl}}/management/v2/assets", + "host": [ + "{{cabEdcControl}}" + ], + "path": [ + "management", + "v2", + "assets" + ] + }, + "description": "Calls the datamanagement API in order to create a graph asset." + }, + "response": [] + }, + { + "name": "I_02_00_07_UNFEDERATED_GRAPH_ASSET", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Creation/Existance was successful\", function () {", + " pm.expect(pm.response.code).oneOf([200,204,409]);", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "X-Api-Key", + "value": "{{cabEdcApiKey}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"@context\": {\n \"rdf\": \"http://www.w3.org/1999/02/22-rdf-syntax-ns#\",\n \"rdfs\": \"http://www.w3.org/2000/01/rdf-schema#\",\n \"cx-common\": \"https://w3id.org/catenax/ontology/common#\",\n \"xsd\": \"http://www.w3.org/2001/XMLSchema#\",\n \"sh\": \"http://www.w3.org/ns/shacl#\"\n },\n \"asset\": {\n \"@type\": \"Asset\",\n \"@id\": \"GraphAsset?cab=Conforming&mode=unfederated\", \n \"properties\": {\n \"name\": \"Unfederated Conforming Asset.\",\n \"description\": \"A graph asset/offering hosting a conforming agent for testing and conformity checking.\",\n \"version\": \"1.9.4-SNAPSHOT\",\n \"contenttype\": \"application/json, application/xml\",\n \"cx-common:publishedUnderContract\": \"Contract?cab=Graph&mode=open\",\n \"rdf:type\": \"cx-common:GraphAsset\",\n \"rdfs:isDefinedBy\": \"\",\n \"cx-common:implementsProtocol\": \"cx-common:Protocol?w3c:http:SPARQL\",\n \"sh:shapesGraph\": \"@prefix : .\\n\",\n \"cx-common:isFederated\": \"false^^xsd:boolean\"\n }\n },\n \"dataAddress\": {\n \"id\": \"GraphAsset?cab=Conforming&mode=unfederated\", \n \"@type\": \"DataAddress\",\n \"baseUrl\": \"{{cabConformingAgent}}/bind\",\n \"type\": \"cx-common:Protocol?w3c:http:SPARQL\",\n \"proxyPath\": \"false\",\n \"proxyMethod\": \"true\",\n \"proxyQueryParams\": \"true\",\n \"proxyBody\": \"true\"\n }\n}\n", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{cabEdcControl}}/management/v2/assets", + "host": [ + "{{cabEdcControl}}" + ], + "path": [ + "management", + "v2", + "assets" + ] + }, + "description": "Calls the datamanagement API in order to create a graph asset." + }, + "response": [] + }, + { + "name": "I_02_00_08_OPEN_SKILL", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Vehicle Health Skill Registered\", function () {", + " pm.expect(pm.response.code).oneOf([201,200]);", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "protocolProfileBehavior": { + "disabledSystemHeaders": { + "content-type": true + } + }, + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/sparql-query" + } + ], + "body": { + "mode": "raw", + "raw": "# Sample Skill accessing a graph\n\nSELECT ?subject ?predicate ?object WHERE { \n SERVICE <{{cabEdcIdsSparql}}> {\n GRAPH { \n ?subject ?predicate ?object. \n }\n } \n}", + "options": { + "raw": { + "language": "text" + } + } + }, + "url": { + "raw": "{{cabAgentPlane}}/api/agent/skill?distributionMode=ALL&contract=Contract%3Fcab%3DAsset%26mode%3Dopen&asset=SkillAsset%3Fcab%3DConforming%26mode%3Dopen&isFederated=true", + "host": [ + "{{cabAgentPlane}}" + ], + "path": [ + "api", + "agent", + "skill" + ], + "query": [ + { + "key": "distributionMode", + "value": "ALL", + "description": "Distribution Mode may be ALL, PROVIDER or CONSUMER" + }, + { + "key": "contract", + "value": "Contract%3Fcab%3DAsset%26mode%3Dopen", + "description": "Name of the contract to publish the skill under" + }, + { + "key": "asset", + "value": "SkillAsset%3Fcab%3DConforming%26mode%3Dopen", + "description": "Id of the skill" + }, + { + "key": "isFederated", + "value": "true" + } + ] + }, + "description": "Uses the Agent Extension of the Dataplane to Store a Parameterized Query on Remote Graphs." + }, + "response": [] + }, + { + "name": "I_02_00_09_OPEN_SKILL_ALT", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Creation/Existance was successful\", function () {", + " pm.expect(pm.response.code).oneOf([200,204,409]);", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "X-Api-Key", + "value": "{{cabEdcApiKey}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"@context\": {\n \"rdf\": \"http://www.w3.org/1999/02/22-rdf-syntax-ns#\",\n \"rdfs\": \"http://www.w3.org/2000/01/rdf-schema#\",\n \"cx-common\": \"https://w3id.org/catenax/ontology/common#\",\n \"sh\": \"http://www.w3.org/ns/shacl#\"\n },\n \"asset\": {\n \"@type\": \"Asset\",\n \"@id\": \"SkillAsset?cab=Conforming&mode=open\", \n \"properties\": {\n \"name\": \"Open Skill\",\n \"description\": \"A conformity assessment skill.\",\n \"version\": \"1.9.4-SNAPSHOT\",\n \"contenttype\": \"application/json, application/xml\",\n \"cx-common:publishedUnderContract\": \"Contract?cab=Asset&mode=open\",\n \"rdf:type\": \"cx-common:SkillAsset\",\n \"rdfs:isDefinedBy\": \"\",\n \"cx-common:implementsProtocol\": \"cx-common:Protocol?w3c:http:SKILL\",\n \"cx-common:distributionMode\": \"cx-common:SkillDistribution?run=all\",\n \"cx-common:isFederated\": \"true^^xsd:boolean\"\n },\n \"privateProperties\": {\n \"cx-common:query\":\"# Sample Skill accessing a graph\\n\\nSELECT ?subject ?predicate ?object WHERE { \\n SERVICE {\\n GRAPH { \\n ?subject ?predicate ?object. \\n }\\n } \\n}\"\n }\n },\n \"dataAddress\": {\n \"id\":\"SkillAsset?cab=Conforming&mode=open\",\n \"@type\": \"DataAddress\",\n \"type\": \"cx-common:Protocol?w3c:http:SKILL\",\n \"proxyPath\": \"false\",\n \"proxyMethod\": \"true\",\n \"proxyQueryParams\": \"true\",\n \"proxyBody\": \"true\"\n }\n}\n", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{cabEdcControl}}/management/v2/assets", + "host": [ + "{{cabEdcControl}}" + ], + "path": [ + "management", + "v2", + "assets" + ] + }, + "description": "Calls the datamanagement API in order to create a skill asset." + }, + "response": [] + }, + { + "name": "I_02_00_10_CLOSED_SKILL", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Vehicle Health Skill Registered\", function () {", + " pm.expect(pm.response.code).oneOf([201,200]);", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "protocolProfileBehavior": { + "disabledSystemHeaders": { + "content-type": true + } + }, + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/sparql-query" + } + ], + "body": { + "mode": "raw", + "raw": "# Sample Skill accessing a graph\n\nSELECT ?subject ?predicate ?object WHERE { \n SERVICE <{{cabEdcIdsSparql}}> {\n GRAPH { \n ?subject ?predicate ?object. \n }\n } \n}", + "options": { + "raw": { + "language": "text" + } + } + }, + "url": { + "raw": "{{cabAgentPlane}}/api/agent/skill?distributionMode=ALL&asset=SkillAsset%3Fcab%3DConforming%26mode%3Dclosed&contract=Contract%3Fcab%3DAsset%26mode%3Dclosed&isFederated=false", + "host": [ + "{{cabAgentPlane}}" + ], + "path": [ + "api", + "agent", + "skill" + ], + "query": [ + { + "key": "distributionMode", + "value": "ALL", + "description": "Distribution Mode may be ALL, PROVIDER or CONSUMER" + }, + { + "key": "asset", + "value": "SkillAsset%3Fcab%3DConforming%26mode%3Dclosed", + "description": "Name of the contract to publish the skill under" + }, + { + "key": "contract", + "value": "Contract%3Fcab%3DAsset%26mode%3Dclosed", + "description": "Id of the skill" + }, + { + "key": "isFederated", + "value": "false", + "description": "Whether it is visible in the federated catalogue" + } + ] + }, + "description": "Uses the Agent Extension of the Dataplane to Store a Parameterized Query on Remote Graphs." + }, + "response": [] + }, + { + "name": "I_02_00_11_CLOSED_SKILL_ALT", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Creation/Existance was successful\", function () {", + " pm.expect(pm.response.code).oneOf([200,204,409]);", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "X-Api-Key", + "value": "{{cabEdcApiKey}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"@context\": {\n \"rdf\": \"http://www.w3.org/1999/02/22-rdf-syntax-ns#\",\n \"rdfs\": \"http://www.w3.org/2000/01/rdf-schema#\",\n \"cx-common\": \"https://w3id.org/catenax/ontology/common#\",\n \"sh\": \"http://www.w3.org/ns/shacl#\"\n },\n \"asset\": {\n \"@type\": \"Asset\",\n \"@id\": \"SkillAsset?cab=Conforming&mode=closed\", \n \"properties\": {\n \"name\": \"Closed Skill\",\n \"description\": \"A conformity assessment skill.\",\n \"version\": \"1.9.4-SNAPSHOT\",\n \"contenttype\": \"application/json, application/xml\",\n \"cx-common:publishedUnderContract\": \"Contract?cab=Asset&mode=closed\",\n \"rdf:type\": \"cx-common:SkillAsset\",\n \"rdfs:isDefinedBy\": \"\",\n \"cx-common:implementsProtocol\": \"cx-common:Protocol?w3c:http:SKILL\",\n \"cx-common:distributionMode\": \"cx-common:SkillDistribution?run=all\",\n \"cx-common:isFederated\": \"false^^xsd:boolean\"\n },\n \"privateProperties\": {\n \"cx-common:query\":\"# Sample Skill accessing a graph\\n\\nSELECT ?subject ?predicate ?object WHERE { \\n SERVICE {\\n GRAPH { \\n ?subject ?predicate ?object. \\n }\\n } \\n}\"\n }\n },\n \"dataAddress\": {\n \"id\":\"SkillAsset?cab=Conforming&mode=closed\",\n \"@type\": \"DataAddress\",\n \"type\": \"cx-common:Protocol?w3c:http:SKILL\",\n \"proxyPath\": \"false\",\n \"proxyMethod\": \"true\",\n \"proxyQueryParams\": \"true\",\n \"proxyBody\": \"true\"\n }\n}\n", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{cabEdcControl}}/management/v2/assets", + "host": [ + "{{cabEdcControl}}" + ], + "path": [ + "management", + "v2", + "assets" + ] + }, + "description": "Calls the datamanagement API in order to create a skill asset." + }, + "response": [] + }, + { + "name": "I_02_00_12_PROVIDER_SKILL", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Vehicle Health Skill Registered\", function () {", + " pm.expect(pm.response.code).oneOf([201,200]);", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "protocolProfileBehavior": { + "disabledSystemHeaders": { + "content-type": true + } + }, + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/sparql-query" + } + ], + "body": { + "mode": "raw", + "raw": "# Sample Skill accessing a graph\n\nSELECT ?subject ?predicate ?object WHERE { \n SERVICE <{{cabEdcIdsSparql}}> {\n GRAPH { \n ?subject ?predicate ?object. \n }\n } \n}", + "options": { + "raw": { + "language": "text" + } + } + }, + "url": { + "raw": "{{cabAgentPlane}}/api/agent/skill?distributionMode=PROVIDER&contract=Contract%3Fcab%3DAsset%26mode%3Dopen&asset=SkillAsset%3Fcab%3DConforming%26mode%3Dprovider&isFederated=true", + "host": [ + "{{cabAgentPlane}}" + ], + "path": [ + "api", + "agent", + "skill" + ], + "query": [ + { + "key": "distributionMode", + "value": "PROVIDER", + "description": "Distribution Mode may be ALL, PROVIDER or CONSUMER" + }, + { + "key": "contract", + "value": "Contract%3Fcab%3DAsset%26mode%3Dopen", + "description": "Name of the contract to publish the skill under" + }, + { + "key": "asset", + "value": "SkillAsset%3Fcab%3DConforming%26mode%3Dprovider", + "description": "Id of the skill" + }, + { + "key": "isFederated", + "value": "true", + "description": "Whether it is visible in the federated catalogue" + } + ] + }, + "description": "Uses the Agent Extension of the Dataplane to Store a Parameterized Query on Remote Graphs." + }, + "response": [] + }, + { + "name": "I_02_00_13_PROVIDER_SKILL_ALT", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Creation/Existance was successful\", function () {", + " pm.expect(pm.response.code).oneOf([200,204,409]);", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "X-Api-Key", + "value": "{{cabEdcApiKey}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"@context\": {\n \"rdf\": \"http://www.w3.org/1999/02/22-rdf-syntax-ns#\",\n \"rdfs\": \"http://www.w3.org/2000/01/rdf-schema#\",\n \"cx-common\": \"https://w3id.org/catenax/ontology/common#\",\n \"sh\": \"http://www.w3.org/ns/shacl#\"\n },\n \"asset\": {\n \"@type\": \"Asset\",\n \"@id\": \"SkillAsset?cab=Conforming&mode=provider\", \n \"properties\": {\n \"name\": \"Provider-Forced Skill\",\n \"description\": \"A conformity assessment skill.\",\n \"version\": \"1.9.4-SNAPSHOT\",\n \"contenttype\": \"application/json, application/xml\",\n \"cx-common:publishedUnderContract\": \"Contract?cab=Asset&mode=open\",\n \"rdf:type\": \"cx-common:SkillAsset\",\n \"rdfs:isDefinedBy\": \"\",\n \"cx-common:implementsProtocol\": \"cx-common:Protocol?w3c:http:SKILL\",\n \"cx-common:distributionMode\": \"cx-common:SkillDistribution?run=provider\",\n \"cx-common:isFederated\": \"true^^xsd:boolean\"\n },\n \"privateProperties\": {\n \"cx-common:query\":\"# Sample Skill accessing a graph\\n\\nSELECT ?subject ?predicate ?object WHERE { \\n SERVICE {\\n GRAPH { \\n ?subject ?predicate ?object. \\n }\\n } \\n}\"\n }\n },\n \"dataAddress\": {\n \"id\":\"SkillAsset?cab=Conforming&mode=provider\",\n \"@type\": \"DataAddress\",\n \"type\": \"cx-common:Protocol?w3c:http:SKILL\",\n \"proxyPath\": \"false\",\n \"proxyMethod\": \"true\",\n \"proxyQueryParams\": \"true\",\n \"proxyBody\": \"true\"\n }\n}\n", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{cabEdcControl}}/management/v2/assets", + "host": [ + "{{cabEdcControl}}" + ], + "path": [ + "management", + "v2", + "assets" + ] + }, + "description": "Calls the datamanagement API in order to create a skill asset." + }, + "response": [] + }, + { + "name": "I_02_00_14_CONSUMER_SKILL", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Vehicle Health Skill Registered\", function () {", + " pm.expect(pm.response.code).oneOf([201,200]);", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "protocolProfileBehavior": { + "disabledSystemHeaders": { + "content-type": true + } + }, + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/sparql-query" + } + ], + "body": { + "mode": "raw", + "raw": "# Sample Skill accessing a graph\n\nSELECT ?subject ?predicate ?object WHERE { \n SERVICE <{{cabEdcIdsSparql}}> {\n GRAPH { \n ?subject ?predicate ?object. \n }\n } \n}", + "options": { + "raw": { + "language": "text" + } + } + }, + "url": { + "raw": "{{cabAgentPlane}}/api/agent/skill?distributionMode=CONSUMER&contract=Contract%3Fcab%3DAsset%26mode%3Dopen&asset=SkillAsset%3Fcab%3DConforming%26mode%3Dconsumer&isFederated=true", + "host": [ + "{{cabAgentPlane}}" + ], + "path": [ + "api", + "agent", + "skill" + ], + "query": [ + { + "key": "distributionMode", + "value": "CONSUMER", + "description": "Distribution Mode may be ALL, PROVIDER or CONSUMER" + }, + { + "key": "contract", + "value": "Contract%3Fcab%3DAsset%26mode%3Dopen", + "description": "Name of the contract to publish the skill under" + }, + { + "key": "asset", + "value": "SkillAsset%3Fcab%3DConforming%26mode%3Dconsumer", + "description": "Id of the skill" + }, + { + "key": "isFederated", + "value": "true", + "description": "Whether it is visible in the federated catalogue" + } + ] + }, + "description": "Uses the Agent Extension of the Dataplane to Store a Parameterized Query on Remote Graphs." + }, + "response": [] + }, + { + "name": "I_02_00_15_CONSUMER_SKILL_ALT", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Creation/Existance was successful\", function () {", + " pm.expect(pm.response.code).oneOf([200,204,409]);", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "X-Api-Key", + "value": "{{cabEdcApiKey}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"@context\": {\n \"rdf\": \"http://www.w3.org/1999/02/22-rdf-syntax-ns#\",\n \"rdfs\": \"http://www.w3.org/2000/01/rdf-schema#\",\n \"cx-common\": \"https://w3id.org/catenax/ontology/common#\",\n \"sh\": \"http://www.w3.org/ns/shacl#\"\n },\n \"asset\": {\n \"@type\": \"Asset\",\n \"@id\": \"SkillAsset?cab=Conforming&mode=consumer\", \n \"properties\": {\n \"name\": \"Consumer-Forced Skill\",\n \"description\": \"A conformity assessment skill.\",\n \"version\": \"1.9.4-SNAPSHOT\",\n \"contenttype\": \"application/json, application/xml\",\n \"cx-common:publishedUnderContract\": \"Contract?cab=Asset&mode=open\",\n \"rdf:type\": \"cx-common:SkillAsset\",\n \"rdfs:isDefinedBy\": \"\",\n \"cx-common:implementsProtocol\": \"cx-common:Protocol?w3c:http:SKILL\",\n \"cx-common:distributionMode\": \"cx-common:SkillDistribution?run=consumer\",\n \"cx-common:isFederated\": \"true^^xsd:boolean\"\n },\n \"privateProperties\": {\n \"cx-common:query\":\"# Sample Skill accessing a graph\\n\\nSELECT ?subject ?predicate ?object WHERE { \\n SERVICE {\\n GRAPH { \\n ?subject ?predicate ?object. \\n }\\n } \\n}\"\n }\n },\n \"dataAddress\": {\n \"id\":\"SkillAsset?cab=Conforming&mode=consumer\",\n \"@type\": \"DataAddress\",\n \"type\": \"cx-common:Protocol?w3c:http:SKILL\",\n \"proxyPath\": \"false\",\n \"proxyMethod\": \"true\",\n \"proxyQueryParams\": \"true\",\n \"proxyBody\": \"true\"\n }\n}\n", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{cabEdcControl}}/management/v2/assets", + "host": [ + "{{cabEdcControl}}" + ], + "path": [ + "management", + "v2", + "assets" + ] + }, + "description": "Calls the datamanagement API in order to create a skill asset." + }, + "response": [] + }, + { + "name": "I_02_00_16_UNFEDERATED_SKILL", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Vehicle Health Skill Registered\", function () {", + " pm.expect(pm.response.code).oneOf([201,200]);", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "protocolProfileBehavior": { + "disabledSystemHeaders": { + "content-type": true + } + }, + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/sparql-query" + } + ], + "body": { + "mode": "raw", + "raw": "# Sample Skill accessing a graph\n\nSELECT ?subject ?predicate ?object WHERE { \n SERVICE <{{cabEdcIdsSparql}}> {\n GRAPH { \n ?subject ?predicate ?object. \n }\n } \n}", + "options": { + "raw": { + "language": "text" + } + } + }, + "url": { + "raw": "{{cabAgentPlane}}/api/agent/skill?distributionMode=ALL&contract=Contract%3Fcab%3DAsset%26mode%3Dopen&asset=SkillAsset%3Fcab%3DConforming%26mode%3Dunfederated&isFederated=false", + "host": [ + "{{cabAgentPlane}}" + ], + "path": [ + "api", + "agent", + "skill" + ], + "query": [ + { + "key": "distributionMode", + "value": "ALL", + "description": "Distribution Mode may be ALL, PROVIDER or CONSUMER" + }, + { + "key": "contract", + "value": "Contract%3Fcab%3DAsset%26mode%3Dopen", + "description": "Name of the contract to publish the skill under" + }, + { + "key": "asset", + "value": "SkillAsset%3Fcab%3DConforming%26mode%3Dunfederated", + "description": "Id of the skill" + }, + { + "key": "isFederated", + "value": "false" + } + ] + }, + "description": "Uses the Agent Extension of the Dataplane to Store a Parameterized Query on Remote Graphs." + }, + "response": [] + }, + { + "name": "I_02_00_17_UNFEDERATED_SKILL_ALT", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Creation/Existance was successful\", function () {", + " pm.expect(pm.response.code).oneOf([200,204,409]);", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "X-Api-Key", + "value": "{{cabEdcApiKey}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"@context\": {\n \"rdf\": \"http://www.w3.org/1999/02/22-rdf-syntax-ns#\",\n \"rdfs\": \"http://www.w3.org/2000/01/rdf-schema#\",\n \"cx-common\": \"https://w3id.org/catenax/ontology/common#\",\n \"sh\": \"http://www.w3.org/ns/shacl#\"\n },\n \"asset\": {\n \"@type\": \"Asset\",\n \"@id\": \"SkillAsset?cab=Conforming&mode=unfederated\", \n \"properties\": {\n \"name\": \"Unfederated Skill\",\n \"description\": \"A conformity assessment skill.\",\n \"version\": \"1.9.4-SNAPSHOT\",\n \"contenttype\": \"application/json, application/xml\",\n \"cx-common:publishedUnderContract\": \"Contract?cab=Asset&mode=open\",\n \"rdf:type\": \"cx-common:SkillAsset\",\n \"rdfs:isDefinedBy\": \"\",\n \"cx-common:implementsProtocol\": \"cx-common:Protocol?w3c:http:SKILL\",\n \"cx-common:distributionMode\": \"cx-common:SkillDistribution?run=all\",\n \"cx-common:isFederated\": \"false^^xsd:boolean\"\n },\n \"privateProperties\": {\n \"cx-common:query\":\"# Sample Skill accessing a graph\\n\\nSELECT ?subject ?predicate ?object WHERE { \\n SERVICE {\\n GRAPH { \\n ?subject ?predicate ?object. \\n }\\n } \\n}\"\n }\n },\n \"dataAddress\": {\n \"id\":\"SkillAsset?cab=Conforming&mode=unfederated\",\n \"@type\": \"DataAddress\",\n \"type\": \"cx-common:Protocol?w3c:http:SKILL\",\n \"proxyPath\": \"false\",\n \"proxyMethod\": \"true\",\n \"proxyQueryParams\": \"true\",\n \"proxyBody\": \"true\"\n }\n}\n", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{cabEdcControl}}/management/v2/assets", + "host": [ + "{{cabEdcControl}}" + ], + "path": [ + "management", + "v2", + "assets" + ] + }, + "description": "Calls the datamanagement API in order to create a skill asset." + }, + "response": [] + }, + { + "name": "I_02_00_18_EDC_OWN_CATALOGUE", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Listing of CAB Catalogue with open assets\", function () {", + " var jsonRequest=JSON.parse(pm.request.body.raw);", + " pm.expect(pm.response.code).oneOf([200]);", + " var jsonResponse=pm.response.json();", + " pm.expect(jsonResponse).to.have.property(\"@id\");", + " pm.expect(jsonResponse).to.have.property(\"@type\");", + " pm.expect(jsonResponse).to.have.property(\"@context\");", + " var type=jsonResponse[\"@type\"];", + " pm.expect(type).to.be.equal(\"dcat:Catalog\");", + " pm.expect(jsonResponse).to.have.property(\"edc:participantId\");", + " var participant=pm.response.json()[\"edc:participantId\"];", + " pm.expect(jsonResponse).to.have.property(\"dcat:service\");", + " var service=jsonResponse[\"dcat:service\"];", + " pm.expect(service).to.have.property(\"@id\");", + " pm.expect(service).to.have.property(\"@type\");", + " var serviceType=service[\"@type\"];", + " pm.expect(serviceType).to.be.equal(\"dcat:DataService\");", + " pm.expect(pm.response.json()).to.have.property(\"dcat:dataset\");", + " pm.expect(service).to.have.property(\"dct:terms\");", + " var serviceTerms=service[\"dct:terms\"];", + " pm.expect(serviceTerms).to.be.equal(\"connector\");", + " pm.expect(service).to.have.property(\"dct:endpointUrl\");", + " var serviceEndpoint=service[\"dct:endpointUrl\"];", + " pm.expect(jsonRequest.providerUrl).to.contain(serviceEndpoint);", + " ", + " var dataSets=jsonResponse['dcat:dataset'];", + " pm.expect(dataSets).to.be.not.null;", + " if(!Array.isArray(dataSets)) {", + " dataSets=[dataSets];", + " }", + "", + " pm.expect(dataSets).to.be.of.length.gte(0);", + "", + " dataSets.map(function(contractOffer) {", + " pm.expect(contractOffer).to.have.property(\"@id\");", + " pm.expect(contractOffer).to.have.property(\"@type\");", + " var contractOfferType=contractOffer[\"@type\"]; ", + " pm.expect(contractOfferType).to.be.equal(\"dcat:Dataset\");", + "", + " pm.expect(contractOffer).to.have.property(\"odrl:hasPolicy\");", + " var policy=contractOffer[\"odrl:hasPolicy\"];", + " pm.expect(policy).to.have.property(\"@id\");", + " pm.expect(policy).to.have.property(\"@type\");", + " var policyType=policy[\"@type\"];", + " pm.expect(policyType).to.be.equal(\"odrl:Set\");", + " pm.expect(policy).to.have.property(\"odrl:permission\");", + " pm.expect(policy).to.have.property(\"odrl:obligation\");", + " pm.expect(policy).to.have.property(\"odrl:prohibition\");", + " pm.expect(policy).to.have.property(\"odrl:target\");", + " var policyTarget=policy[\"odrl:target\"];", + "", + " pm.expect(contractOffer).to.have.property(\"dcat:distribution\");", + " var distributions=contractOffer[\"dcat:distribution\"];", + " pm.expect(distributions).to.be.not.null;", + " if(!Array.isArray(distributions)) {", + " distributions=[distributions];", + " }", + " distributions.map( function(distribution) {", + " pm.expect(distribution).to.have.property(\"@type\");", + " var distributionType=distribution[\"@type\"];", + " pm.expect(distributionType).to.be.equal(\"dcat:Distribution\");", + " pm.expect(distribution).to.have.property(\"dcat:accessService\");", + " pm.expect(distribution).to.have.property(\"dct:format\");", + " var distributionFormat=distribution[\"dct:format\"];", + " pm.expect(distributionFormat).to.have.property(\"@id\");", + " var distributionFormatId=distributionFormat[\"@id\"];", + " pm.expect(distributionFormatId).oneOf([\"HttpProxy\",\"AmazonS3\"]);", + " });", + "", + " pm.expect(contractOffer).to.have.property(\"edc:version\");", + " pm.expect(contractOffer).to.have.property(\"edc:id\");", + " pm.expect(contractOffer[\"edc:id\"]).to.be.equal(policyTarget);", + " pm.expect(contractOffer).to.have.property(\"edc:name\");", + " pm.expect(contractOffer).to.have.property(\"edc:description\");", + " pm.expect(contractOffer).to.have.property(\"edc:contenttype\");", + " var contenttype=contractOffer[\"edc:contenttype\"];", + " pm.expect(contenttype).to.contain(\"application/json\");", + " pm.expect(contenttype).to.contain(\"application/xml\");", + " pm.expect(contractOffer).to.have.property(\"http://www.w3.org/2000/01/rdf-schema#isDefinedBy\");", + " pm.expect(contractOffer).to.have.property(\"https://w3id.org/catenax/ontology/common#implementsProtocol\");", + " var protocol=contractOffer[\"https://w3id.org/catenax/ontology/common#implementsProtocol\"];", + " pm.expect(protocol).to.be.oneOf([\"cx-common:Protocol?w3c:http:SPARQL\",\"cx-common:Protocol?w3c:http:SKILL\"]);", + " pm.expect(contractOffer).to.have.property(\"https://w3id.org/catenax/ontology/common#isFederated\");", + " var isFederated=contractOffer[\"https://w3id.org/catenax/ontology/common#isFederated\"];", + " pm.expect(isFederated).to.be.oneOf([\"true\",\"false\",\"true^^xsd:boolean\",\"false^^xsd:boolean\"]);", + " pm.expect(contractOffer).to.have.property(\"http://www.w3.org/1999/02/22-rdf-syntax-ns#type\");", + " var assetType=contractOffer[\"http://www.w3.org/1999/02/22-rdf-syntax-ns#type\"];", + " pm.expect(assetType).to.be.oneOf([\"cx-common:GraphAsset\",\"cx-common:SkillAsset\"]);", + " });", + "", + " pm.expect(dataSets.some(", + " function(contractOffer) {", + " return contractOffer[\"edc:id\"] == 'GraphAsset?cab=Conforming&mode=open';", + " } ", + " )).to.eq(true);", + "", + " pm.expect(dataSets.some(", + " function(contractOffer) {", + " return contractOffer[\"edc:id\"] == 'SkillAsset?cab=Conforming&mode=open';", + " } ", + " )).to.eq(true);", + "", + " pm.expect(dataSets.some(", + " function(contractOffer) {", + " return contractOffer[\"edc:id\"] == 'SkillAsset?cab=Conforming&mode=consumer';", + " } ", + " )).to.eq(true);", + "", + " pm.expect(dataSets.some(", + " function(contractOffer) {", + " return contractOffer[\"edc:id\"] == 'SkillAsset?cab=Conforming&mode=provider';", + " } ", + " )).to.eq(true);", + "", + " pm.expect(dataSets.some(", + " function(contractOffer) {", + " return contractOffer[\"edc:id\"] == 'GraphAsset?cab=Conforming&mode=closed';", + " } ", + " )).to.eq(true);", + "", + " pm.expect(dataSets.some(", + " function(contractOffer) {", + " return contractOffer[\"edc:id\"] == 'SkillAsset?cab=Conforming&mode=closed';", + " } ", + " )).to.eq(true);", + "", + " pm.expect(dataSets.some(", + " function(contractOffer) {", + " return contractOffer[\"edc:id\"] == 'GraphAsset?cab=Conforming&mode=unfederated';", + " } ", + " )).to.eq(true);", + "", + " pm.expect(dataSets.some(", + " function(contractOffer) {", + " return contractOffer[\"edc:id\"] == 'SkillAsset?cab=Conforming&mode=unfederated';", + " } ", + " )).to.eq(true);", + "", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "protocolProfileBehavior": { + "disabledSystemHeaders": { + "content-type": true + } + }, + "request": { + "method": "POST", + "header": [ + { + "key": "X-Api-Key", + "value": "{{cabEdcApiKey}}" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": " {\n \"@context\": {\n \"xsd\": \"http://www.w3.org/2001/XMLSchema#\"\n },\n \"protocol\": \"dataspace-protocol-http\",\n \"providerUrl\": \"{{cabEdcIds}}/api/v1/dsp\",\n \"querySpec\": {\n \"offset\": 0,\n \"limit\": 200,\n \"sort\": \"DESC\",\n \"sortField\": \"https://w3id.org/edc/v0.0.1/ns/id\"\n }\n}\n" + }, + "url": { + "raw": "{{cabEdcControl}}/management/v2/catalog/request", + "host": [ + "{{cabEdcControl}}" + ], + "path": [ + "management", + "v2", + "catalog", + "request" + ] + }, + "description": "Use the public IDS api to retrieve the business partner view on the catalogue." + }, + "response": [] + } + ] + }, + { + "name": "02_ALL", + "item": [ + { + "name": "0201_EDC_CONTROL_PLANE", + "item": [ + { + "name": "020101_EDC_CONTROL_TRANSFER", + "item": [ + { + "name": "02010100_Transfer Get", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Transfer Get\", function () {", + " let warnings=pm.response.headers.find(function(header) { return header.key=='cx_warnings';});", + " if(warnings) {", + " var warningsJson = JSON.parse(warnings.value);", + " pm.expect(warningsJson).instanceOf(Array);", + " warningsJson.forEach(function(warning) {", + " pm.expect(warning).to.haveOwnProperty('source-tenant');", + " pm.expect(warning).to.haveOwnProperty('target-tenant');", + " pm.expect(warning).to.haveOwnProperty('target-asset');", + " pm.expect(warning).to.haveOwnProperty('problem');", + " pm.expect(warning).to.haveOwnProperty('context');", + " });", + " } ", + " pm.expect(pm.response.code).oneOf([200,203]);", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{transfer-target}}?cx_accept=application/sparql-results+json&asset={{test-asset}}", + "host": [ + "{{transfer-target}}" + ], + "query": [ + { + "key": "cx_accept", + "value": "application/sparql-results+json" + }, + { + "key": "asset", + "value": "{{test-asset}}" + } + ] + } + }, + "response": [] + }, + { + "name": "02010101_Transfer Post", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Transfer Get\", function () {", + " let warnings=pm.response.headers.find(function(header) { return header.key=='cx_warnings';});", + " if(warnings) {", + " var warningsJson = JSON.parse(warnings.value);", + " pm.expect(warningsJson).instanceOf(Array);", + " warningsJson.forEach(function(warning) {", + " pm.expect(warning).to.haveOwnProperty('source-tenant');", + " pm.expect(warning).to.haveOwnProperty('target-tenant');", + " pm.expect(warning).to.haveOwnProperty('target-asset');", + " pm.expect(warning).to.haveOwnProperty('problem');", + " pm.expect(warning).to.haveOwnProperty('context');", + " });", + " } ", + " pm.expect(pm.response.code).oneOf([200,203]);", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/sparql-results+json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"head\": {\n \"vars\": [\n \"var1\",\n \"var2\",\n \"var3\"\n ]\n },\n \"results\": {\n \"bindings\": [\n {\n \"var1\": {\n \"type\": \"literal\",\n \"value\": \"WHOLYDUMBSHIT\",\n \"xml:lang\": \"en\"\n },\n \"var2\": {\n \"type\": \"literal\",\n \"value\": \"4563.0\",\n \"datatype\": \"http://www.w3.org/2001/XMLSchema#float\" }\n },\n {\n \"var1\": {\n \"type\": \"literal\",\n \"value\": \"KRUZIFIX\",\n \"xml:lang\": \"de\"\n },\n \"var3\": {\n \"type\": \"literal\",\n \"dataType\": \"http://schema.json.org/2001/XMLSchema#Array\",\n \"value\": \"[91.1931437876285,82.87065725646937,0.1323891300303766,0.6915029359657375]\"\n }\n } \n ]\n }\n}" + }, + "url": { + "raw": "{{transfer-target}}?cx_accept=application/sparql-results+json&asset={{test-asset}}", + "host": [ + "{{transfer-target}}" + ], + "query": [ + { + "key": "cx_accept", + "value": "application/sparql-results+json" + }, + { + "key": "asset", + "value": "{{test-asset}}" + } + ] + } + }, + "response": [] + } + ] + } + ] + }, + { + "name": "0202_EDC_DATA_PLANE", + "item": [ + { + "name": "020201_EDC_DATA_TRANSFER", + "item": [] + } + ] + }, + { + "name": "0203_MATCHMAKING_AGENT", + "item": [ + { + "name": "020301_MATCHMAKING_CALLBACK", + "item": [] + }, + { + "name": "020302_MATCHMAKING_GET", + "item": [ + { + "name": "02020100_Simple Get", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Underspecified Get\", function () {", + " let warnings=pm.response.headers.find(function(header) { return header.key=='cx_warnings';});", + " if(warnings) {", + " var warningsJson = JSON.parse(warnings.value);", + " pm.expect(warningsJson).instanceOf(Array);", + " warningsJson.forEach(function(warning) {", + " pm.expect(warning).to.haveOwnProperty('source-tenant');", + " pm.expect(warning).to.haveOwnProperty('target-tenant');", + " pm.expect(warning).to.haveOwnProperty('target-asset');", + " pm.expect(warning).to.haveOwnProperty('problem');", + " pm.expect(warning).to.haveOwnProperty('context');", + " });", + " } ", + " pm.expect(pm.response.code).oneOf([200,203]);", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{matchmaking-target}}?asset={{test-asset}}", + "host": [ + "{{matchmaking-target}}" + ], + "query": [ + { + "key": "asset", + "value": "{{test-asset}}" + } + ] + } + }, + "response": [] + }, + { + "name": "02020102_Underspecified Get", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Underspecified Get\", function () {", + " let warnings=pm.response.headers.find(function(header) { return header.key=='cx_warnings';});", + " if(warnings) {", + " var warningsJson = JSON.parse(warnings.value);", + " pm.expect(warningsJson).instanceOf(Array);", + " warningsJson.forEach(function(warning) {", + " pm.expect(warning).to.haveOwnProperty('source-tenant');", + " pm.expect(warning).to.haveOwnProperty('target-tenant');", + " pm.expect(warning).to.haveOwnProperty('target-asset');", + " pm.expect(warning).to.haveOwnProperty('problem');", + " pm.expect(warning).to.haveOwnProperty('context');", + " });", + " } ", + " pm.expect(pm.response.code).oneOf([400]);", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{matchmaking-target}}", + "host": [ + "{{matchmaking-target}}" + ] + } + }, + "response": [] + }, + { + "name": "02020101_Get Json With Bound Predicate Copy", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Get With Bound Predicate\", function () {", + " let warnings=pm.response.headers.find(function(header) { return header.key=='cx_warnings';});", + " if(warnings) {", + " var warningsJson = JSON.parse(warnings.value);", + " pm.expect(warningsJson).instanceOf(Array);", + " warningsJson.forEach(function(warning) {", + " pm.expect(warning).to.haveOwnProperty('source-tenant');", + " pm.expect(warning).to.haveOwnProperty('target-tenant');", + " pm.expect(warning).to.haveOwnProperty('target-asset');", + " pm.expect(warning).to.haveOwnProperty('problem');", + " pm.expect(warning).to.haveOwnProperty('context');", + " });", + " } ", + " pm.expect(pm.response.code).oneOf([200,203]);", + " pm.expect(pm.response.json()).instanceof(Object);", + " pm.expect(pm.response.json()).to.haveOwnProperty('head');", + " pm.expect(pm.response.json().head).to.haveOwnProperty('vars');", + " pm.expect(pm.response.json().head.vars).to.eql(['subject','predicate','object']);", + " pm.expect(pm.response.json()).to.haveOwnProperty('results');", + " pm.expect(pm.response.json().results).to.haveOwnProperty('bindings');", + " pm.response.json().results.bindings.forEach(function(binding) {", + " pm.expect(binding).to.haveOwnProperty('subject');", + " pm.expect(binding.subject).to.haveOwnProperty('type');", + " pm.expect(binding.subject).to.haveOwnProperty('value');", + " pm.expect(binding).to.haveOwnProperty('object'); ", + " pm.expect(binding.object).to.haveOwnProperty('type');", + " pm.expect(binding.object).to.haveOwnProperty('value');", + " });", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "protocolProfileBehavior": { + "disabledSystemHeaders": { + "accept": true + } + }, + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/sparql-results+json" + } + ], + "url": { + "raw": "{{matchmaking-target}}?query=SELECT%20%3Fsubject%20%3Fpredicate%20%3Fobject%20WHERE%20%7B%20%3Fsubject%20{{bound-predicate}}%20%3Fobject.%7D", + "host": [ + "{{matchmaking-target}}" + ], + "query": [ + { + "key": "query", + "value": "SELECT%20%3Fsubject%20%3Fpredicate%20%3Fobject%20WHERE%20%7B%20%3Fsubject%20{{bound-predicate}}%20%3Fobject.%7D" + } + ] + } + }, + "response": [] + }, + { + "name": "I_02_01_06_MATCHMAKING_AGENT_CATALOGUE", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Invoking the Matchmaking Agent (Catalogue Only)\", function () {", + " pm.expect(pm.response.code).oneOf([200]);", + " pm.expect(pm.response.json()).to.have.property(\"head\");", + " pm.expect(pm.response.json()).to.have.property(\"results\");", + " pm.expect(pm.response.json().head).to.have.property(\"vars\");", + " pm.expect(pm.response.json().head.vars).to.have.length(3);", + " pm.expect(pm.response.json().results).to.have.property(\"bindings\");", + " pm.expect(pm.response.json().results.bindings).to.have.length.gte(0);", + " pm.response.json().results.bindings.map(function(binding) {", + " pm.expect(binding).to.have.property(\"subject\");", + " pm.expect(binding.subject).to.have.property(\"type\");", + " pm.expect(binding.subject).to.have.property(\"value\");", + " pm.expect(binding).to.have.property(\"predicate\");", + " pm.expect(binding.predicate).to.have.property(\"type\");", + " pm.expect(binding.predicate).to.have.property(\"value\");", + " pm.expect(binding).to.have.property(\"object\");", + " pm.expect(binding.object).to.have.property(\"type\");", + " pm.expect(binding.object).to.have.property(\"value\");", + " });", + " var tieraBPNL=pm.environment.get(\"tieraBPNL\");", + " pm.expect(pm.response.json().results.bindings.some(", + " function(binding) {", + " return binding.subject.value.endsWith(tieraBPNL) && binding.predicate.value == 'https://w3id.org/catenax/ontology/common#hasConnector';", + " } ", + " )).to.eq(true);", + " pm.expect(pm.response.json().results.bindings.some(", + " function(binding) {", + " return binding.subject.value.startsWith('https://w3id.org/catenax/ontology/common') && (binding.predicate.value.startsWith('http://www.w3.org/2000/01/rdf-schema') || binding.predicate.value.startsWith('http://www.w3.org/1999/02/22-rdf-syntax-ns'));", + " } ", + " )).to.eq(true);", + " pm.expect(pm.response.json().results.bindings.some(", + " function(binding) {", + " return binding.subject.value.startsWith('https://w3id.org/catenax/ontology/core') && (binding.predicate.value.startsWith('http://www.w3.org/2000/01/rdf-schema') || binding.predicate.value.startsWith('http://www.w3.org/1999/02/22-rdf-syntax-ns'));", + " } ", + " )).to.eq(true);", + " pm.expect(pm.response.json().results.bindings.some(", + " function(binding) {", + " return binding.subject.value.startsWith('https://w3id.org/catenax/ontology/vehicle') && (binding.predicate.value.startsWith('http://www.w3.org/2000/01/rdf-schema') || binding.predicate.value.startsWith('http://www.w3.org/1999/02/22-rdf-syntax-ns'));", + " } ", + " )).to.eq(true);", + " pm.expect(pm.response.json().results.bindings.some(", + " function(binding) {", + " return binding.subject.value.startsWith('https://w3id.org/catenax/ontology/function') && (binding.predicate.value.startsWith('http://www.w3.org/2000/01/rdf-schema') || binding.predicate.value.startsWith('http://www.w3.org/1999/02/22-rdf-syntax-ns'));", + " } ", + " )).to.eq(true);", + " pm.expect(pm.response.json().results.bindings.some(", + " function(binding) {", + " return binding.subject.value.startsWith('https://w3id.org/catenax/ontology/reliability') && (binding.predicate.value.startsWith('http://www.w3.org/2000/01/rdf-schema') || binding.predicate.value.startsWith('http://www.w3.org/1999/02/22-rdf-syntax-ns'));", + " } ", + " )).to.eq(true);", + " pm.expect(pm.response.json().results.bindings.some(", + " function(binding) {", + " return binding.subject.value.startsWith('https://w3id.org/catenax/ontology/behaviour') && (binding.predicate.value.startsWith('http://www.w3.org/2000/01/rdf-schema') || binding.predicate.value.startsWith('http://www.w3.org/1999/02/22-rdf-syntax-ns'));", + " } ", + " )).to.eq(true);", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{oemAgentPlane}}/api/agent?query=SELECT ?subject ?predicate ?object WHERE { ?subject ?predicate ?object.}", + "host": [ + "{{oemAgentPlane}}" + ], + "path": [ + "api", + "agent" + ], + "query": [ + { + "key": "asset", + "value": "urn:x-arq:DefaultGraph", + "description": "the default graph should be compliant", + "disabled": true + }, + { + "key": "query", + "value": "SELECT ?subject ?predicate ?object WHERE { ?subject ?predicate ?object.}", + "description": "A local query" + } + ] + }, + "description": "Uses the Agent Extension of the Dataplane to Perform Some Dynamic Query on a Local Graph (here: the federated data catalogue)." + }, + "response": [] + }, + { + "name": "I_02_01_07_MATCHMAKING_AGENT_CATALOGUE_FAILURE_NS", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Invoking the Matchmaking Agent With Wrong Namespaces\", function () {", + " pm.expect(pm.response.code).oneOf([200]);", + " pm.expect(pm.response.json()).to.have.property(\"head\");", + " pm.expect(pm.response.json()).to.have.property(\"results\");", + " pm.expect(pm.response.json().head).to.have.property(\"vars\");", + " pm.expect(pm.response.json().head.vars).to.have.length(3);", + " pm.expect(pm.response.json().results).to.have.property(\"bindings\");", + " pm.expect(pm.response.json().results.bindings).to.have.length.gte(0);", + " pm.response.json().results.bindings.map(function(binding) {", + " pm.expect(binding).to.have.property(\"subject\");", + " pm.expect(binding.subject).to.have.property(\"type\");", + " pm.expect(binding.subject).to.have.property(\"value\");", + " pm.expect(binding).to.have.property(\"predicate\");", + " pm.expect(binding.predicate).to.have.property(\"type\");", + " pm.expect(binding.predicate).to.have.property(\"value\");", + " pm.expect(binding).to.have.property(\"object\");", + " pm.expect(binding.object).to.have.property(\"type\");", + " pm.expect(binding.object).to.have.property(\"value\");", + " });", + " var tieraBPNL=pm.environment.get(\"tieraBPNL\");", + " pm.expect(pm.response.json().results.bindings.some(", + " function(binding) {", + " return binding.subject.value.endsWith(tieraBPNL) && binding.predicate.value == 'https://w3id.org/catenax/ontology/common#hasConnector';", + " } ", + " )).to.eq(false);", + " pm.expect(pm.response.json().results.bindings.some(", + " function(binding) {", + " return binding.subject.value.startsWith('https://w3id.org/catenax/ontology/common') && (binding.predicate.value.startsWith('http://www.w3.org/2000/01/rdf-schema') || binding.predicate.value.startsWith('http://www.w3.org/1999/02/22-rdf-syntax-ns'));", + " } ", + " )).to.eq(false);", + " pm.expect(pm.response.json().results.bindings.some(", + " function(binding) {", + " return binding.subject.value.startsWith('https://w3id.org/catenax/ontology/core') && (binding.predicate.value.startsWith('http://www.w3.org/2000/01/rdf-schema') || binding.predicate.value.startsWith('http://www.w3.org/1999/02/22-rdf-syntax-ns'));", + " } ", + " )).to.eq(false);", + " pm.expect(pm.response.json().results.bindings.some(", + " function(binding) {", + " return binding.subject.value.startsWith('https://w3id.org/catenax/ontology/vehicle') && (binding.predicate.value.startsWith('http://www.w3.org/2000/01/rdf-schema') || binding.predicate.value.startsWith('http://www.w3.org/1999/02/22-rdf-syntax-ns'));", + " } ", + " )).to.eq(false);", + " pm.expect(pm.response.json().results.bindings.some(", + " function(binding) {", + " return binding.subject.value.startsWith('https://w3id.org/catenax/ontology/reliability') && (binding.predicate.value.startsWith('http://www.w3.org/2000/01/rdf-schema') || binding.predicate.value.startsWith('http://www.w3.org/1999/02/22-rdf-syntax-ns'));", + " } ", + " )).to.eq(false);", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{oemAgentPlane}}/api/agent?query=SELECT ?subject ?predicate ?object WHERE { ?subject ?predicate ?object. FILTER(STRSTARTS(STR(?predicate),\"https://wrongid.org\"))}", + "host": [ + "{{oemAgentPlane}}" + ], + "path": [ + "api", + "agent" + ], + "query": [ + { + "key": "asset", + "value": "urn:x-arq:DefaultGraph", + "description": "the default graph should be compliant", + "disabled": true + }, + { + "key": "query", + "value": "SELECT ?subject ?predicate ?object WHERE { ?subject ?predicate ?object. FILTER(STRSTARTS(STR(?predicate),\"https://wrongid.org\"))}" + } + ] + }, + "description": "Uses the Agent Extension of the Dataplane to Perform Some Dynamic Query on a Local Graph (here: the federated data catalogue)." + }, + "response": [] + }, + { + "name": "I_02_01_08_MATCHMAKING_AGENT_CATALOGUE_FAILURE_SYNTAX", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Invoking the Matchmaking Agent With Wrong Syntax\", function () {", + " pm.expect(pm.response.code).oneOf([400]);", + " pm.expect(pm.response.json()).to.have.property(\"status\");", + " pm.expect(pm.response.json().status).to.be.equal(pm.response.code);", + " pm.expect(pm.response.json()).to.have.property(\"message\");", + " pm.expect(/^[+-\\d]+$/.test(pm.response.json().message)).to.be.equal(true);", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{oemAgentPlane}}/api/agent?query=SELECT ?subject, ?predicate, ?object WHERE { ?subject ?predicate ?object.}", + "host": [ + "{{oemAgentPlane}}" + ], + "path": [ + "api", + "agent" + ], + "query": [ + { + "key": "asset", + "value": "urn:x-arq:DefaultGraph", + "description": "the default graph should be compliant", + "disabled": true + }, + { + "key": "query", + "value": "SELECT ?subject, ?predicate, ?object WHERE { ?subject ?predicate ?object.}", + "description": "A local query" + } + ] + }, + "description": "Uses the Agent Extension of the Dataplane to Perform Some Dynamic Query on a Local Graph (here: the federated data catalogue)." + }, + "response": [] + }, + { + "name": "I_02_01_09_MATCHMAKING_AGENT_WIKIDATA", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Invoking the Matchmaking Agent (Wikidata Federation)\", function () {", + " pm.expect(pm.response.code).oneOf([200]);", + " pm.expect(pm.response.json()).to.have.property(\"head\");", + " pm.expect(pm.response.json()).to.have.property(\"results\");", + " pm.expect(pm.response.json().head).to.have.property(\"vars\");", + " pm.expect(pm.response.json().head.vars).to.have.length(1);", + " pm.expect(pm.response.json().results).to.have.property(\"bindings\");", + " pm.expect(pm.response.json().results.bindings).to.have.length.gte(0);", + " pm.response.json().results.bindings.map(function(binding) {", + " pm.expect(binding).to.have.property(\"item\");", + " pm.expect(binding.item).to.have.property(\"type\");", + " pm.expect(binding.item).to.have.property(\"value\");", + " pm.expect(binding.item.value.startsWith(\"http://www.wikidata.org\")).to.be.equal(true);", + " });", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{oemAgentPlane}}/api/agent?query=SELECT * { SERVICE { ?item } }", + "host": [ + "{{oemAgentPlane}}" + ], + "path": [ + "api", + "agent" + ], + "query": [ + { + "key": "asset", + "value": "urn:x-arq:DefaultGraph", + "description": "the default graph should be compliant", + "disabled": true + }, + { + "key": "query", + "value": "SELECT * { SERVICE { ?item } }" + } + ] + }, + "description": "Uses the Agent Extension of the Dataplane to Perform Some Dynamic Query on a Local Graph (here: the federated data catalogue)." + }, + "response": [] + } + ] + }, + { + "name": "020303_MATCHMAKING_POST", + "item": [ + { + "name": "02020101_Simple Post", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Underspecified Get\", function () {", + " let warnings=pm.response.headers.find(function(header) { return header.key=='cx_warnings';});", + " if(warnings) {", + " var warningsJson = JSON.parse(warnings.value);", + " pm.expect(warningsJson).instanceOf(Array);", + " warningsJson.forEach(function(warning) {", + " pm.expect(warning).to.haveOwnProperty('source-tenant');", + " pm.expect(warning).to.haveOwnProperty('target-tenant');", + " pm.expect(warning).to.haveOwnProperty('target-asset');", + " pm.expect(warning).to.haveOwnProperty('problem');", + " pm.expect(warning).to.haveOwnProperty('context');", + " });", + " } ", + " pm.expect(pm.response.code).oneOf([200,203]);", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/sparql-results+json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"head\": {\n \"vars\": [\n \"var1\",\n \"var2\",\n \"var3\"\n ]\n },\n \"results\": {\n \"bindings\": [\n {\n \"var1\": {\n \"type\": \"literal\",\n \"value\": \"WHOLYDUMBSHIT\",\n \"xml:lang\": \"en\"\n },\n \"var2\": {\n \"type\": \"literal\",\n \"value\": \"4563.0\",\n \"datatype\": \"http://www.w3.org/2001/XMLSchema#float\" }\n },\n {\n \"var1\": {\n \"type\": \"literal\",\n \"value\": \"KRUZIFIX\",\n \"xml:lang\": \"de\"\n },\n \"var3\": {\n \"type\": \"literal\",\n \"dataType\": \"http://schema.json.org/2001/XMLSchema#Array\",\n \"value\": \"[91.1931437876285,82.87065725646937,0.1323891300303766,0.6915029359657375]\"\n }\n } \n ]\n }\n}" + }, + "url": { + "raw": "{{matchmaking-target}}?asset={{test-asset}}", + "host": [ + "{{matchmaking-target}}" + ], + "query": [ + { + "key": "asset", + "value": "{{test-asset}}" + } + ] + } + }, + "response": [] + }, + { + "name": "03010102_Underspecified Post Copy", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Underspecified Post\", function () {", + " let warnings=pm.response.headers.find(function(header) { return header.key=='cx_warnings';});", + " if(warnings) {", + " var warningsJson = JSON.parse(warnings.value);", + " pm.expect(warningsJson).instanceOf(Array);", + " warningsJson.forEach(function(warning) {", + " pm.expect(warning).to.haveOwnProperty('source-tenant');", + " pm.expect(warning).to.haveOwnProperty('target-tenant');", + " pm.expect(warning).to.haveOwnProperty('target-asset');", + " pm.expect(warning).to.haveOwnProperty('problem');", + " pm.expect(warning).to.haveOwnProperty('context');", + " });", + " } ", + " pm.expect(pm.response.code).oneOf([400]);", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "protocolProfileBehavior": { + "disabledSystemHeaders": {} + }, + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/sparql-results+json" + } + ], + "url": { + "raw": "{{binding-target}}", + "host": [ + "{{binding-target}}" + ] + } + }, + "response": [] + }, + { + "name": "I_02_01_12_MATCHMAKING_AGENT_CLOSED_GRAPH", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Invoking the Matchmaking Agent Against a Closed CAB Asset\", function () {", + " pm.expect(pm.response.code).oneOf([400]);", + " pm.expect(pm.response.json()).to.have.property(\"status\");", + " pm.expect(pm.response.json().status).to.be.equal(pm.response.code);", + " pm.expect(pm.response.json()).to.have.property(\"message\");", + " pm.expect(/^[+-\\d]+$/.test(pm.response.json().message)).to.be.equal(true);", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "protocolProfileBehavior": { + "disabledSystemHeaders": { + "content-type": true + } + }, + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/sparql-query" + } + ], + "body": { + "mode": "raw", + "raw": "SELECT ?subject ?predicate ?object WHERE { \n ?subject ?predicate ?object. \n}" + }, + "url": { + "raw": "{{oemAgentPlane}}/api/agent?asset={{cabEdcIdsUrlEncode}}%23GraphAsset%3Fcab%3DConforming%26mode%3Dclosed", + "host": [ + "{{oemAgentPlane}}" + ], + "path": [ + "api", + "agent" + ], + "query": [ + { + "key": "asset", + "value": "{{cabEdcIdsUrlEncode}}%23GraphAsset%3Fcab%3DConforming%26mode%3Dclosed" + } + ] + }, + "description": "Uses the Agent Extension of the Dataplane to Perform Some Dynamic Query on a Local Graph (here: the federated data catalogue)." + }, + "response": [] + }, + { + "name": "I_02_01_11_MATCHMAKING_AGENT_OPEN_GRAPH", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Invoking the Matchmaking Agent Against an Open CAB Asset\", function () {", + " pm.expect(pm.response.code).oneOf([200]);", + " pm.expect(pm.response.json()).to.have.property(\"head\");", + " pm.expect(pm.response.json()).to.have.property(\"results\");", + " pm.expect(pm.response.json().head).to.have.property(\"vars\");", + " pm.expect(pm.response.json().head.vars).to.have.length(3);", + " pm.expect(pm.response.json().results).to.have.property(\"bindings\");", + " pm.expect(pm.response.json().results.bindings).to.have.length.gte(0);", + " pm.response.json().results.bindings.map(function(binding) {", + " pm.expect(binding).to.have.property(\"subject\");", + " pm.expect(binding.subject).to.have.property(\"type\");", + " pm.expect(binding.subject).to.have.property(\"value\");", + " pm.expect(binding).to.have.property(\"predicate\");", + " pm.expect(binding.predicate).to.have.property(\"type\");", + " pm.expect(binding.predicate).to.have.property(\"value\");", + " pm.expect(binding).to.have.property(\"object\");", + " pm.expect(binding.object).to.have.property(\"type\");", + " pm.expect(binding.object).to.have.property(\"value\");", + " });", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "protocolProfileBehavior": { + "disabledSystemHeaders": { + "content-type": true + } + }, + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/sparql-query" + } + ], + "body": { + "mode": "raw", + "raw": "SELECT ?subject ?predicate ?object WHERE { \n ?subject ?predicate ?object. \n}" + }, + "url": { + "raw": "{{oemAgentPlane}}/api/agent?asset={{cabEdcIdsUrlEncode}}%23GraphAsset%3Fcab%3DConforming%26mode%3Dopen", + "host": [ + "{{oemAgentPlane}}" + ], + "path": [ + "api", + "agent" + ], + "query": [ + { + "key": "asset", + "value": "{{cabEdcIdsUrlEncode}}%23GraphAsset%3Fcab%3DConforming%26mode%3Dopen" + } + ] + }, + "description": "Uses the Agent Extension of the Dataplane to Perform Some Dynamic Query on a Local Graph (here: the federated data catalogue)." + }, + "response": [] + } + ] + }, + { + "name": "020304_MATCHMAKING_SKILL", + "item": [] + } + ] + }, + { + "name": "0204_FEDERATED_CATALOGUE", + "item": [ + { + "name": "020401_FEDERATED_CATALOGUE_MODEL", + "item": [ + { + "name": "I_02_01_01_EDC_OWN_CATALOGUE", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Listing of Own Catalogue\", function () {", + " var jsonRequest=JSON.parse(pm.request.body.raw);", + " pm.expect(pm.response.code).oneOf([200]);", + " var jsonResponse=pm.response.json();", + " pm.expect(jsonResponse).to.have.property(\"@id\");", + " pm.expect(jsonResponse).to.have.property(\"@type\");", + " pm.expect(jsonResponse).to.have.property(\"@context\");", + " var type=jsonResponse[\"@type\"];", + " pm.expect(type).to.be.equal(\"dcat:Catalog\");", + " pm.expect(jsonResponse).to.have.property(\"edc:participantId\");", + " var participant=pm.response.json()[\"edc:participantId\"];", + " pm.expect(jsonResponse).to.have.property(\"dcat:service\");", + " var service=jsonResponse[\"dcat:service\"];", + " pm.expect(service).to.have.property(\"@id\");", + " pm.expect(service).to.have.property(\"@type\");", + " var serviceType=service[\"@type\"];", + " pm.expect(serviceType).to.be.equal(\"dcat:DataService\");", + " pm.expect(pm.response.json()).to.have.property(\"dcat:dataset\");", + " pm.expect(service).to.have.property(\"dct:terms\");", + " var serviceTerms=service[\"dct:terms\"];", + " pm.expect(serviceTerms).to.be.equal(\"connector\");", + " pm.expect(service).to.have.property(\"dct:endpointUrl\");", + " var serviceEndpoint=service[\"dct:endpointUrl\"];", + " pm.expect(jsonRequest.providerUrl).to.contain(serviceEndpoint);", + " ", + " var dataSets=jsonResponse['dcat:dataset'];", + " pm.expect(dataSets).to.be.not.null;", + " if(!Array.isArray(dataSets)) {", + " dataSets=[dataSets];", + " }", + "", + " dataSets.map(function(contractOffer) {", + " pm.expect(contractOffer).to.have.property(\"@id\");", + " pm.expect(contractOffer).to.have.property(\"@type\");", + " var contractOfferType=contractOffer[\"@type\"]; ", + " pm.expect(contractOfferType).to.be.equal(\"dcat:Dataset\");", + "", + " pm.expect(contractOffer).to.have.property(\"odrl:hasPolicy\");", + " var policy=contractOffer[\"odrl:hasPolicy\"];", + " pm.expect(policy).to.have.property(\"@id\");", + " pm.expect(policy).to.have.property(\"@type\");", + " var policyType=policy[\"@type\"];", + " pm.expect(policyType).to.be.equal(\"odrl:Set\");", + " pm.expect(policy).to.have.property(\"odrl:permission\");", + " pm.expect(policy).to.have.property(\"odrl:obligation\");", + " pm.expect(policy).to.have.property(\"odrl:prohibition\");", + " pm.expect(policy).to.have.property(\"odrl:target\");", + " var policyTarget=policy[\"odrl:target\"];", + "", + " pm.expect(contractOffer).to.have.property(\"dcat:distribution\");", + " var distributions=contractOffer[\"dcat:distribution\"];", + " pm.expect(distributions).to.be.not.null;", + " if(!Array.isArray(distributions)) {", + " distributions=[distributions];", + " }", + " distributions.map( function(distribution) {", + " pm.expect(distribution).to.have.property(\"@type\");", + " var distributionType=distribution[\"@type\"];", + " pm.expect(distributionType).to.be.equal(\"dcat:Distribution\");", + " pm.expect(distribution).to.have.property(\"dcat:accessService\");", + " pm.expect(distribution).to.have.property(\"dct:format\");", + " var distributionFormat=distribution[\"dct:format\"];", + " pm.expect(distributionFormat).to.have.property(\"@id\");", + " var distributionFormatId=distributionFormat[\"@id\"];", + " pm.expect(distributionFormatId).oneOf([\"HttpProxy\",\"AmazonS3\"]);", + " });", + "", + " pm.expect(contractOffer).to.have.property(\"edc:version\");", + " pm.expect(contractOffer).to.have.property(\"edc:id\");", + " pm.expect(contractOffer[\"edc:id\"]).to.be.equal(policyTarget);", + " pm.expect(contractOffer).to.have.property(\"edc:name\");", + " pm.expect(contractOffer).to.have.property(\"edc:description\");", + " pm.expect(contractOffer).to.have.property(\"edc:contenttype\");", + " var contenttype=contractOffer[\"edc:contenttype\"];", + " pm.expect(contenttype).to.contain(\"application/json\");", + " pm.expect(contenttype).to.contain(\"application/xml\");", + " pm.expect(contractOffer).to.have.property(\"http://www.w3.org/2000/01/rdf-schema#isDefinedBy\");", + " pm.expect(contractOffer).to.have.property(\"https://w3id.org/catenax/ontology/common#implementsProtocol\");", + " var protocol=contractOffer[\"https://w3id.org/catenax/ontology/common#implementsProtocol\"];", + " pm.expect(protocol).to.be.oneOf([\"cx-common:Protocol?w3c:http:SPARQL\",\"cx-common:Protocol?w3c:http:SKILL\"]);", + " pm.expect(contractOffer).to.have.property(\"https://w3id.org/catenax/ontology/common#isFederated\");", + " var isFederated=contractOffer[\"https://w3id.org/catenax/ontology/common#isFederated\"];", + " pm.expect(isFederated).to.be.oneOf([\"true\",\"false\",\"true^^xsd:boolean\",\"false^^xsd:boolean\"]);", + " pm.expect(contractOffer).to.have.property(\"http://www.w3.org/1999/02/22-rdf-syntax-ns#type\");", + " var assetType=contractOffer[\"http://www.w3.org/1999/02/22-rdf-syntax-ns#type\"];", + " pm.expect(assetType).to.be.oneOf([\"cx-common:GraphAsset\",\"cx-common:SkillAsset\"]);", + " });", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "protocolProfileBehavior": { + "disabledSystemHeaders": { + "content-type": true + } + }, + "request": { + "method": "POST", + "header": [ + { + "key": "X-Api-Key", + "value": "{{oemEdcApiKey}}" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": " {\n \"@context\": {\n \"xsd\": \"http://www.w3.org/2001/XMLSchema#\"\n },\n \"protocol\": \"dataspace-protocol-http\",\n \"providerUrl\": \"{{oemEdcProviderControl}}/api/v1/dsp\",\n \"querySpec\": {\n \"offset\": 0,\n \"limit\": 10,\n \"sort\": \"DESC\",\n \"sortField\": \"https://w3id.org/edc/v0.0.1/ns/id\",\n \"filterExpression\": [\n {\n \"operandLeft\": \"https://w3id.org/catenax/ontology/common#isFederated\",\n \"operator\":\"=\",\n \"operandRight\":\"true^^xsd:boolean\"\n }\n ]\n }\n}\n" + }, + "url": { + "raw": "{{oemEdcProviderControl}}/management/v2/catalog/request", + "host": [ + "{{oemEdcProviderControl}}" + ], + "path": [ + "management", + "v2", + "catalog", + "request" + ] + }, + "description": "Use the public IDS api to retrieve the business partner view on the catalogue." + }, + "response": [] + }, + { + "name": "I_02_01_10_EDC_CAB_CATALOGUE", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Listing of CAB Catalogue with open assets\", function () {", + " var jsonRequest=JSON.parse(pm.request.body.raw);", + " pm.expect(pm.response.code).oneOf([200]);", + " var jsonResponse=pm.response.json();", + " pm.expect(jsonResponse).to.have.property(\"@id\");", + " pm.expect(jsonResponse).to.have.property(\"@type\");", + " pm.expect(jsonResponse).to.have.property(\"@context\");", + " var type=jsonResponse[\"@type\"];", + " pm.expect(type).to.be.equal(\"dcat:Catalog\");", + " pm.expect(jsonResponse).to.have.property(\"edc:participantId\");", + " var participant=pm.response.json()[\"edc:participantId\"];", + " pm.expect(jsonResponse).to.have.property(\"dcat:service\");", + " var service=jsonResponse[\"dcat:service\"];", + " pm.expect(service).to.have.property(\"@id\");", + " pm.expect(service).to.have.property(\"@type\");", + " var serviceType=service[\"@type\"];", + " pm.expect(serviceType).to.be.equal(\"dcat:DataService\");", + " pm.expect(pm.response.json()).to.have.property(\"dcat:dataset\");", + " pm.expect(service).to.have.property(\"dct:terms\");", + " var serviceTerms=service[\"dct:terms\"];", + " pm.expect(serviceTerms).to.be.equal(\"connector\");", + " pm.expect(service).to.have.property(\"dct:endpointUrl\");", + " var serviceEndpoint=service[\"dct:endpointUrl\"];", + " pm.expect(jsonRequest.providerUrl).to.contain(serviceEndpoint);", + " ", + " var dataSets=jsonResponse['dcat:dataset'];", + " pm.expect(dataSets).to.be.not.null;", + " if(!Array.isArray(dataSets)) {", + " dataSets=[dataSets];", + " }", + "", + " pm.expect(dataSets).to.be.of.length.gte(0);", + "", + " dataSets.map(function(contractOffer) {", + " pm.expect(contractOffer).to.have.property(\"@id\");", + " pm.expect(contractOffer).to.have.property(\"@type\");", + " var contractOfferType=contractOffer[\"@type\"]; ", + " pm.expect(contractOfferType).to.be.equal(\"dcat:Dataset\");", + "", + " pm.expect(contractOffer).to.have.property(\"odrl:hasPolicy\");", + " var policy=contractOffer[\"odrl:hasPolicy\"];", + " pm.expect(policy).to.have.property(\"@id\");", + " pm.expect(policy).to.have.property(\"@type\");", + " var policyType=policy[\"@type\"];", + " pm.expect(policyType).to.be.equal(\"odrl:Set\");", + " pm.expect(policy).to.have.property(\"odrl:permission\");", + " pm.expect(policy).to.have.property(\"odrl:obligation\");", + " pm.expect(policy).to.have.property(\"odrl:prohibition\");", + " pm.expect(policy).to.have.property(\"odrl:target\");", + " var policyTarget=policy[\"odrl:target\"];", + "", + " pm.expect(contractOffer).to.have.property(\"dcat:distribution\");", + " var distributions=contractOffer[\"dcat:distribution\"];", + " pm.expect(distributions).to.be.not.null;", + " if(!Array.isArray(distributions)) {", + " distributions=[distributions];", + " }", + " distributions.map( function(distribution) {", + " pm.expect(distribution).to.have.property(\"@type\");", + " var distributionType=distribution[\"@type\"];", + " pm.expect(distributionType).to.be.equal(\"dcat:Distribution\");", + " pm.expect(distribution).to.have.property(\"dcat:accessService\");", + " pm.expect(distribution).to.have.property(\"dct:format\");", + " var distributionFormat=distribution[\"dct:format\"];", + " pm.expect(distributionFormat).to.have.property(\"@id\");", + " var distributionFormatId=distributionFormat[\"@id\"];", + " pm.expect(distributionFormatId).oneOf([\"HttpProxy\",\"AmazonS3\"]);", + " });", + "", + " pm.expect(contractOffer).to.have.property(\"edc:version\");", + " pm.expect(contractOffer).to.have.property(\"edc:id\");", + " pm.expect(contractOffer[\"edc:id\"]).to.be.equal(policyTarget);", + " pm.expect(contractOffer).to.have.property(\"edc:name\");", + " pm.expect(contractOffer).to.have.property(\"edc:description\");", + " pm.expect(contractOffer).to.have.property(\"edc:contenttype\");", + " var contenttype=contractOffer[\"edc:contenttype\"];", + " pm.expect(contenttype).to.contain(\"application/json\");", + " pm.expect(contenttype).to.contain(\"application/xml\");", + " pm.expect(contractOffer).to.have.property(\"http://www.w3.org/2000/01/rdf-schema#isDefinedBy\");", + " pm.expect(contractOffer).to.have.property(\"https://w3id.org/catenax/ontology/common#implementsProtocol\");", + " var protocol=contractOffer[\"https://w3id.org/catenax/ontology/common#implementsProtocol\"];", + " pm.expect(protocol).to.be.oneOf([\"cx-common:Protocol?w3c:http:SPARQL\",\"cx-common:Protocol?w3c:http:SKILL\"]);", + " pm.expect(contractOffer).to.have.property(\"https://w3id.org/catenax/ontology/common#isFederated\");", + " var isFederated=contractOffer[\"https://w3id.org/catenax/ontology/common#isFederated\"];", + " pm.expect(isFederated).to.be.oneOf([\"true\",\"false\",\"true^^xsd:boolean\",\"false^^xsd:boolean\"]);", + " pm.expect(contractOffer).to.have.property(\"http://www.w3.org/1999/02/22-rdf-syntax-ns#type\");", + " var assetType=contractOffer[\"http://www.w3.org/1999/02/22-rdf-syntax-ns#type\"];", + " pm.expect(assetType).to.be.oneOf([\"cx-common:GraphAsset\",\"cx-common:SkillAsset\"]);", + " });", + "", + " pm.expect(dataSets.some(", + " function(contractOffer) {", + " return contractOffer[\"edc:id\"] == 'GraphAsset?cab=Conforming&mode=open';", + " } ", + " )).to.eq(true);", + "", + " pm.expect(dataSets.some(", + " function(contractOffer) {", + " return contractOffer[\"edc:id\"] == 'SkillAsset?cab=Conforming&mode=open';", + " } ", + " )).to.eq(true);", + "", + " pm.expect(dataSets.some(", + " function(contractOffer) {", + " return contractOffer[\"edc:id\"] == 'SkillAsset?cab=Conforming&mode=consumer';", + " } ", + " )).to.eq(true);", + "", + " pm.expect(dataSets.some(", + " function(contractOffer) {", + " return contractOffer[\"edc:id\"] == 'SkillAsset?cab=Conforming&mode=provider';", + " } ", + " )).to.eq(true);", + "", + " pm.expect(dataSets.some(", + " function(contractOffer) {", + " return contractOffer[\"edc:id\"] == 'GraphAsset?cab=Conforming&mode=closed' || contractOffer[\"edc:id\"] == 'SkillAsset?cab=Conforming&mode=closed' || contractOffer[\"edc:id\"] == 'GraphAsset?cab=Conforming&mode=unfederated' || contractOffer[\"edc:id\"] == 'SkillAsset?cab=Conforming&mode=unfederated';", + " } ", + " )).to.eq(false);", + "", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "protocolProfileBehavior": { + "disabledSystemHeaders": { + "content-type": true + } + }, + "request": { + "method": "POST", + "header": [ + { + "key": "X-Api-Key", + "value": "{{oemEdcApiKey}}" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": " {\n \"@context\": {\n \"xsd\": \"http://www.w3.org/2001/XMLSchema#\"\n },\n \"protocol\": \"dataspace-protocol-http\",\n \"providerUrl\": \"{{cabEdcIds}}/api/v1/dsp\",\n \"querySpec\": {\n \"offset\": 0,\n \"limit\": 10,\n \"sort\": \"DESC\",\n \"sortField\": \"https://w3id.org/edc/v0.0.1/ns/id\",\n \"filterExpression\": [\n {\n \"operandLeft\": \"https://w3id.org/catenax/ontology/common#isFederated\",\n \"operator\":\"=\",\n \"operandRight\":\"true^^xsd:boolean\"\n }\n ]\n }\n}\n" + }, + "url": { + "raw": "{{oemEdcProviderControl}}/management/v2/catalog/request", + "host": [ + "{{oemEdcProviderControl}}" + ], + "path": [ + "management", + "v2", + "catalog", + "request" + ] + }, + "description": "Use the public IDS api to retrieve the business partner view on the catalogue." + }, + "response": [] + } + ] + }, + { + "name": "020402_FEDERATED_CATALOGUE_COMMON", + "item": [] + }, + { + "name": "020403_FEDERATED_CATALOGUE_SYNC", + "item": [] + } + ] + } + ] + }, + { + "name": "03_PROVIDER", + "item": [ + { + "name": "0301_PROVIDER_DATA", + "item": [ + { + "name": "030101_PROVIDER_DATA_SPARQL", + "item": [ + { + "name": "03010100_Underspecified Get", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Underspecified Get\", function () {", + " let warnings=pm.response.headers.find(function(header) { return header.key=='cx_warnings';});", + " if(warnings) {", + " var warningsJson = JSON.parse(warnings.value);", + " pm.expect(warningsJson).instanceOf(Array);", + " warningsJson.forEach(function(warning) {", + " pm.expect(warning).to.haveOwnProperty('source-tenant');", + " pm.expect(warning).to.haveOwnProperty('target-tenant');", + " pm.expect(warning).to.haveOwnProperty('target-asset');", + " pm.expect(warning).to.haveOwnProperty('problem');", + " pm.expect(warning).to.haveOwnProperty('context');", + " });", + " } ", + " pm.expect(pm.response.code).oneOf([400]);", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{binding-target}}", + "host": [ + "{{binding-target}}" + ] + } + }, + "response": [] + }, + { + "name": "03010101_Get Json With Bound Predicate", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Get With Bound Predicate\", function () {", + " let warnings=pm.response.headers.find(function(header) { return header.key=='cx_warnings';});", + " if(warnings) {", + " var warningsJson = JSON.parse(warnings.value);", + " pm.expect(warningsJson).instanceOf(Array);", + " warningsJson.forEach(function(warning) {", + " pm.expect(warning).to.haveOwnProperty('source-tenant');", + " pm.expect(warning).to.haveOwnProperty('target-tenant');", + " pm.expect(warning).to.haveOwnProperty('target-asset');", + " pm.expect(warning).to.haveOwnProperty('problem');", + " pm.expect(warning).to.haveOwnProperty('context');", + " });", + " } ", + " pm.expect(pm.response.code).oneOf([200,203]);", + " pm.expect(pm.response.json()).instanceof(Object);", + " pm.expect(pm.response.json()).to.haveOwnProperty('head');", + " pm.expect(pm.response.json().head).to.haveOwnProperty('vars');", + " pm.expect(pm.response.json().head.vars).to.eql(['subject','predicate','object']);", + " pm.expect(pm.response.json()).to.haveOwnProperty('results');", + " pm.expect(pm.response.json().results).to.haveOwnProperty('bindings');", + " pm.response.json().results.bindings.forEach(function(binding) {", + " pm.expect(binding).to.haveOwnProperty('subject');", + " pm.expect(binding.subject).to.haveOwnProperty('type');", + " pm.expect(binding.subject).to.haveOwnProperty('value');", + " pm.expect(binding).to.haveOwnProperty('object'); ", + " pm.expect(binding.object).to.haveOwnProperty('type');", + " pm.expect(binding.object).to.haveOwnProperty('value');", + " });", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "protocolProfileBehavior": { + "disabledSystemHeaders": { + "accept": true + } + }, + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/sparql-results+json" + } + ], + "url": { + "raw": "{{binding-target}}?query=SELECT%20%3Fsubject%20%3Fpredicate%20%3Fobject%20WHERE%20%7B%20%3Fsubject%20{{bound-predicate}}%20%3Fobject.%7D", + "host": [ + "{{binding-target}}" + ], + "query": [ + { + "key": "query", + "value": "SELECT%20%3Fsubject%20%3Fpredicate%20%3Fobject%20WHERE%20%7B%20%3Fsubject%20{{bound-predicate}}%20%3Fobject.%7D" + } + ] + } + }, + "response": [] + }, + { + "name": "03010101_Get Json With Unbound Predicate", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Get With Bound Predicate\", function () {", + " let warnings=pm.response.headers.find(function(header) { return header.key=='cx_warnings';});", + " if(warnings) {", + " var warningsJson = JSON.parse(warnings.value);", + " pm.expect(warningsJson).instanceOf(Array);", + " warningsJson.forEach(function(warning) {", + " pm.expect(warning).to.haveOwnProperty('source-tenant');", + " pm.expect(warning).to.haveOwnProperty('target-tenant');", + " pm.expect(warning).to.haveOwnProperty('target-asset');", + " pm.expect(warning).to.haveOwnProperty('problem');", + " pm.expect(warning).to.haveOwnProperty('context');", + " });", + " } ", + " pm.expect(pm.response.code).oneOf([400]);", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "protocolProfileBehavior": { + "disabledSystemHeaders": { + "accept": true + } + }, + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/sparql-results+json" + } + ], + "url": { + "raw": "{{binding-target}}?query=SELECT%20%3Fsubject%20%3Fpredicate%20%3Fobject%20WHERE%20%7B%20%3Fsubject%20%3Fpredicate%20%3Fobject.%7D", + "host": [ + "{{binding-target}}" + ], + "query": [ + { + "key": "query", + "value": "SELECT%20%3Fsubject%20%3Fpredicate%20%3Fobject%20WHERE%20%7B%20%3Fsubject%20%3Fpredicate%20%3Fobject.%7D" + } + ] + } + }, + "response": [] + }, + { + "name": "03010102_Underspecified Post", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Underspecified Post\", function () {", + " let warnings=pm.response.headers.find(function(header) { return header.key=='cx_warnings';});", + " if(warnings) {", + " var warningsJson = JSON.parse(warnings.value);", + " pm.expect(warningsJson).instanceOf(Array);", + " warningsJson.forEach(function(warning) {", + " pm.expect(warning).to.haveOwnProperty('source-tenant');", + " pm.expect(warning).to.haveOwnProperty('target-tenant');", + " pm.expect(warning).to.haveOwnProperty('target-asset');", + " pm.expect(warning).to.haveOwnProperty('problem');", + " pm.expect(warning).to.haveOwnProperty('context');", + " });", + " } ", + " pm.expect(pm.response.code).oneOf([400]);", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "protocolProfileBehavior": { + "disabledSystemHeaders": {} + }, + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/sparql-results+json" + } + ], + "url": { + "raw": "{{binding-target}}", + "host": [ + "{{binding-target}}" + ] + } + }, + "response": [] + }, + { + "name": "I_02_01_02_PROVISIONING_AGENT", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Accessing the Reliablity Graph\", function () {", + " pm.expect(pm.response.code).oneOf([200]);", + " pm.expect(pm.response.json()).to.have.property(\"head\");", + " pm.expect(pm.response.json()).to.have.property(\"results\");", + " pm.expect(pm.response.json().head).to.have.property(\"vars\");", + " pm.expect(pm.response.json().head.vars).to.have.length(17);", + " pm.expect(pm.response.json().results).to.have.property(\"bindings\");", + " pm.expect(pm.response.json().results.bindings).to.have.length(2);", + " pm.response.json().results.bindings.map(function(binding) {", + " pm.expect(binding).to.have.property(\"vehicle\");", + " pm.expect(binding.vehicle).to.have.property(\"type\");", + " pm.expect(binding.vehicle).to.have.property(\"value\");", + " pm.expect(binding).to.have.property(\"van\");", + " pm.expect(binding.van).to.have.property(\"type\");", + " pm.expect(binding.van).to.have.property(\"value\");", + " pm.expect(binding).to.have.property(\"aggregate\");", + " pm.expect(binding.aggregate).to.have.property(\"type\");", + " pm.expect(binding.aggregate).to.have.property(\"value\");", + " pm.expect(binding).to.have.property(\"assembly\");", + " pm.expect(binding.assembly).to.have.property(\"type\");", + " pm.expect(binding.assembly).to.have.property(\"value\");", + " pm.expect(binding).to.have.property(\"supplier\");", + " pm.expect(binding.supplier).to.have.property(\"type\");", + " pm.expect(binding.supplier).to.have.property(\"value\");", + " pm.expect(binding).to.have.property(\"operatingTime\");", + " pm.expect(binding.operatingTime).to.have.property(\"type\");", + " pm.expect(binding.operatingTime).to.have.property(\"value\");", + " pm.expect(binding).to.have.property(\"mileage\");", + " pm.expect(binding.mileage).to.have.property(\"type\");", + " pm.expect(binding.mileage).to.have.property(\"value\");", + " pm.expect(binding).to.have.property(\"recordDate\");", + " pm.expect(binding.recordDate).to.have.property(\"type\");", + " pm.expect(binding.recordDate).to.have.property(\"value\");", + " pm.expect(binding).to.have.property(\"ls_type\");", + " pm.expect(binding.ls_type).to.have.property(\"type\");", + " pm.expect(binding.ls_type).to.have.property(\"value\");", + " pm.expect(binding.ls_type.value).to.be.oneOf([\"GearOil\",\"GearSet\"]);", + " pm.expect(binding).to.have.property(\"ls_name\");", + " pm.expect(binding.ls_name).to.have.property(\"type\");", + " pm.expect(binding.ls_name).to.have.property(\"value\");", + " pm.expect(binding).to.have.property(\"ls_value\");", + " pm.expect(binding.ls_value).to.have.property(\"type\");", + " pm.expect(binding.ls_value).to.have.property(\"value\");", + " pm.expect(binding).to.have.property(\"ls_unit\");", + " pm.expect(binding.ls_unit).to.have.property(\"type\");", + " pm.expect(binding.ls_unit).to.have.property(\"value\");", + " pm.expect(binding).to.have.property(\"ls_method\");", + " pm.expect(binding.ls_method).to.have.property(\"type\");", + " pm.expect(binding.ls_method).to.have.property(\"value\");", + " pm.expect(binding).to.have.property(\"ls_channels\");", + " pm.expect(binding.ls_channels).to.have.property(\"type\");", + " pm.expect(binding.ls_channels).to.have.property(\"value\");", + " pm.expect(binding).to.have.property(\"ls_classes\");", + " pm.expect(binding.ls_classes).to.have.property(\"type\");", + " pm.expect(binding.ls_classes).to.have.property(\"value\");", + " pm.expect(binding).to.have.property(\"ls_values\");", + " pm.expect(binding.ls_values).to.have.property(\"type\");", + " pm.expect(binding.ls_values).to.have.property(\"value\");", + " });", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "protocolProfileBehavior": { + "disabledSystemHeaders": { + "accept": true + } + }, + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/sparql-query" + }, + { + "key": "Accept", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "PREFIX cx-common: \nPREFIX cx-core: \nPREFIX cx-vehicle: \nPREFIX cx-reliability: \nPREFIX rdf: \nPREFIX rdfs: \nPREFIX xsd: \nPREFIX json: \n\nSELECT ?vehicle ?van ?aggregate ?assembly ?supplier ?teleAnalysis ?operatingTime ?mileage ?recordDate ?ls_type ?ls_name ?ls_value ?ls_unit ?ls_method ?ls_channels ?ls_classes ?ls_values WHERE {\n\n VALUES (?van ?aggregate) { \n (\"{{sampleVAN}}\"^^xsd:string \"{{sampleAssembly}}\"^^xsd:string) \n }\n\n VALUES (?ls_type) { \n (\"GearOil\"^^xsd:string) (\"GearSet\"^^xsd:string) \n }\n\n ?vehicle rdf:type cx-vehicle:Vehicle;\n cx-vehicle:vehicleIdentificationNumber ?van.\n\n ?assembly rdf:type cx-vehicle:Part;\n cx-vehicle:name ?aggregate;\n cx-vehicle:isPartOf ?vehicle;\n cx-vehicle:supplier ?supplier.\n \n ?teleAnalysis rdf:type cx-reliability:Analysis;\n cx-reliability:analysedObject ?assembly;\n cx-reliability:operatingHoursOfVehicle ?operatingTime;\n cx-reliability:mileageOfVehicle ?mileage;\n cx-core:startDateTime ?recordDate;\n cx-reliability:result [\n cx-core:id ?ls_type;\n cx-core:name ?ls_name;\n cx-reliability:countingValue ?ls_value;\n cx-reliability:countingUnit ?ls_unit;\n cx-reliability:countingMethod ?ls_method;\n cx-reliability:channels ?ls_channels;\n cx-reliability:classes ?ls_classes;\n cx-reliability:values ?ls_values\n ].\n\n} \n" + }, + "url": { + "raw": "{{provisioningAgent}}/{{reliabilityPath}}/sparql", + "host": [ + "{{provisioningAgent}}" + ], + "path": [ + "{{reliabilityPath}}", + "sparql" + ] + } + }, + "response": [] + }, + { + "name": "I_02_01_03_PROVISIONING_AGENT_FAIL_NAMESPACE", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Accessing the Reliablity Graph With Incorrect Namespaces\", function () {", + " pm.expect(pm.response.code).oneOf([200]);", + " pm.expect(pm.response.json()).to.have.property(\"head\");", + " pm.expect(pm.response.json()).to.have.property(\"results\");", + " pm.expect(pm.response.json().head).to.have.property(\"vars\");", + " pm.expect(pm.response.json().head.vars).to.have.length(17);", + " pm.expect(pm.response.json().results).to.have.property(\"bindings\");", + " pm.expect(pm.response.json().results.bindings).to.have.length(0);", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "protocolProfileBehavior": { + "disabledSystemHeaders": { + "accept": true + } + }, + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/sparql-query" + }, + { + "key": "Accept", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "PREFIX cx-common: \nPREFIX cx-core: \nPREFIX cx-vehicle: \nPREFIX cx-reliability: \nPREFIX rdf: \nPREFIX rdfs: \nPREFIX xsd: \nPREFIX json: \n\nSELECT ?vehicle ?van ?aggregate ?assembly ?supplier ?teleAnalysis ?operatingTime ?mileage ?recordDate ?ls_type ?ls_name ?ls_value ?ls_unit ?ls_method ?ls_channels ?ls_classes ?ls_values WHERE {\n\n VALUES (?van ?aggregate) { \n (\"{{sampleVAN}}\"^^xsd:string \"{{sampleAssembly}}\"^^xsd:string) \n }\n\n VALUES (?ls_type) { \n (\"GearOil\"^^xsd:string) (\"GearSet\"^^xsd:string) \n }\n\n ?vehicle rdf:type cx-vehicle:Vehicle;\n cx-vehicle:vehicleIdentificationNumber ?van.\n\n ?assembly rdf:type cx-vehicle:Part;\n cx-vehicle:name ?aggregate;\n cx-vehicle:isPartOf ?vehicle;\n cx-vehicle:supplier ?supplier.\n \n ?teleAnalysis rdf:type cx-reliability:Analysis;\n cx-reliability:analysedObject ?assembly;\n cx-reliability:operatingHoursOfVehicle ?operatingTime;\n cx-reliability:mileageOfVehicle ?mileage;\n cx-core:startDateTime ?recordDate;\n cx-reliability:result [\n cx-core:id ?ls_type;\n cx-core:name ?ls_name;\n cx-reliability:countingValue ?ls_value;\n cx-reliability:countingUnit ?ls_unit;\n cx-reliability:countingMethod ?ls_method;\n cx-reliability:channels ?ls_channels;\n cx-reliability:classes ?ls_classes;\n cx-reliability:values ?ls_values\n ].\n\n} \n" + }, + "url": { + "raw": "{{provisioningAgent}}/{{reliabilityPath}}/sparql", + "host": [ + "{{provisioningAgent}}" + ], + "path": [ + "{{reliabilityPath}}", + "sparql" + ] + } + }, + "response": [] + }, + { + "name": "I_02_01_04_PROVISIONING_AGENT_FAIL_SYNTAX", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Accessing the Reliablity Graph With Invalid Syntax\", function () {", + " pm.expect(pm.response.code).oneOf([400]);", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "protocolProfileBehavior": { + "disabledSystemHeaders": { + "accept": true + } + }, + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/sparql-query" + }, + { + "key": "Accept", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "PREFIX cx-common: \nPREFIX cx-core: \nPREFIX cx-vehicle: \nPREFIX cx-reliability: \nPREFIX rdf: \nPREFIX rdfs: \nPREFIX xsd: \nPREFIX json: \n\nSELECT ?vehicle, ?van, ?aggregate, ?assembly, ?supplier, ?teleAnalysis, ?operatingTime, ?mileage, ?recordDate, ?ls_type, ?ls_name, ?ls_value, ?ls_unit, ?ls_method, ?ls_channels, ?ls_classes, ?ls_values {\n\n VALUES (?van ?aggregate) { \n (\"{{sampleVAN}}\"^^xsd:string \"{{sampleAssembly}}\"^^xsd:string) \n }\n\n VALUES (?ls_type) { \n (\"GearOil\"^^xsd:string) (\"GearSet\"^^xsd:string) \n }\n\n ?vehicle rdf:type cx-vehicle:Vehicle;\n cx-vehicle:vehicleIdentificationNumber ?van.\n\n ?assembly rdf:type cx-vehicle:Part;\n cx-vehicle:name ?aggregate;\n cx-vehicle:isPartOf ?vehicle;\n cx-vehicle:supplier ?supplier.\n \n ?teleAnalysis rdf:type cx-reliability:Analysis;\n cx-reliability:analysedObject ?assembly;\n cx-reliability:operatingHoursOfVehicle ?operatingTime;\n cx-reliability:mileageOfVehicle ?mileage;\n cx-core:startDateTime ?recordDate;\n cx-reliability:result [\n cx-core:id ?ls_type;\n cx-core:name ?ls_name;\n cx-reliability:countingValue ?ls_value;\n cx-reliability:countingUnit ?ls_unit;\n cx-reliability:countingMethod ?ls_method;\n cx-reliability:channels ?ls_channels;\n cx-reliability:classes ?ls_classes;\n cx-reliability:values ?ls_values\n ].\n} \n" + }, + "url": { + "raw": "{{provisioningAgent}}/{{reliabilityPath}}/sparql", + "host": [ + "{{provisioningAgent}}" + ], + "path": [ + "{{reliabilityPath}}", + "sparql" + ] + } + }, + "response": [] + }, + { + "name": "I_02_01_05_PROVISIONING_AGENT_FAIL_PROFILE", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Accessing the Reliablity Graph With Invalid Syntax\", function () {", + " pm.expect(pm.response.code).oneOf([500]);", + " pm.expect(pm.response.text()).to.contain(\"https://query.wikidata.org\");", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "protocolProfileBehavior": { + "disabledSystemHeaders": { + "accept": true + } + }, + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/sparql-query" + }, + { + "key": "Accept", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "PREFIX cx-common: \nPREFIX cx-core: \nPREFIX cx-vehicle: \nPREFIX cx-reliability: \nPREFIX rdf: \nPREFIX rdfs: \nPREFIX xsd: \nPREFIX json: \n\nSELECT ?vehicle ?van ?aggregate ?assembly ?supplier ?teleAnalysis ?operatingTime ?mileage ?recordDate ?ls_type ?ls_name ?ls_value ?ls_unit ?ls_method ?ls_channels ?ls_classes ?ls_values WHERE {\n\n VALUES (?van ?aggregate) { \n (\"{{sampleVAN}}\"^^xsd:string \"{{sampleAssembly}}\"^^xsd:string) \n }\n\n VALUES (?ls_type) { \n (\"GearOil\"^^xsd:string) (\"GearSet\"^^xsd:string) \n }\n\n SERVICE { \n ?item \n }\n\n ?vehicle rdf:type cx-vehicle:Vehicle;\n cx-vehicle:vehicleIdentificationNumber ?van.\n\n ?assembly rdf:type cx-vehicle:Part;\n cx-vehicle:name ?aggregate;\n cx-vehicle:isPartOf ?vehicle;\n cx-vehicle:supplier ?supplier.\n \n ?teleAnalysis rdf:type cx-reliability:Analysis;\n cx-reliability:analysedObject ?assembly;\n cx-reliability:operatingHoursOfVehicle ?operatingTime;\n cx-reliability:mileageOfVehicle ?mileage;\n cx-core:startDateTime ?recordDate;\n cx-reliability:result [\n cx-core:id ?ls_type;\n cx-core:name ?ls_name;\n cx-reliability:countingValue ?ls_value;\n cx-reliability:countingUnit ?ls_unit;\n cx-reliability:countingMethod ?ls_method;\n cx-reliability:channels ?ls_channels;\n cx-reliability:classes ?ls_classes;\n cx-reliability:values ?ls_values\n ].\n} \n" + }, + "url": { + "raw": "{{provisioningAgent}}/{{reliabilityPath}}/sparql", + "host": [ + "{{provisioningAgent}}" + ], + "path": [ + "{{reliabilityPath}}", + "sparql" + ] + } + }, + "response": [] + } + ] + } + ] + }, + { + "name": "0302_PROVIDER_FUNCTION", + "item": [ + { + "name": "030201_PROVIDER_FUNCTION_SPARQL", + "item": [ + { + "name": "I_02_02_02_BACKEND_SERVICE", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Invoking the Asynchronous Prognosis Service\", function () {", + " pm.expect(pm.response.code).oneOf([200,202]);", + " pm.expect(pm.response.json()).to.have.property(\"timestamp\");", + " pm.expect(pm.response.json()).to.have.property(\"result\");", + " pm.expect(pm.response.json()).to.have.property(\"message\");", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "protocolProfileBehavior": { + "disabledSystemHeaders": {} + }, + "request": { + "method": "POST", + "header": [ + { + "key": "{{tieraAuthorization}}", + "value": "{{tieraToken}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"header\": {\n \"notificationID\": \"98f507d5-175d-4945-8d06-6aa1fcef9a0c\",\n \"senderBPN\": \"BPN0000SUPPLIER\",\n \"senderAddress\": \"edcs://supplier.com/edc\",\n \"recipientAddress\": \"https://supplier.com/edc\",\n \"recipientBPN\": \"BPN0000SUPPLIER\",\n \"severity\": \"MINOR\",\n \"status\": \"SENT\",\n \"targetDate\": \"2022-11-24T22:07:02.611048800Z\",\n \"timeStamp\": \"2022-11-24T11:24:36.744320Z\",\n \"classification\": \"RemainingUsefulLifePredictor\",\n \"respondAssetId\": \"{{remotingAgent}}/callback\"\n },\n \"content\": {\n \"requestRefId\": \"98f507d5-175d-4945-8d06-6aa1fcef9a0c\",\n \"endurancePredictorInputs\": [\n {\n \"componentId\": \"urn:uuid:b43a1fab-f460-4d24-b078-e58a0247ad1e\",\n \"classifiedLoadSpectrumGearOil\": {\n \"targetComponentID\": \"urn:uuid:b43a1fab-f460-4d24-b078-e58a0247ad1e\",\n \"metadata\": {\n \"projectDescription\": \"pnr_76543\",\n \"componentDescription\": \"GearOil\",\n \"routeDescription\": \"logged\",\n \"status\": {\n \"date\": \"2023-02-19T10:42:14.213+01:00\",\n \"operatingHours\": 32137.9,\n \"mileage\": 865432\n }\n },\n \"header\": {\n \"countingValue\": \"Time\",\n \"countingUnit\": \"unit:secondUnitOfTime\",\n \"countingMethod\": \"TimeAtLevel\",\n \"channels\": [\n {\n \"channelName\": \"TC_SU\",\n \"unit\": \"unit:degreeCelsius\",\n \"lowerLimit\": 0,\n \"upperLimit\": 640,\n \"numberOfBins\": 128\n }\n ]\n },\n \"body\": {\n \"classes\": [\n {\n \"className\": \"TC_SU-class\",\n \"classList\": [\n 14,\n 15,\n 16,\n 17,\n 18,\n 19,\n 20,\n 21,\n 22\n ]\n }\n ],\n \"counts\": {\n \"countsName\": \"Time\",\n \"countsList\": [\n 34968.93,\n 739782.51,\n 4013185.15,\n 46755055.56,\n 25268958.35,\n 8649735.95,\n 9383635.35,\n 19189260.77,\n 1353867.54\n ]\n }\n },\n \"bammId\": \"urn:bamm:io.openmanufacturing.digitaltwin:1.0.0#ClassifiedLoadSpectrum\"\n },\n \"classifiedLoadSpectrumGearSet\": {\n \"targetComponentID\": \"urn:uuid:b43a1fab-f460-4d24-b078-e58a0247ad1e\",\n \"metadata\": {\n \"projectDescription\": \"pnr_76543\",\n \"componentDescription\": \"GearSet\",\n \"routeDescription\": \"logged\",\n \"status\": {\n \"date\": \"2023-02-19T10:42:14.213+01:00\",\n \"operatingHours\": 32137.9,\n \"mileage\": 865432\n }\n },\n \"header\": {\n \"countingValue\": \"Time\",\n \"countingUnit\": \"unit:secondUnitOfTime\",\n \"countingMethod\": \"TimeAtLevel\",\n \"channels\": [\n {\n \"channelName\": \"TC_SU\",\n \"unit\": \"unit:degreeCelsius\",\n \"lowerLimit\": 0,\n \"upperLimit\": 640,\n \"numberOfBins\": 128\n }\n ]\n },\n \"body\": {\n \"classes\": [\n {\n \"className\": \"TC_SU-class\",\n \"classList\": [\n 14,\n 15,\n 16,\n 17,\n 18,\n 19,\n 20,\n 21,\n 22\n ]\n }\n ],\n \"counts\": {\n \"countsName\": \"Time\",\n \"countsList\": [\n 34968.93,\n 739782.51,\n 4013185.15,\n 46755055.56,\n 25268958.35,\n 8649735.95,\n 9383635.35,\n 19189260.77,\n 1353867.54\n ]\n }\n },\n \"bammId\": \"urn:bamm:io.openmanufacturing.digitaltwin:1.0.0#ClassifiedLoadSpectrum\"\n }\n }\n ]\n }\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{tierAAsynchronBackend}}/api/v1/routine/notification", + "host": [ + "{{tierAAsynchronBackend}}" + ], + "path": [ + "api", + "v1", + "routine", + "notification" + ] + }, + "description": "Invocation of the actual Lifetime Prognosis Service" + }, + "response": [] + }, + { + "name": "I_02_02_03_BACKEND_SERVICE_FAIL", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Wrongly Invoking the Asynchronous Prognosis Service\", function () {", + " pm.expect(pm.response.code).oneOf([500]);", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "protocolProfileBehavior": { + "disabledSystemHeaders": {} + }, + "request": { + "method": "POST", + "header": [ + { + "key": "{{tieraAuthorization}}", + "value": "{{tieraToken}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"header\": {\n \"notificationID\": \"98f507d5-175d-4945-8d06-6aa1fcef9a0c\",\n \"senderBPN\": \"BPN0000SUPPLIER\",\n \"senderAddress\": \"edcs://supplier.com/edc\",\n \"recipientAddress\": \"https://supplier.com/edc\",\n \"recipientBPN\": \"BPN0000SUPPLIER\",\n \"severity\": \"MINOR\",\n \"status\": \"SENT\",\n \"targetDate\": \"2022-11-24T22:07:02.611048800Z\",\n \"timeStamp\": \"2022-11-24T11:24:36.744320Z\",\n \"classification\": \"RemainingUsefulLifePredictor\",\n \"respondAssetId\": \"{{remotingAgent}}/callback\"\n },\n \"content\": {\n \"requestRefId\": \"98f507d5-175d-4945-8d06-6aa1fcef9a0c\",\n \"endurancePredictorInputs\": [\n {\n \"componentId\": \"urn:uuid:b43a1fab-f460-4d24-b078-e58a0247ad1e\",\n \"classifiedLoadSpectrumClutch\": {\n \"targetComponentID\": \"urn:uuid:b43a1fab-f460-4d24-b078-e58a0247ad1e\",\n \"metadata\": {\n \"projectDescription\": \"pnr_76543\",\n \"componentDescription\": \"Clutch\",\n \"routeDescription\": \"logged\",\n \"status\": {\n \"date\": \"2023-02-19T10:42:14.213+01:00\",\n \"operatingHours\": 32137.9,\n \"mileage\": 865432\n }\n },\n \"header\": {\n \"countingValue\": \"Time\",\n \"countingUnit\": \"unit:secondUnitOfTime\",\n \"countingMethod\": \"TimeAtLevel\",\n \"channels\": [\n {\n \"channelName\": \"TC_SU\",\n \"unit\": \"unit:degreeCelsius\",\n \"lowerLimit\": 0,\n \"upperLimit\": 640,\n \"numberOfBins\": 128\n }\n ]\n },\n \"body\": {\n \"classes\": [\n {\n \"className\": \"TC_SU-class\",\n \"classList\": [\n 14,\n 15,\n 16,\n 17,\n 18,\n 19,\n 20,\n 21,\n 22\n ]\n }\n ],\n \"counts\": {\n \"countsName\": \"Time\",\n \"countsList\": [\n 34968.93,\n 739782.51,\n 4013185.15,\n 46755055.56,\n 25268958.35,\n 8649735.95,\n 9383635.35,\n 19189260.77,\n 1353867.54\n ]\n }\n },\n \"bammId\": \"urn:bamm:io.openmanufacturing.digitaltwin:1.0.0#ClassifiedLoadSpectrum\"\n }\n }\n ]\n }\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{tierAAsynchronBackend}}/api/v1/routine/notification", + "host": [ + "{{tierAAsynchronBackend}}" + ], + "path": [ + "api", + "v1", + "routine", + "notification" + ] + }, + "description": "Invocation of the actual Lifetime Prognosis Service" + }, + "response": [] + }, + { + "name": "I_02_02_04_REMOTING_AGENT_CALLBACK", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Invoking the Remoting Agent Callback\", function () {", + " pm.expect(pm.response.code).oneOf([200]);", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"header\": {\n \"referencedNotificationID\":\"DUMMY\",\n \"sender\":\"TESTMANAGEMENT\"\n }\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{remotingAgent}}/callback", + "host": [ + "{{remotingAgent}}" + ], + "path": [ + "callback" + ] + } + }, + "response": [] + }, + { + "name": "I_02_02_05_REMOTING_AGENT_CALLBACK_FAIL", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Wrongly Invoking the Remoting Agent Callback\", function () {", + " pm.expect(pm.response.code).oneOf([400,500]);", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"header\": {\n \"shitID\":\"DUMMY\"\n \"sender\":\"TESTMANAGEMENT\"\n }\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{remotingAgent}}/callback", + "host": [ + "{{remotingAgent}}" + ], + "path": [ + "callback" + ] + } + }, + "response": [] + }, + { + "name": "I_02_02_06_REMOTING_AGENT", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Accessing the Remoting Agent Was Successful\", function () {", + " pm.expect(pm.response.code).oneOf([200]);", + " pm.expect(pm.response.json()).to.have.property(\"head\");", + " pm.expect(pm.response.json()).to.have.property(\"results\");", + " pm.expect(pm.response.json().head).to.have.property(\"vars\");", + " pm.expect(pm.response.json().head.vars).to.have.length(4);", + " pm.expect(pm.response.json().results).to.have.property(\"bindings\");", + " pm.expect(pm.response.json().results.bindings).to.have.length(2);", + " pm.response.json().results.bindings.map(function(binding) {", + " pm.expect(binding).to.have.property(\"invocation\");", + " pm.expect(binding.invocation).to.have.property(\"type\");", + " pm.expect(binding.invocation).to.have.property(\"value\");", + " pm.expect(binding).to.have.property(\"component\");", + " pm.expect(binding.component).to.have.property(\"type\");", + " pm.expect(binding.component).to.have.property(\"value\");", + " pm.expect(binding).to.have.property(\"timeHours\");", + " pm.expect(binding.timeHours).to.have.property(\"type\");", + " pm.expect(binding.timeHours).to.have.property(\"value\");", + " pm.expect(binding).to.have.property(\"distanceKm\");", + " pm.expect(binding.distanceKm).to.have.property(\"type\");", + " pm.expect(binding.distanceKm).to.have.property(\"value\");", + " });", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "protocolProfileBehavior": { + "disabledSystemHeaders": { + "accept": true + } + }, + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/sparql-query" + }, + { + "key": "Accept", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "PREFIX xsd: \nPREFIX json: \nPREFIX cx-behaviour: \n\nSELECT ?invocation ?component ?timeHours ?distanceKm\nWHERE { \n VALUES (?component ?ls_type) { ( \"GearOil\"^^xsd:string) ( \"GearSet\"^^xsd:string) ( \"GearSet\"^^xsd:string) ( \"GearOil\"^^xsd:string)}\n\n ?invocation a cx-behaviour:RemainingUsefulLife;\n cx-behaviour:sender ;\n cx-behaviour:senderConnector ;\n cx-behaviour:recipient ;\n cx-behaviour:recipientConnector ;\n cx-behaviour:targetDate \"2022-11-24T22:07:02.611048800Z\"^^xsd:dateTime;\n cx-behaviour:timeStamp \"2022-11-24T11:24:36.744320Z\"^^xsd:dateTime;\n cx-behaviour:component ?component;\n cx-behaviour:observationType ?ls_type;\n cx-behaviour:statusDate \"2023-02-19T10:42:36.744320Z\"^^xsd:dateTime;\n cx-behaviour:statusOperatingHours \"32137.9\"^^xsd:float;\n cx-behaviour:statusMileage \"865432\"^^xsd:int;\n cx-behaviour:countingValue \"Time\"^^xsd:string;\n cx-behaviour:countingUnit ;\n cx-behaviour:countingMethod \"TimeAtLevel\"^^xsd:string;\n cx-behaviour:headerChannels \"[ { \\\"channelName\\\": \\\"TC_SU\\\", \\\"unit\\\": \\\"unit:degreeCelsius\\\", \\\"lowerLimit\\\": 0, \\\"upperLimit\\\": 640, \\\"numberOfBins\\\": 128 } ]\"^^json:Object;\n cx-behaviour:bodyClasses \"[ { \\\"className\\\": \\\"TC_SU-class\\\", \\\"classList\\\": [ 14, 15, 16, 17, 18, 19, 20, 21, 22 ] }]\"^^json:Object;\n cx-behaviour:bodyCountsList \"[34968.93,739782.51,4013185.15,46755055.56,25268958.35,8649735.95,9383635.35,19189260.77,1353867.54]\"^^json:Object;\n cx-behaviour:remainingOperatingHours ?timeHours;\n cx-behaviour:remainingRunningDistance ?distanceKm\n . \n}" + }, + "url": { + "raw": "{{remotingAgent}}/repositories/rul", + "host": [ + "{{remotingAgent}}" + ], + "path": [ + "repositories", + "rul" + ] + }, + "description": "A sample SparQL query with a more complex binding where the input is a json document." + }, + "response": [] + }, + { + "name": "I_02_02_07_REMOTING_AGENT_FAIL_LACKING_ARGUMENT", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Accessing the Remoting Agent With a Lacking Argument\", function () {", + " pm.expect(pm.response.code).oneOf([200]);", + " pm.expect(pm.response.json()).to.have.property(\"head\");", + " pm.expect(pm.response.json()).to.have.property(\"results\");", + " pm.expect(pm.response.json().head).to.have.property(\"vars\");", + " pm.expect(pm.response.json().head.vars).to.have.length(4);", + " pm.expect(pm.response.json().results).to.have.property(\"bindings\");", + " pm.expect(pm.response.json().results.bindings).to.have.length(2);", + " pm.response.json().results.bindings.map(function(binding) {", + " pm.expect(binding).to.have.property(\"invocation\");", + " pm.expect(binding.invocation).to.have.property(\"type\");", + " pm.expect(binding.invocation).to.have.property(\"value\");", + " pm.expect(binding).to.have.property(\"component\");", + " pm.expect(binding.component).to.have.property(\"type\");", + " pm.expect(binding.component).to.have.property(\"value\");", + " pm.expect(binding).not.to.have.property(\"timeHours\");", + " pm.expect(binding).not.to.have.property(\"distanceKm\");", + " });", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "protocolProfileBehavior": { + "disabledSystemHeaders": { + "accept": true + } + }, + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/sparql-query" + }, + { + "key": "Accept", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "PREFIX xsd: \nPREFIX json: \nPREFIX cx-behaviour: \n\nSELECT ?invocation ?component ?timeHours ?distanceKm\nWHERE { \n VALUES (?component) { () ()}\n\n ?invocation a cx-behaviour:RemainingUsefulLife;\n cx-behaviour:sender ;\n cx-behaviour:senderConnector ;\n cx-behaviour:recipient ;\n cx-behaviour:recipientConnector ;\n cx-behaviour:targetDate \"2022-11-24T22:07:02.611048800Z\"^^xsd:dateTime;\n cx-behaviour:timeStamp \"2022-11-24T11:24:36.744320Z\"^^xsd:dateTime;\n cx-behaviour:component ?component;\n cx-behaviour:statusDate \"2023-02-19T10:42:36.744320Z\"^^xsd:dateTime;\n cx-behaviour:statusOperatingHours \"32137.9\"^^xsd:float;\n cx-behaviour:statusMileage \"865432\"^^xsd:int;\n cx-behaviour:countingValue \"Time\"^^xsd:string;\n cx-behaviour:countingUnit ;\n cx-behaviour:countingMethod \"TimeAtLevel\"^^xsd:string;\n cx-behaviour:headerChannels \"[ { \\\"channelName\\\": \\\"TC_SU\\\", \\\"unit\\\": \\\"unit:degreeCelsius\\\", \\\"lowerLimit\\\": 0, \\\"upperLimit\\\": 640, \\\"numberOfBins\\\": 128 } ]\"^^json:Object;\n cx-behaviour:bodyClasses \"[ { \\\"className\\\": \\\"TC_SU-class\\\", \\\"classList\\\": [ 14, 15, 16, 17, 18, 19, 20, 21, 22 ] }]\"^^json:Object;\n cx-behaviour:bodyCountsList \"[34968.93,739782.51,4013185.15,46755055.56,25268958.35,8649735.95,9383635.35,19189260.77,1353867.54]\"^^json:Object;\n cx-behaviour:remainingOperatingHours ?timeHours;\n cx-behaviour:remainingRunningDistance ?distanceKm\n . \n}" + }, + "url": { + "raw": "{{remotingAgent}}/repositories/rul", + "host": [ + "{{remotingAgent}}" + ], + "path": [ + "repositories", + "rul" + ] + }, + "description": "A sample SparQL query with a more complex binding where the input is a json document." + }, + "response": [] + }, + { + "name": "I_02_02_08_REMOTING_AGENT_FAIL_NAMESPACE", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Accessing the Remoting Agent With Wrong Namespace\", function () {", + " pm.expect(pm.response.code).oneOf([500]);", + " pm.expect(pm.response.text()).to.contain(\"https://w3id.org\");", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "protocolProfileBehavior": { + "disabledSystemHeaders": { + "accept": true + } + }, + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/sparql-query" + }, + { + "key": "Accept", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "PREFIX xsd: \nPREFIX json: \nPREFIX cx-behaviour: \n\nSELECT ?invocation ?component ?timeHours ?distanceKm\nWHERE { \n VALUES (?component) { () ()}\n\n ?invocation a cx-behaviour:RemainingUsefulLife;\n cx-behaviour:sender ;\n cx-behaviour:senderConnector ;\n cx-behaviour:recipient ;\n cx-behaviour:recipientConnector ;\n cx-behaviour:targetDate \"2022-11-24T22:07:02.611048800Z\"^^xsd:dateTime;\n cx-behaviour:timeStamp \"2022-11-24T11:24:36.744320Z\"^^xsd:dateTime;\n cx-behaviour:component ?component;\n cx-behaviour:statusDate \"2023-02-19T10:42:36.744320Z\"^^xsd:dateTime;\n cx-behaviour:statusOperatingHours \"32137.9\"^^xsd:float;\n cx-behaviour:statusMileage \"865432\"^^xsd:int;\n cx-behaviour:countingValue \"Time\"^^xsd:string;\n cx-behaviour:countingUnit ;\n cx-behaviour:countingMethod \"TimeAtLevel\"^^xsd:string;\n cx-behaviour:headerChannels \"[ { \\\"channelName\\\": \\\"TC_SU\\\", \\\"unit\\\": \\\"unit:degreeCelsius\\\", \\\"lowerLimit\\\": 0, \\\"upperLimit\\\": 640, \\\"numberOfBins\\\": 128 } ]\"^^json:Object;\n cx-behaviour:bodyClasses \"[ { \\\"className\\\": \\\"TC_SU-class\\\", \\\"classList\\\": [ 14, 15, 16, 17, 18, 19, 20, 21, 22 ] }]\"^^json:Object;\n cx-behaviour:bodyCountsList \"[34968.93,739782.51,4013185.15,46755055.56,25268958.35,8649735.95,9383635.35,19189260.77,1353867.54]\"^^json:Object;\n cx-behaviour:remainingOperatingHours ?timeHours;\n cx-behaviour:remainingRunningDistance ?distanceKm\n . \n}" + }, + "url": { + "raw": "{{remotingAgent}}/repositories/rul", + "host": [ + "{{remotingAgent}}" + ], + "path": [ + "repositories", + "rul" + ] + }, + "description": "A sample SparQL query with a more complex binding where the input is a json document." + }, + "response": [] + }, + { + "name": "I_02_02_09_REMOTING_AGENT_FAIL_SYNTAX", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Accessing the Remoting Agent With Incorrect Syntax\", function () {", + " pm.expect(pm.response.code).oneOf([400]);", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "protocolProfileBehavior": { + "disabledSystemHeaders": { + "accept": true + } + }, + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/sparql-query" + }, + { + "key": "Accept", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "PREFIX xsd: \nPREFIX json: \nPREFIX cx-behaviour: \n\nSELECT ?invocation, ?component, ?timeHours, ?distanceKm\nWHERE { \n VALUES (?component) { () ()}\n\n ?invocation a cx-behaviour:RemainingUsefulLife;\n cx-behaviour:sender ;\n cx-behaviour:senderConnector ;\n cx-behaviour:recipient ;\n cx-behaviour:recipientConnector ;\n cx-behaviour:targetDate \"2022-11-24T22:07:02.611048800Z\"^^xsd:dateTime;\n cx-behaviour:timeStamp \"2022-11-24T11:24:36.744320Z\"^^xsd:dateTime;\n cx-behaviour:component ?component;\n cx-behaviour:statusDate \"2023-02-19T10:42:36.744320Z\"^^xsd:dateTime;\n cx-behaviour:statusOperatingHours \"32137.9\"^^xsd:float;\n cx-behaviour:statusMileage \"865432\"^^xsd:int;\n cx-behaviour:countingValue \"Time\"^^xsd:string;\n cx-behaviour:countingUnit ;\n cx-behaviour:countingMethod \"TimeAtLevel\"^^xsd:string;\n cx-behaviour:headerChannels \"[ { \\\"channelName\\\": \\\"TC_SU\\\", \\\"unit\\\": \\\"unit:degreeCelsius\\\", \\\"lowerLimit\\\": 0, \\\"upperLimit\\\": 640, \\\"numberOfBins\\\": 128 } ]\"^^json:Object;\n cx-behaviour:bodyClasses \"[ { \\\"className\\\": \\\"TC_SU-class\\\", \\\"classList\\\": [ 14, 15, 16, 17, 18, 19, 20, 21, 22 ] }]\"^^json:Object;\n cx-behaviour:bodyCountsList \"[34968.93,739782.51,4013185.15,46755055.56,25268958.35,8649735.95,9383635.35,19189260.77,1353867.54]\"^^json:Object;\n cx-behaviour:remainingOperatingHours ?timeHours;\n cx-behaviour:remainingRunningDistance ?distanceKm\n . \n}" + }, + "url": { + "raw": "{{remotingAgent}}/repositories/rul", + "host": [ + "{{remotingAgent}}" + ], + "path": [ + "repositories", + "rul" + ] + }, + "description": "A sample SparQL query with a more complex binding where the input is a json document." + }, + "response": [] + }, + { + "name": "I_02_02_10_REMOTING_AGENT_FAIL_PROFILE", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Accessing the Remoting Agent With Wrong Namespace\", function () {", + " pm.expect(pm.response.code).oneOf([500]);", + " pm.expect(pm.response.text()).to.contain(\"https://query.wikidata.org\");", + "});", + "" + ], + "type": "text/javascript" + } + } + ], + "protocolProfileBehavior": { + "disabledSystemHeaders": { + "accept": true + } + }, + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/sparql-query" + }, + { + "key": "Accept", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "PREFIX xsd: \nPREFIX json: \nPREFIX cx-behaviour: \n\nSELECT ?timeHours ?distanceKm\nWHERE { \n VALUES (?component) { () ()}\n\n SERVICE { \n ?item \n }\n\n ?invocation a cx-behaviour:RemainingUsefulLife;\n cx-behaviour:sender ;\n cx-behaviour:senderConnector ;\n cx-behaviour:recipient ;\n cx-behaviour:recipientConnector ;\n cx-behaviour:targetDate \"2022-11-24T22:07:02.611048800Z\"^^xsd:dateTime;\n cx-behaviour:timeStamp \"2022-11-24T11:24:36.744320Z\"^^xsd:dateTime;\n cx-behaviour:component ?component;\n cx-behaviour:statusDate \"2023-02-19T10:42:36.744320Z\"^^xsd:dateTime;\n cx-behaviour:statusOperatingHours \"32137.9\"^^xsd:float;\n cx-behaviour:statusMileage \"865432\"^^xsd:int;\n cx-behaviour:countingValue \"Time\"^^xsd:string;\n cx-behaviour:countingUnit ;\n cx-behaviour:countingMethod \"TimeAtLevel\"^^xsd:string;\n cx-behaviour:headerChannels \"[ { \\\"channelName\\\": \\\"TC_SU\\\", \\\"unit\\\": \\\"unit:degreeCelsius\\\", \\\"lowerLimit\\\": 0, \\\"upperLimit\\\": 640, \\\"numberOfBins\\\": 128 } ]\"^^json:Object;\n cx-behaviour:bodyClasses \"[ { \\\"className\\\": \\\"TC_SU-class\\\", \\\"classList\\\": [ 14, 15, 16, 17, 18, 19, 20, 21, 22 ] }]\"^^json:Object;\n cx-behaviour:bodyCountsList \"[34968.93,739782.51,4013185.15,46755055.56,25268958.35,8649735.95,9383635.35,19189260.77,1353867.54]\"^^json:Object;\n cx-behaviour:remainingOperatingHours ?timeHours;\n cx-behaviour:remainingRunningDistance ?distanceKm\n . \n}" + }, + "url": { + "raw": "{{remotingAgent}}/repositories/rul", + "host": [ + "{{remotingAgent}}" + ], + "path": [ + "repositories", + "rul" + ] + }, + "description": "A sample SparQL query with a more complex binding where the input is a json document." + }, + "response": [] + } + ] + } + ] + } + ] + }, + { + "name": "04_CONSUMER", + "item": [ + { + "name": "0401_CONSUMER_APPLICATION", + "item": [ + { + "name": "040101_CONSUMER_APPLICATION_SPARQL", + "item": [ + { + "name": "04010100_Login to Consumer Application", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "https://knowledge.dev.demo.catena-x.net/:path", + "protocol": "https", + "host": [ + "knowledge", + "dev", + "demo", + "catena-x", + "net" + ], + "path": [ + ":path" + ], + "variable": [ + { + "key": "path", + "value": "consumer-frontend/static/js/main.31177f6b.js" + } + ] + } + }, + "response": [] + } + ] + } + ] + } + ] + }, + { + "name": "05_CORE", + "item": [ + { + "name": "0501_CORE_ONTOLOGY", + "item": [ + { + "name": "050101_CORE_ONTOLOGY_MANAGEMENT", + "item": [ + { + "name": "05010100_Access Ontology Details", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "https://raw.githubusercontent.com/catenax-ng/product-knowledge/main/ontology/:model", + "protocol": "https", + "host": [ + "raw", + "githubusercontent", + "com" + ], + "path": [ + "catenax-ng", + "product-knowledge", + "main", + "ontology", + ":model" + ], + "variable": [ + { + "key": "model", + "value": "cx_ontology.ttl" + } + ] + } + }, + "response": [] + }, + { + "name": "05010101_List Ontologies from Repo", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "https://api.github.com/repos/catenax-ng/product-knowledge/contents/ontology?ref=release/v0.7.4", + "protocol": "https", + "host": [ + "api", + "github", + "com" + ], + "path": [ + "repos", + "catenax-ng", + "product-knowledge", + "contents", + "ontology" + ], + "query": [ + { + "key": "ref", + "value": "release/v0.7.4" + }, + { + "key": "ref", + "value": "main", + "disabled": true + } + ] + } + }, + "response": [] + } + ] + }, + { + "name": "050102_CORE_ONTOLOGY_EDITOR", + "item": [] + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/operation-view/policy.md b/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/operation-view/policy.md new file mode 100644 index 00000000000..bb308d432c0 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/operation-view/policy.md @@ -0,0 +1,134 @@ +--- +sidebar_position: 3 +title: Data Sovereignity & Policies +--- + + +This document (WIP) describes how Data Sovereignity can be reached in publishing Graphs and Skills while employing appropriate Policies. + +For more information see + +* Our [Adoption](../adoption-view/intro) guideline +* The [Architecture](../development-view/architecture) documentation +* The [EDC Deployment](agent_edc) description +* The [Provider Deployment](provider) description +* The [AAS Bridge Deployment](bridge) description +* The [Conformity](testbed) testbed + + +The core ingredient to the KA Semantic Dataspace Architecture is that a business partner (the Provider) offers an RDF-based query endpoint (Graph Asset) over her Connector. + +![Data Sovereignity Through Offering and Policy Validation](/img/knowledge-agents/graph_asset.png) + +## Data Sovereignity Through Backend Authentication/Authorization and Offering Policies + +A single endpoint (=Complete Graph) may be offered in different Graph Assets (=endpoint reference including a fixed parameterization, e.g. authorization header). By configuring different service principals/authentication tokens the Provider may realize different permissions/visibilities in the Complete Graph. + +Since the Connector is checking the so-called Offering Policy associated to the assets, it is ensured that only proven business partners (Consumer) are able to negotiate a transfer to the respective Graph Asset (and hence the respective excerpt of the Complete Graph). + +This method is easy to implement from the Connector side (the Consumers only see their dedicated assets), but maybe hard to realise on the Backend side. + +## Data Sovereignity Through Access Policies + +Not all backend endpoints will allow an expressive authorization scheme. Therefore we would like to propose an advanced and fine-grained approach to that using the so-called Access Policies of the Connector. + +### Access Policies for Graph Queries + +An Access Policy has a set of Constraints which may be Permissions, Obligations or Duties. For validating the Query-Based Access, we currently focus on Permission Constraints. At a later point, we may revisit Obligations and Duties related to the validation of ResultSets. + +The following is an example of a permission which allows query to SELECT (and traverse) any edge of the graph where we can *prove in advance* that the mandatory predicate is hasMaterialProperty, the optional subject will be an instance of owl class RawMaterial and that the optional object will be an instance of type MaterialProperty. We call the set of triples which match the constraint pattern the constraint triples. + +`` +{ + "id": "urn:io.catenax.knowledge.dataspace.policy:SamplePolicy", + "policy": { + "permissions": [ + { + "action": { + "type": "SELECT" + }, + "pattern": { + "subject": "urn:io.catenax.knowledge.ontology:cx#RawMaterial", + "predicate": "urn:io.catenax.knowledge.ontology:cx#hasMaterialProperty", + "object":"urn:io.catenax.knowledge.ontology:cx#MaterialProperty" + }, + "edctype": "dataspaceconnector:permission" + } + ], + "@type": { + "@policytype": "set" + } + } +} +`` + +We may introduce the abbreviation where only "subject" is bound, this is quivalent to "predicate":"rdf:type","object":"?subject". + +The different action types related to graph queries are: + +* CONFIRM The constraint triples may be matched (variables need already bound by other SELECT or TRAVERSE permissions) +* SELECT The constraint triples may be returned (variables may be bound, aggregated and given back + out of the + query context) or traversed (subsequent statements may use the bound information to access further edges of the graph). +* SELECT_SUBJECT The object needs to be alrady bound by other SELECT permision) +* SELECT_OBJECT The subject needs to be already bound by another SELECT permssion +* TRAVERSE The constraint triples may be traversed (subsequent statements may use the bound + information (or an anonmous node) to access further edges of the graph), but not returned (any bound variables may not be passed or aggregated). +* TRAVERSE_SUBJECT The constraint triples may be traversed on the subject side only (subsequent statements may use the bound + information or anonymous nodes to access further edges of the graph), but not returned (any bound variables may not be passed or aggregated). +* TRAVERSE_OBJECT The constraint triples may be traversed on the object side only (subsequent statements may use the bound + information or anonymous nodes to access further edges of the graph), but not returned (any bound variables may not be passed or aggregated). +* AGGREGATE The constraint triples be returned only in aggregated form (that is the variables may not + be grouped by). They may be traversed (subsequent statements may use the bound + information to access further edges of the graph). +* AGGREGATE_SUBJECT The constraint triples be returned only on the subject side in aggregated form (that is the variables may not + be grouped by). They may be traversed (subsequent statements may use the bound + information to access further edges of the graph). +* AGGREGATE_OBJECT The constraint triples be returned only on the object side in aggregated form (that is the variables may not + be grouped by). They may be traversed (subsequent statements may use the bound + information to access further edges of the graph). +* AGGREGATE_PRIVATE The constraint triples be returned only in aggregated, noisy form (that is the + variables may not be grouped by and must be processed using a noise function). They may be traversed (subsequent statements may use the bound information to access further edges of the graph). +* AGGREGATE_PRIVATE_SUBJECT The constraint triples be returned only in aggregated, noisy form (that is the + variables may not be grouped by and must be processed using a noise function). They may be traversed (subsequent statements may use the bound information to access further edges of the graph). +* AGGREGATE_PRIVATE_OBJECT The constraint triples be returned only in aggregated, noisy form (that is the + variables may not be grouped by and must be processed using a noise function). They may be traversed (subsequent statements may use the bound information to access further edges of the graph). +* INSERT The constraint triples may be inserted into the graph. +* SELECT_SUBJECT_TRAVERSE_OBJECT +* SELECT_OBJECT_TRAVERSE_SUBJECT +* SELECT_SUBJECT_AGGREGATE_OBJECT +* SELECT_OBJECT_AGGREGATE_SUBJECT +* SELECT_SUBJECT_AGGREGATE_PRIVATE_OBJECT +* SELECT_OBJECT_AGGREGATE_PRIVATE_SUBJECT +* TRAVERSE_SUBJECT_AGGREGATE_OBJECT +* TRAVERSE_OBJECT_AGGREGATE_SUBJECT +* TRAVERSE_SUBJECT_AGGREGATE_PRIVATE_OBJECT +* TRAVERSE_OBJECT_AGGREGATE_PRIVATE_SUBJECT +* AGGREGATE_SUBJECT_AGGREGATE_PRIVATE_OBJECT +* AGGREGATE_OBJECT_AGGREGATE_PRIVATE_SUBJECT +* TRAVERSE_AGGREGATE +* DELETE The constraint triples may be deleted from the graph. + +(C) 2021,2023 Contributors to the Eclipse Foundation. SPDX-License-Identifier: CC-BY-4.0 diff --git a/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/operation-view/provider.md b/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/operation-view/provider.md new file mode 100644 index 00000000000..68831f8dccf --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/operation-view/provider.md @@ -0,0 +1,528 @@ +--- +sidebar_position: 1 +title: Provisioning +--- + + +For Providing Data and/or Functions in Semantic-Web Driven Dataspace Applications following the Catena-X Knowledge Agents Standard, we recommend deploying a [Tractus-X Binding Agent](https://github.com/eclipse-tractusx/knowledge-agents/blob/main/README.md) + +More specifically, we recommend to deploy + +* the [Tractus-X Provisioning Agent](https://github.com/eclipse-tractusx/knowledge-agents/blob/main/provisioning/README.md) for relational or virtualized data sources. +* the [Tractus-X Remoting Agent](https://github.com/eclipse-tractusx/knowledge-agents/blob/main/remoting/README.md) for REST-based API functions. + + +For more information see + +* Our [Adoption](../adoption-view/intro) guidelines +* The [Implementation](../development-view/architecture) documentation +* The [Deployment](deployment) overview +* The [Conformity](testbed) testbed +* A [Data Sovereignity & Graph Policy](policy) discussion + +### Quick Setup Guide for Data Provisioning + +Add a helm dependency to your umbrella/infrastructure Chart.yaml (this example uses a postgresql telematics sample, see [here](https://github.com/eclipse-tractusx/knowledge-agents/blob/main/provisioning/README.md) for more options and full details). + +```yaml + - name: provisioning-agent + repository: https://eclipse-tractusx.github.io/charts/dev + version: 1.10.15 + alias: my-provider-agent +``` + +Then configure the agent in the values.yaml + +```yaml +my-provider-agent: + nameOverride: my-provider-agent + fullnameOverride: my-provider-agent + bindings: + # mutes the default example endpoint + dtc: null + # adds a telematics graph based on the default (builtin) ontology + telematics: + port: 8080 + path: /telematics/(.*) + settings: + jdbc.url: 'jdbc:postgresql://{{mydatabasehost}}:5432/{{mydatabase}}' + jdbc.user: + jdbc.password: + jdbc.driver: 'org.postgresql.Driver' + ontology: cx-ontology.xml + mapping: |- + [PrefixDeclaration] + cx-common: https://w3id.org/catenax/ontology/common# + cx-core: https://w3id.org/catenax/ontology/core# + cx-vehicle: https://w3id.org/catenax/ontology/vehicle# + cx-reliability: https://w3id.org/catenax/ontology/reliability# + uuid: urn:uuid: + bpnl: bpn:legal: + owl: http://www.w3.org/2002/07/owl# + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# + xml: http://www.w3.org/XML/1998/namespace + xsd: http://www.w3.org/2001/XMLSchema# + json: https://json-schema.org/draft/2020-12/schema# + obda: https://w3id.org/obda/vocabulary# + rdfs: http://www.w3.org/2000/01/rdf-schema# + oem: urn:oem: + + [MappingDeclaration] @collection [[ + mappingId vehicles + target <{vehicle_id}> rdf:type cx-vehicle:Vehicle ; cx-vehicle:vehicleIdentificationNumber {van}^^xsd:string; cx-vehicle:worldManufaturerId bpnl:{localIdentifiers_manufacturerId}; cx-vehicle:productionDate {production_date}^^xsd:date. + source SELECT vehicle_id, van, '{{MYBPNL}}' as localIdentifiers_manufacturerId, production_date FROM vehicles + + mappingId partsvehicle + target <{gearbox_id}> cx-vehicle:isPartOf <{vehicle_id}> . + source SELECT vehicle_id, gearbox_id FROM vehicles + + mappingId vehicleparts + target <{vehicle_id}> cx-vehicle:hasPart <{gearbox_id}> . + source SELECT vehicle_id, gearbox_id FROM vehicles + + mappingId parts + target <{gearbox_id}> rdf:type cx-vehicle:Part ; cx-vehicle:id {gearbox_id}^^xsd:string; cx-vehicle:name {partTypeInformation_nameAtManufacturer}^^xsd:string; cx-vehicle:number {partTypeInformation_manufacturerPartId}^^xsd:string; cx-vehicle:supplier bpnl:{localIdentifiers_manufacturerId}; cx-vehicle:productionDate {production_date}^^xsd:date . + source SELECT gearbox_id, production_date, 'Differential Gear' as partTypeInformation_nameAtManufacturer, '{{PARTNERTBPNL}}' as localIdentifiers_manufacturerId, 'Dummy Gearbox' as partTypeInformation_manufacturerPartId FROM vehicles + + mappingId partAnalysis + target oem:{newest_telematics_id} cx-reliability:analysedObject <{gearbox_id}>. + source SELECT gearbox_id, newest_telematics_id FROM vehicles + + mappingId analysisInformation + target oem:{id} rdf:type cx-reliability:Analysis; cx-reliability:operatingHoursOfVehicle {metadata_status_operatingHours}^^xsd:float; cx-core:startDateTime {metadata_status_date}^^xsd:dateTime; cx-core:endDateTime {metadata_status_date}^^xsd:dateTime; cx-reliability:mileageOfVehicle {metadata_status_mileage}^^xsd:int. + source SELECT id, floor((load_spectra::jsonb->0->'metadata'->'status'->>'operatingHours')::numeric)::integer as metadata_status_operatingHours, replace(load_spectra::jsonb->0->'metadata'->'status'->>'date','Z','.000Z') as metadata_status_date,load_spectra::jsonb->0->'metadata'->'status'->>'mileage' as metadata_status_mileage FROM telematics_data + + mappingId analysisResult + target oem:{newest_telematics_id} cx-reliability:result oem:{newest_telematics_id}/{name}. + source SELECT gearbox_id, newest_telematics_id, name FROM vehicles, (VALUES ('GearSet'), ('GearOil'), ('Clutch')) AS spectrum(name) + + mappingId loadspectrum + target oem:{id}/{name} rdf:type cx-reliability:LoadSpectrum; cx-core:id {name}^^xsd:string; cx-core:name {metadata_projectDescription}^^xsd:string; cx-reliability:description {metadata_routeDescription}^^xsd:string; cx-reliability:countingValue {body_counts_countsName}^^xsd:string; cx-reliability:countingUnit {header_countingUnit}^^xsd:string; cx-reliability:countingMethod {header_countingMethod}^^xsd:string; cx-reliability:channels {header_channels}^^json:Object; cx-reliability:classes {body_classes}^^json:Object; cx-reliability:values {body_counts_countsList}^^json:Object . + source SELECT id, index, name, load_spectra::jsonb->index->'metadata'->>'projectDescription' as metadata_projectDescription, load_spectra::jsonb->index->'metadata'->>'routeDescription' as metadata_routeDescription, load_spectra::jsonb->index->'header'->>'countingUnit' as header_countingUnit, load_spectra::jsonb->index->'header'->>'countingMethod' as header_countingMethod, load_spectra::jsonb->index->'header'->'channels' as header_channels, load_spectra::jsonb->index->'body'->'classes' as body_classes, load_spectra::jsonb->index->'body'->'counts'->'countsName' as body_counts_countsName, load_spectra::jsonb->index->'body'->'counts'->'countsList' as body_counts_countsList FROM telematics_data, (VALUES (0,'GearSet'), (1,'GearOil'), (2,'Clutch')) AS spectrum(index,name) + ]] + ingresses: + - enabled: true + # -- The hostname to be used to precisely map incoming traffic onto the underlying network service + hostname: "my-provider-agent.internal" + annotations: + nginx.ingress.kubernetes.io/rewrite-target: /$1 + nginx.ingress.kubernetes.io/use-regex: "true" + # -- Agent endpoints exposed by this ingress resource + endpoints: + - telematics + tls: + enabled: true + secretName: my-provider-tls +``` + +The above mapping resource is written in a [OBDA Mapping Definition Language](https://ontop-vkg.org/tutorial/mapping/). + +### Quick Setup Guide for Function Provisioning (Remoting) + +Add a helm dependency to your umbrella/infrastructure Chart.yaml(this example uses a [Behaviour Twin RUL](/docs-kits/kits/Behaviour Twin RuL Kit/page_adoption_view) sample backend, see [here](https://github.com/eclipse-tractusx/knowledge-agents/blob/main/remoting/README.md) for more options and full details). + +```yaml + - name: remoting-agent + repository: https://eclipse-tractusx.github.io/charts/dev + version: 1.10.15 + alias: my-remoting-agent +``` + +Then configure the agent in the values.yaml + +```yaml +my-remoting-agent: + nameOverride: my-remoting-agent + fullnameOverride: my-remoting-agent + ingresses: + - enabled: true + # -- The hostname to be used to precisely map incoming traffic onto the underlying network service + hostname: "my-remoting-agent.internal" + # -- Agent endpoints exposed by this ingress resource + endpoints: + - default + tls: + enabled: true + secretName: my-remoting-tls + repositories: + rul: |- + # + # Rdf4j configuration for a rul-specific remoting + # + @prefix rdf: . + @prefix rdfs: . + @prefix rep: . + @prefix sr: . + @prefix sail: . + @prefix sp: . + @prefix xsd: . + @prefix json: . + @prefix dcterms: . + @prefix cx-fx: . + @prefix cx-common: . + @prefix cx-core: . + @prefix cx-vehicle: . + @prefix cx-reliability: . + @prefix cx-behaviour: . + + [] rdf:type rep:Repository ; + rep:repositoryID "rul" ; + rdfs:label "Remainig Useful Life Functions Repository" ; + rep:repositoryImpl [ + rep:repositoryType "openrdf:SailRepository" ; + sr:sailImpl [ + sail:sailType "org.eclipse.tractusx.agents:Remoting" ; + cx-fx:supportsInvocation cx-behaviour:RemainingUsefulLife; + cx-fx:callbackAddress ; + ] + ]. + + cx-behaviour:RemainingUsefulLife rdf:type cx-fx:Function; + dcterms:description "Remaining Useful Life is an asynchronous batch invocation."@en ; + dcterms:title "Remaining Useful Life" ; + cx-fx:targetUri "https://{{RULAPI}}"; + cx-fx:invocationMethod "POST-JSON"; + # cx-common:authenticationKey "Authorization"; + # cx-common:authenticationCode "Basic Zm9vOmJhcg=="; + cx-fx:invocationMethod "POST-JSON"; + cx-fx:invocationIdProperty "header.notificationID,content.requestRefId"; + cx-fx:callbackProperty "header.respondAssetId"; + cx-fx:input cx-behaviour:notification; + cx-fx:input cx-behaviour:sender; + cx-fx:input cx-behaviour:senderConnector; + cx-fx:input cx-behaviour:recipient; + cx-fx:input cx-behaviour:recipientConnector; + cx-fx:input cx-behaviour:recipient; + cx-fx:input cx-behaviour:recipientConnector; + cx-fx:input cx-behaviour:severity; + cx-fx:input cx-behaviour:status; + cx-fx:input cx-behaviour:targetDate; + cx-fx:input cx-behaviour:timeStamp; + cx-fx:input cx-behaviour:classification; + cx-fx:input cx-behaviour:component; + cx-fx:input cx-behaviour:observationType; + cx-fx:input cx-behaviour:statusDate; + cx-fx:input cx-behaviour:statusOperatingHours; + cx-fx:input cx-behaviour:statusMileage; + cx-fx:input cx-behaviour:observationType; + cx-fx:input cx-behaviour:metadata; + cx-fx:input cx-behaviour:countingMethod; + cx-fx:input cx-behaviour:countingValue; + cx-fx:input cx-behaviour:countingUnit; + cx-fx:input cx-behaviour:headerChannels; + cx-fx:input cx-behaviour:bodyClasses; + cx-fx:input cx-behaviour:bodyCountsList; + cx-fx:result cx-behaviour:response. + + cx-behaviour:notification rdf:type cx-fx:Argument; + dcterms:description "A default notification output template."@en ; + dcterms:title "Notification Template"; + cx-fx:argumentName "."; + cx-fx:dataType json:Object; + cx-fx:priority "-1"^^xsd:integer; + cx-fx:default "{ \"content\": { \"endurancePredictorInputs\": [ ]}}"^^json:Object. + + cx-behaviour:sender rdf:type cx-fx:Argument; + dcterms:description "Sender of the notification as a BPN."@en ; + dcterms:title "Notification Sender"; + cx-fx:argumentName "header.senderBPN"; + cx-fx:default "anonymous". + + cx-behaviour:senderConnector rdf:type cx-fx:Argument; + dcterms:description "Sender Address of the notification as a URL."@en ; + dcterms:title "Notification Sender Address"; + cx-fx:argumentName "header.senderAddress"; + cx-fx:default "unknown". + + cx-behaviour:recipient rdf:type cx-fx:Argument; + dcterms:description "Recipient of the notification as a BPN."@en ; + dcterms:title "Notification Recipient"; + cx-fx:argumentName "header.recipientBPN"; + cx-fx:default "anonymous". + + cx-behaviour:recipientConnector rdf:type cx-fx:Argument; + dcterms:description "Recipient Address of the notification as a URL."@en ; + dcterms:title "Notification Recipient Address"; + cx-fx:argumentName "header.recipientAddress"; + cx-fx:default "unknown". + + cx-behaviour:severity rdf:type cx-fx:Argument; + dcterms:description "Severity of the notification."@en ; + dcterms:title "Notification Severity"; + cx-fx:argumentName "header.severity"; + cx-fx:dataType xsd:string; + cx-fx:default "MINOR". + + cx-behaviour:status rdf:type cx-fx:Argument; + dcterms:description "Status of the notification."@en ; + dcterms:title "Notification Status"; + cx-fx:argumentName "header.status"; + cx-fx:dataType xsd:string; + cx-fx:default "SENT". + + cx-behaviour:targetDate rdf:type cx-fx:Argument; + dcterms:description "Target Date of the notification."@en ; + dcterms:title "Notification Target Date"; + cx-fx:dataType xsd:dateTime; + cx-fx:argumentName "header.targetDate". + + cx-behaviour:timeStamp rdf:type cx-fx:Argument; + dcterms:description "Timestamp of the notification."@en ; + dcterms:title "Notification Timestamp"; + cx-fx:dataType xsd:dateTime; + cx-fx:argumentName "header.timeStamp". + + cx-behaviour:classification rdf:type cx-fx:Argument; + dcterms:description "Classification of the notification."@en ; + dcterms:title "Notification Classification"; + cx-fx:argumentName "header.classification"; + cx-fx:dataType xsd:string; + cx-fx:default "RemainingUsefulLifePredictor". + + cx-behaviour:component rdf:type cx-fx:Argument; + dcterms:description "Component of the Predicition."@en ; + dcterms:title "Predicted Component"; + cx-fx:formsBatchGroup "true"^^xsd:boolean; + cx-fx:argumentName "content.endurancePredictorInputs.0.componentId,content.endurancePredictorInputs.0.classifiedLoadSpectrum{https://w3id.org/catenax/ontology/behaviour#observationType}.targetComponentId". + + cx-behaviour:observationType rdf:type cx-fx:Argument; + dcterms:description "The type of observation made."@en ; + dcterms:title "Observation Type"; + cx-fx:argumentName "content.endurancePredictorInputs.0.classifiedLoadSpectrum{https://w3id.org/catenax/ontology/behaviour#observationType}.metadata.componentDescription"; + cx-fx:dataType xsd:string. + + cx-behaviour:metadata rdf:type cx-fx:Argument; + dcterms:description "Metadata of the Loadspectrum."@en ; + dcterms:title "Loadspectrum Metadata"; + cx-fx:argumentName "content.endurancePredictorInputs.0.classifiedLoadSpectrum{https://w3id.org/catenax/ontology/behaviour#observationType}"; + cx-fx:dataType json:Object; + cx-fx:priority "0"^^xsd:integer; + cx-fx:default "{ \"metadata\":{ \"projectDescription\": \"pnr_76543\", \"routeDescription\": \"logged\" }, \"bammId\": \"urn:bamm:io.openmanufacturing.digitaltwin:1.0.0#ClassifiedLoadSpectrum\" }"^^json:Object. + + cx-behaviour:statusDate rdf:type cx-fx:Argument; + dcterms:description "Time of Recording."@en ; + dcterms:title "Loadspectrum Recording Time"; + cx-fx:dataType xsd:dateTime; + cx-fx:argumentName "content.endurancePredictorInputs.0.classifiedLoadSpectrum{https://w3id.org/catenax/ontology/behaviour#observationType}.metadata.status.date". + + cx-behaviour:statusOperatingHours rdf:type cx-fx:Argument; + dcterms:description "Operating Hours of Target Component at Time of Recording."@en ; + dcterms:title "Loadspectrum Operating Hours"; + cx-fx:dataType xsd:float; + cx-fx:argumentName "content.endurancePredictorInputs.0.classifiedLoadSpectrum{https://w3id.org/catenax/ontology/behaviour#observationType}.metadata.status.operatingHours". + + cx-behaviour:statusMileage rdf:type cx-fx:Argument; + dcterms:description "Mileage of Component at Time of Recording."@en ; + dcterms:title "Loadspectrum Mileage"; + cx-fx:dataType xsd:int; + cx-fx:argumentName "content.endurancePredictorInputs.0.classifiedLoadSpectrum{https://w3id.org/catenax/ontology/behaviour#observationType}.metadata.status.mileage". + + cx-behaviour:countingUnit rdf:type cx-fx:Argument; + dcterms:description "Counting Unit of Load Spectrum."@en ; + dcterms:title "Loadspectrum Counting Unit"; + cx-fx:dataType xsd:string; + cx-fx:argumentName "content.endurancePredictorInputs.0.classifiedLoadSpectrum{https://w3id.org/catenax/ontology/behaviour#observationType}.header.countingUnit". + + cx-behaviour:countingValue rdf:type cx-fx:Argument; + dcterms:description "Counting Value Name of Load Spectrum."@en ; + dcterms:title "Loadspectrum Counting Value"; + cx-fx:dataType xsd:string; + cx-fx:argumentName "content.endurancePredictorInputs.0.classifiedLoadSpectrum{https://w3id.org/catenax/ontology/behaviour#observationType}.header.countingValue,content.endurancePredictorInputs.0.classifiedLoadSpectrum{https://w3id.org/catenax/ontology/behaviour#observationType}.body.counts.countsName". + + cx-behaviour:countingMethod rdf:type cx-fx:Argument; + dcterms:description "Counting Method of Load Spectrum."@en ; + dcterms:title "Loadspectrum Counting Method"; + cx-fx:dataType xsd:string; + cx-fx:argumentName "content.endurancePredictorInputs.0.classifiedLoadSpectrum{https://w3id.org/catenax/ontology/behaviour#observationType}.header.countingMethod". + + cx-behaviour:headerChannels rdf:type cx-fx:Argument; + dcterms:description "Channels of Load Spectrum."@en ; + dcterms:title "Loadspectrum Channels"; + cx-fx:dataType json:Object; + cx-fx:argumentName "content.endurancePredictorInputs.0.classifiedLoadSpectrum{https://w3id.org/catenax/ontology/behaviour#observationType}.header.channels". + + cx-behaviour:bodyClasses rdf:type cx-fx:Argument; + dcterms:description "Classes of Load Spectrum."@en ; + dcterms:title "Loadspectrum Classes"; + cx-fx:dataType json:Object; + cx-fx:argumentName "content.endurancePredictorInputs.0.classifiedLoadSpectrum{https://w3id.org/catenax/ontology/behaviour#observationType}.body.classes". + + cx-behaviour:bodyCountsList rdf:type cx-fx:Argument; + dcterms:description "Counts List of Load Spectrum."@en ; + dcterms:title "Loadspectrum Counts List"; + cx-fx:dataType json:Object; + cx-fx:argumentName "content.endurancePredictorInputs.0.classifiedLoadSpectrum{https://w3id.org/catenax/ontology/behaviour#observationType}.body.counts.countsList". + + cx-behaviour:response rdf:type cx-fx:Result; + dcterms:description "The asynchronous notification response."@en ; + dcterms:title "Asynchronous notification response." ; + cx-fx:callbackProperty "header.referencedNotificationID"; + cx-fx:outputProperty "content.endurancePredictorOutputs"; + cx-fx:output cx-behaviour:remainingOperatingHours; + cx-fx:output cx-behaviour:remainingRunningDistance. + + cx-behaviour:remainingOperatingHours rdf:type cx-fx:ReturnValue; + dcterms:description "Predicted Operating Hours of Remaining Useful Life Response"@en ; + dcterms:title "Remaining Useful Life Operating Hours" ; + cx-fx:valuePath "0.remainingUsefulLife.remainingOperatingHours"; + cx-fx:dataType xsd:float. + + cx-behaviour:remainingRunningDistance rdf:type cx-fx:ReturnValue; + dcterms:description "Predicted Distance of Remaining Useful Life Response"@en ; + dcterms:title "Remaining Useful Life Distance" ; + cx-fx:valuePath "0.remainingUsefulLife.remainingRunningDistance"; + cx-fx:dataType xsd:int. +``` + +### Quick Setup Guide for Registering A Graph in the EDC + +The next steps require that you have already deployed the [Agent-Enabled EDC](agent_edc). + +We demonstrate the steps by interacting with the EDC Control Plane Management API + +#### Register A Graph Policy + +```console +curl --location --globoff '{{controlPlaneName}}/management/v2/policydefinitions' \ +--header 'X-Api-Key: {{EDC_API_KEY}}' \ +--header 'Content-Type: application/json' \ +--data-raw '{ + "@context": { + "odrl": "http://www.w3.org/ns/odrl/2/", + "cx-common": "https://w3id.org/catenax/ontology/common#" + }, + "@type": "PolicyDefinitionRequestDto", + "@id": "Policy?me=GraphPolicy", + "policy": { + "@type": "Policy", + "odrl:permission" : [{ + "odrl:action" : "USE", + "odrl:constraint" : { + "@type": "LogicalConstraint", + "odrl:or" : [{ + "@type" : "Constraint", + "odrl:leftOperand" : "BusinessPartnerNumber", + "odrl:operator" : { + "@id": "odrl:eq" + }, + "odrl:rightOperand" : "{{PARTNERBPNL}}" + }, + { + "@type" : "Constraint", + "odrl:leftOperand" : "BusinessPartnerNumber", + "odrl:operator" : { + "@id": "odrl:eq" + }, + "odrl:rightOperand" : "{{MYBPNL}}" + }] + } + }] + } +} +' +``` + +#### Register A Graph Contract + +```console +curl --location --globoff '{{controlPlaneName}}/management/v2/policydefinitions' \ +--header 'X-Api-Key: {{EDC_API_KEY}}' \ +--header 'Content-Type: application/json' \ +--data-raw '{ + "@context": { + "cx-common": "https://w3id.org/catenax/ontology/common#" + }, + "@id": "Contract?me=GraphContract", + "@type": "ContractDefinition", + "accessPolicyId": "Policy?me=GraphPolicy", + "contractPolicyId": "Policy?me=GraphPolicy", + "assetsSelector" : { + "@type" : "CriterionDto", + "operandLeft": "https://w3id.org/catenax/ontology/common#publishedUnderContract", + "operator": "=", + "operandRight": "Contract?me=Graph" + } +} +' +``` + +#### Register a Graph Asset + +```console +curl --location --globoff '{{controlPlaneName}}/management/v2/policydefinitions' \ +--header 'X-Api-Key: {{EDC_API_KEY}}' \ +--header 'Content-Type: application/json' \ +--data-raw '{ + "@context": { + "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "cx-common": "https://w3id.org/catenax/ontology/common#", + "xsd": "http://www.w3.org/2001/XMLSchema#", + "sh": "http://www.w3.org/ns/shacl#" + }, + "asset": { + "@type": "Asset", + "@id": "GraphAsset?me=Sample", + "properties": { + "name": "Sample Asset.", + "description": "A sample graph asset/offering over a binding agent.", + "version": "23.12", + "contenttype": "application/json, application/xml", + "cx-common:publishedUnderContract": "Contract?me=Graph", + "rdf:type": "cx-common:GraphAsset", + "rdfs:isDefinedBy": "", + "cx-common:implementsProtocol": "cx-common:Protocol?w3c:http:SPARQL", + "sh:shapesGraph": "@prefix : .\n", + "cx-common:isFederated": "true^^xsd:boolean" + } + }, + "dataAddress": { + "id": "GraphAsset?me=Sample", + "@type": "DataAddress", + "baseUrl": "http://{{binding-agent-internal}}", + "type": "cx-common:Protocol?w3c:http:SPARQL", + "proxyPath": "false", + "proxyMethod": "true", + "proxyQueryParams": "true", + "proxyBody": "true", + "authKey": "{{binding-agent-key}}", + "authCode": "{{binding-agent-token}}", + "cx-common:allowServicePattern": "((https)|(edcs?))://.*", + "cx-common:denyServicePattern": "https://ifconfig\\.me.*" + } +} +' +``` + +For more information see + +* Our [Adoption](../adoption-view/intro) guidelines +* The [Implementation](../development-view/architecture) documentation +* The [Deployment](deployment) overview +* A [Data Sovereignity & Graph Policy](policy) discussion + +## + +(C) 2021,2023 Contributors to the Eclipse Foundation. SPDX-License-Identifier: CC-BY-4.0 diff --git a/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/operation-view/testbed.md b/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/operation-view/testbed.md new file mode 100644 index 00000000000..f069826d5d1 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/operation-view/testbed.md @@ -0,0 +1,492 @@ +--- +sidebar_position: 1 +title: Testbed +--- + + +This document describes a testbed for checking conformance of the (Knowledge) Agents KIT (=Keep It Together). + +For more information see + +* Our [Adoption](../adoption-view/intro) guideline +* The [Architecture](../development-view/architecture) documentation +* The [EDC Deployment](agent_edc) description +* The [(Data/Function) Provider Deployment](provider) description +* The [AAS Bridge Deployment](bridge) description +* The [Conformity](testbed) testbed +* A [Data Sovereignity & Graph Policy](policy) discussion + +## Test Scripts + +The CAB (Conformity Assessment Body) may use a set of predefined API interactions to run against its own dataspace tenant or let the assessed party run these scripts depending on the assessment method. The scripts are hierarchically organized and can be found under this [Postman Collection](ka_conformity_scripts.postman_collection.json) or online under . For the URLs and identities of the CAB or the CAP (Conformity Assessment Party), the appropriate environment variables have to be set. + +![KA Confirmity Assessment Scrtips](@site/static/img/knowledge-agents/ka_conformity_scripts.png) + +The scripts are organised as follows: +- 01_TESTASSETS - asset descriptions, policies and contract definitions to be deployed both at the CAB as well as the CAP EDC (Control Plane), see below +- 02_ALL - scripts which need to be run at all CAPs + - 0201_EDC_CONTROL_PLANE - scripts to be run against control plane (transfer check) + - 0202_EDC_DATA_PLANE - scripts to be run against the data plane (callback and proxying) + - 0203_MATCHMAKING_AGENT - scripts to be run against the matchmaking agent + - 0204_FEDERATED_DATA_CATALOGUE - scripts checking the state of the federated data catalogue +- 03_PROVIDER - scripts which need to run at Provider CAPs + - 0301_PROVIDER_DATA - scripts to be run at Data Provider CAPs + - 030101_PROVIDER_DATA_SPARQL - scripts to be run against Data Provider Agents + - 0302_PROVIDER_FUNCTION - scripts to be run at Function Provider CAPs + - 030201_PROVIDER_FUNCTION_SPARQL - scripts to be run against Function Provider Agents +- 04_CONSUMER - scripts to be run against Consumer CAPs + - 0401_CONSUMER_APPLICATION - scripts to be run against a KA-enabled Application + - 040101_CONSUMER_APPLICATION_SPARQL - scripts to be run against a SPARQL-speaking Application +- 05_CORE - scripts to be run against a Core Service CAP + - 0501_CORE_ONTOLOGY - scripts to be run against the Ontology Hosting Capability of the Core Service CAP + - 050101_CORE_ONTOLOGY_MANAGEMENT - scripts to be run against the Ontology Hosting Capability for management + - 050102_CORE_ONTOLOGY_EDITOR - scripts to be run against the Ontology Hosting Capability for editing + +## Test Policies and Contract Definitions + +The CAB may use the following Policy Definitions and Contract Definitions in its assessment method. The CAB may deploy these objects in its own dataspace tenant or let the assessed party deploy these objects depending on the assessment method. + +### Open Policy + +```json +{ + "@context": { + "odrl": "http://www.w3.org/ns/odrl/2/", + "cx-common": "https://w3id.org/catenax/ontology/common#" + }, + "@type": "PolicyDefinitionRequestDto", + "@id": "Policy?cab=Asset&mode=open", + "policy": { + "@type": "Policy", + "odrl:permission" : [{ + "odrl:action" : "USE", + "odrl:constraint" : [] + }] + } +} +``` + +### Closed Policy + +```json +{ + "@context": { + "odrl": "http://www.w3.org/ns/odrl/2/", + "cx-common": "https://w3id.org/catenax/ontology/common#" + }, + "@type": "PolicyDefinitionRequestDto", + "@id": "Policy?cab=Asset&mode=closed", + "policy": { + "@type": "Policy", + "odrl:permission" : [{ + "odrl:action" : "USE", + "odrl:constraint" : { + "@type" : "Constraint", + "odrl:leftOperand" : "BusinessPartnerNumber", + "odrl:operator" : { + "@id": "odrl:eq" + }, + "odrl:rightOperand" : "{{cabBPNL}}" + } + }] + } +} +``` + +### Open Contract Definition + +```json +{ + "@context": { + "cx-common": "https://w3id.org/catenax/ontology/common#" + }, + "@id": "Contract?cab=Asset&mode=open", + "@type": "ContractDefinition", + "accessPolicyId": "Policy?cab=Asset&mode=open", + "contractPolicyId": "Policy?cab=Asset&mode=open", + "assetsSelector" : { + "@type" : "CriterionDto", + "operandLeft": "https://w3id.org/catenax/ontology/common#publishedUnderContract", + "operator": "=", + "operandRight": "Contract?cab=Asset&mode=open" + } +} +``` + +### Closed Contract Definition + +```json +{ + "@context": { + "cx-common": "https://w3id.org/catenax/ontology/common#" + }, + "@id": "Contract?cab=Asset&mode=closed", + "@type": "ContractDefinition", + "accessPolicyId": "Policy?cab=Asset&mode=closed", + "contractPolicyId": "Policy?cab=Asset&mode=closed", + "assetsSelector" : { + "@type" : "CriterionDto", + "operandLeft": "https://w3id.org/catenax/ontology/common#publishedUnderContract", + "operator": "=", + "operandRight": "Contract?cab=Asset&mode=closed" + } +} +``` + +## Test Graph Assets + +The CAB may use the following Graph Asset Descriptions (referring to the contract definitions in the last section) in its assessment method. The CAB may deploy these objects in its own dataspace tenant or let the assessed party deploy these objects depending on the assessment method. + +### Open Graph Asset + +```json +{ + "@context": { + "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "cx-common": "https://w3id.org/catenax/ontology/common#", + "xsd": "http://www.w3.org/2001/XMLSchema#", + "sh": "http://www.w3.org/ns/shacl#" + }, + "asset": { + "@type": "Asset", + "@id": "GraphAsset?cab=Conforming&mode=open", + "properties": { + "name": "Open Conforming Asset.", + "description": "A graph asset/offering hosting a conforming agent for testing and conformity checking.", + "version": "1.10.15", + "contenttype": "application/json, application/xml", + "cx-common:publishedUnderContract": "Contract?cab=Asset&mode=open", + "rdf:type": "cx-common:GraphAsset", + "rdfs:isDefinedBy": "", + "cx-common:implementsProtocol": "cx-common:Protocol?w3c:http:SPARQL", + "sh:shapesGraph": "@prefix : .\n", + "cx-common:isFederated": "true^^xsd:boolean" + } + }, + "dataAddress": { + "id": "GraphAsset?cab=Conforming&mode=open", + "@type": "DataAddress", + "baseUrl": "{{cabConformingAgent}}/bind", + "type": "cx-common:Protocol?w3c:http:SPARQL", + "proxyPath": "false", + "proxyMethod": "true", + "proxyQueryParams": "true", + "proxyBody": "true" + } +} +``` + +### Closed Graph Asset + +```json +{ + "@context": { + "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "cx-common": "https://w3id.org/catenax/ontology/common#", + "xsd": "http://www.w3.org/2001/XMLSchema#", + "sh": "http://www.w3.org/ns/shacl#" + }, + "asset": { + "@type": "Asset", + "@id": "GraphAsset?cab=Conforming&mode=closed", + "properties": { + "name": "Closed Conforming Asset.", + "description": "A graph asset/offering hosting a conforming agent for testing and conformity checking.", + "version": "1.10.15", + "contenttype": "application/json, application/xml", + "cx-common:publishedUnderContract": "Contract?cab=Asset&mode=closed", + "rdf:type": "cx-common:GraphAsset", + "rdfs:isDefinedBy": "", + "cx-common:implementsProtocol": "cx-common:Protocol?w3c:http:SPARQL", + "sh:shapesGraph": "@prefix : .\n", + "cx-common:isFederated": "true^^xsd:boolean" + } + }, + "dataAddress": { + "id": "GraphAsset?cab=Conforming&mode=closed", + "@type": "DataAddress", + "baseUrl": "{{cabConformingAgent}}/bind", + "type": "cx-common:Protocol?w3c:http:SPARQL", + "proxyPath": "false", + "proxyMethod": "true", + "proxyQueryParams": "true", + "proxyBody": "true" + } +} +``` + +### Unfederated Graph Asset + +```json +{ + "@context": { + "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "cx-common": "https://w3id.org/catenax/ontology/common#", + "xsd": "http://www.w3.org/2001/XMLSchema#", + "sh": "http://www.w3.org/ns/shacl#" + }, + "asset": { + "@type": "Asset", + "@id": "GraphAsset?cab=Conforming&mode=unfederated", + "properties": { + "name": "Unfederated Conforming Asset.", + "description": "A graph asset/offering hosting a conforming agent for testing and conformity checking.", + "version": "1.10.15", + "contenttype": "application/json, application/xml", + "cx-common:publishedUnderContract": "Contract?cab=Graph&mode=open", + "rdf:type": "cx-common:GraphAsset", + "rdfs:isDefinedBy": "", + "cx-common:implementsProtocol": "cx-common:Protocol?w3c:http:SPARQL", + "sh:shapesGraph": "@prefix : .\n", + "cx-common:isFederated": "false^^xsd:boolean" + } + }, + "dataAddress": { + "id": "GraphAsset?cab=Conforming&mode=unfederated", + "@type": "DataAddress", + "baseUrl": "{{cabConformingAgent}}/bind", + "type": "cx-common:Protocol?w3c:http:SPARQL", + "proxyPath": "false", + "proxyMethod": "true", + "proxyQueryParams": "true", + "proxyBody": "true" + } +} +``` + +## Test Skill Assets + +The CAB may use the following Skill Asset Descriptions (referring to the contract definitions in the last section) in its assessment method. The CAB may deploy these objects in its own dataspace tenant or let the assessed party deploy these objects depending on the assessment method. + +### Open Skill Asset + +```json +{ + "@context": { + "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "cx-common": "https://w3id.org/catenax/ontology/common#", + "sh": "http://www.w3.org/ns/shacl#" + }, + "asset": { + "@type": "Asset", + "@id": "SkillAsset?cab=Conforming&mode=open", + "properties": { + "name": "Open Skill", + "description": "A conformity assessment skill.", + "version": "1.10.15", + "contenttype": "application/json, application/xml", + "cx-common:publishedUnderContract": "Contract?cab=Asset&mode=open", + "rdf:type": "cx-common:SkillAsset", + "rdfs:isDefinedBy": "", + "cx-common:implementsProtocol": "cx-common:Protocol?w3c:http:SKILL", + "cx-common:distributionMode": "cx-common:SkillDistribution?run=all", + "cx-common:isFederated": "true^^xsd:boolean" + }, + "privateProperties": { + "cx-common:query":"# Sample Skill accessing a graph\n\nSELECT ?subject ?predicate ?object WHERE { \n SERVICE {\n GRAPH { \n ?subject ?predicate ?object. \n }\n } \n}" + } + }, + "dataAddress": { + "id":"SkillAsset?cab=Conforming&mode=open", + "@type": "DataAddress", + "type": "cx-common:Protocol?w3c:http:SKILL", + "proxyPath": "false", + "proxyMethod": "true", + "proxyQueryParams": "true", + "proxyBody": "true" + } +} + +``` + +### Closed Skill Asset + +```json +{ + "@context": { + "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "cx-common": "https://w3id.org/catenax/ontology/common#", + "sh": "http://www.w3.org/ns/shacl#" + }, + "asset": { + "@type": "Asset", + "@id": "SkillAsset?cab=Conforming&mode=closed", + "properties": { + "name": "Closed Skill", + "description": "A conformity assessment skill.", + "version": "1.10.15", + "contenttype": "application/json, application/xml", + "cx-common:publishedUnderContract": "Contract?cab=Asset&mode=closed", + "rdf:type": "cx-common:SkillAsset", + "rdfs:isDefinedBy": "", + "cx-common:implementsProtocol": "cx-common:Protocol?w3c:http:SKILL", + "cx-common:distributionMode": "cx-common:SkillDistribution?run=all", + "cx-common:isFederated": "false^^xsd:boolean" + }, + "privateProperties": { + "cx-common:query":"# Sample Skill accessing a graph\n\nSELECT ?subject ?predicate ?object WHERE { \n SERVICE {\n GRAPH { \n ?subject ?predicate ?object. \n }\n } \n}" + } + }, + "dataAddress": { + "id":"SkillAsset?cab=Conforming&mode=closed", + "@type": "DataAddress", + "type": "cx-common:Protocol?w3c:http:SKILL", + "proxyPath": "false", + "proxyMethod": "true", + "proxyQueryParams": "true", + "proxyBody": "true" + } +} +``` + +### Provider Skill Asset + +```json +{ + "@context": { + "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "cx-common": "https://w3id.org/catenax/ontology/common#", + "sh": "http://www.w3.org/ns/shacl#" + }, + "asset": { + "@type": "Asset", + "@id": "SkillAsset?cab=Conforming&mode=provider", + "properties": { + "name": "Provider-Forced Skill", + "description": "A conformity assessment skill.", + "version": "1.10.15", + "contenttype": "application/json, application/xml", + "cx-common:publishedUnderContract": "Contract?cab=Asset&mode=open", + "rdf:type": "cx-common:SkillAsset", + "rdfs:isDefinedBy": "", + "cx-common:implementsProtocol": "cx-common:Protocol?w3c:http:SKILL", + "cx-common:distributionMode": "cx-common:SkillDistribution?run=provider", + "cx-common:isFederated": "true^^xsd:boolean" + }, + "privateProperties": { + "cx-common:query":"# Sample Skill accessing a graph\n\nSELECT ?subject ?predicate ?object WHERE { \n SERVICE {\n GRAPH { \n ?subject ?predicate ?object. \n }\n } \n}" + } + }, + "dataAddress": { + "id":"SkillAsset?cab=Conforming&mode=provider", + "@type": "DataAddress", + "type": "cx-common:Protocol?w3c:http:SKILL", + "proxyPath": "false", + "proxyMethod": "true", + "proxyQueryParams": "true", + "proxyBody": "true" + } +} +``` + +### Consumer Skill Asset + +```json +{ + "@context": { + "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "cx-common": "https://w3id.org/catenax/ontology/common#", + "sh": "http://www.w3.org/ns/shacl#" + }, + "asset": { + "@type": "Asset", + "@id": "SkillAsset?cab=Conforming&mode=consumer", + "properties": { + "name": "Consumer-Forced Skill", + "description": "A conformity assessment skill.", + "version": "1.10.15", + "contenttype": "application/json, application/xml", + "cx-common:publishedUnderContract": "Contract?cab=Asset&mode=open", + "rdf:type": "cx-common:SkillAsset", + "rdfs:isDefinedBy": "", + "cx-common:implementsProtocol": "cx-common:Protocol?w3c:http:SKILL", + "cx-common:distributionMode": "cx-common:SkillDistribution?run=consumer", + "cx-common:isFederated": "true^^xsd:boolean" + }, + "privateProperties": { + "cx-common:query":"# Sample Skill accessing a graph\n\nSELECT ?subject ?predicate ?object WHERE { \n SERVICE {\n GRAPH { \n ?subject ?predicate ?object. \n }\n } \n}" + } + }, + "dataAddress": { + "id":"SkillAsset?cab=Conforming&mode=consumer", + "@type": "DataAddress", + "type": "cx-common:Protocol?w3c:http:SKILL", + "proxyPath": "false", + "proxyMethod": "true", + "proxyQueryParams": "true", + "proxyBody": "true" + } +} +``` + +### Unfederated Skill Asset + +```json +{ + "@context": { + "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "cx-common": "https://w3id.org/catenax/ontology/common#", + "sh": "http://www.w3.org/ns/shacl#" + }, + "asset": { + "@type": "Asset", + "@id": "SkillAsset?cab=Conforming&mode=unfederated", + "properties": { + "name": "Unfederated Skill", + "description": "A conformity assessment skill.", + "version": "1.9.4-SNAPSHOT", + "contenttype": "application/json, application/xml", + "cx-common:publishedUnderContract": "Contract?cab=Asset&mode=open", + "rdf:type": "cx-common:SkillAsset", + "rdfs:isDefinedBy": "", + "cx-common:implementsProtocol": "cx-common:Protocol?w3c:http:SKILL", + "cx-common:distributionMode": "cx-common:SkillDistribution?run=all", + "cx-common:isFederated": "false^^xsd:boolean" + }, + "privateProperties": { + "cx-common:query":"# Sample Skill accessing a graph\n\nSELECT ?subject ?predicate ?object WHERE { \n SERVICE {\n GRAPH { \n ?subject ?predicate ?object. \n }\n } \n}" + } + }, + "dataAddress": { + "id":"SkillAsset?cab=Conforming&mode=unfederated", + "@type": "DataAddress", + "type": "cx-common:Protocol?w3c:http:SKILL", + "proxyPath": "false", + "proxyMethod": "true", + "proxyQueryParams": "true", + "proxyBody": "true" + } +} +``` + +(C) 2021,2023 Contributors to the Eclipse Foundation. SPDX-License-Identifier: CC-BY-4.0 diff --git a/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/page_changelog.md b/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/page_changelog.md new file mode 100644 index 00000000000..bef67478bb5 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/knowledge-agents/page_changelog.md @@ -0,0 +1,115 @@ +--- +id: Knowledge Agent Changelog +title: Changelog +description: 'Knowledge Agent' +sidebar_position: 1 +--- + +### Agents KIT + +![Agents Kit Banner](/img/knowledge-agents/AgentsKit-Icon.png) + +All notable changes to the (Knowledge) Agents KIT (=Keep It Together) will be documented in this file. + +## [1.0.0] - 2023-11-24 + +### Added + +- Stable Deployment Example +- Notice + +### Changed + +- Simplified Adoption View +- Updated Standard References, Release Dates + +## [0.0.1] - 2023-09-29 + +### Added + +- AAS Bridge References +- Deployment Examples +- References to the RUL Kit + +### Changed + +- Pointers moved from Catena-X to Tractus-X +- Adapted to Tractus-X EDC 0.5.x and the changed EDR callback +- Adapted all Catena-X namespaces to https://w3id.org/catenax +- Upgraded to the latest possible version of dependent libraries +- Eclipse Tractus-X standards and migration + + +### Removed + +- Sample Dataspace +- Build & Compile +- Standard Drafts +- Previous EDC Control Plane Extensions regarding SPARQL/HTTP transfer + +## [PRE 0.1] - 2023-09-04 + +### Added + +- Conformity Assessment Testbed +- Matchmaking Agent: Possibility to invoke Skills as Services according to KA-MATCH +- Matchmaking Agent: Possibility to steer Delegation through Asset Properties +- Matchmaking Agent: Possibility to allow/deny service requests based on URL pattern +- Transfer: Possibility to annotate assets with service request allow/deny patterns +- Transfer: Implement Skill Protocol of KA-TRANSFER +- Federated Data Catalogue: Embedding Shapes Properties as Named Graphs +- Skill Store: Implementation using EDC Control Plane/Asset Catalogue +- Support for SPARQL KA-transfer profile including the cx_warnings header +- Necessary documentation markdown for Eclipse Standard +- Helm Sub-Charts for Umbrella Embedding +- Postman Collection with Integration Tests +- SparQL Anything, PostgreSQL support +- Eclipse Dataspace Connector Extensions (Control Plane & Data Plane) +- Registration of Additional Callback Handlers +- Move patched code into extensions +- Ontology Python Tools +- UX Skill Framework +- UX Skill Modules for Custom Search +- Added Backend Virtualization & Mock +- Postman Collection with RUL & HI Logic +- Include depending artifacts via Maven/Docker +- Remoting Agent Batch Mode +- Ontology Submodule including Diagnosis Domain +- Splitted Tractus-X Branch into Dataspace and UX submodules +- Moved Deployments to Infrastructure Submodule +- Added 2 Agent Implementations (Ontop, RDF4J) +- Postman Collection with RUL Logic +- Software BOM +- Submodules to Apache Jena and Tractus-X +- Source Code and Data Samples for Three tenants +- Postman Collection with Spike Logic +- Helm Chart and Docker Compose Deployment +- Adapted to Tractus-X EDC 0.4 and the v2 Management and Catalogue APIs + +### Changed + +### Removed + +(C) 2021,2023 Contributors to the Eclipse Foundation. SPDX-License-Identifier: CC-BY-4.0 diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/CHANGELOG.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/CHANGELOG.md new file mode 100644 index 00000000000..7a2e25696cc --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/CHANGELOG.md @@ -0,0 +1,94 @@ +# Changelog + +![Connector kit banner](@site/static/img/ConnectorKitIcon.png) + +## Connector KIT + +All notable changes to this Kit will be documented in this file. + +## [0.6.0] - 2023-10-31 + +

      Changed

      + +- restructuring of adoption view +- new domain model, drawn with drawio + +## [0.5.0] - 2023-08-09 + +

      Changed

      + +- preparation for release Tractus-X EDC 0.5.0 + +## [0.4.0] - 2023-07-07 + +

      Added

      + +- documentation to deal with the new managament-api +- documentation to deal with the new SSI +- tractusx-edc open api documentation +- legacy connector documentation which works with daps +- migration guide to edc version 0.5.x + +

      Changed

      + +- helm charts reference now to the edc version 0.5.0-rc5 +- restructuring of the openAPI documentation +- postmancollection contains the new management-api + +

      Removed

      + +- chart documentation for tractusx-connector-app +- unused files like charts, values.yaml +- decision records + +## [0.3.0] - 2023-05-16 + +

      Added

      + +- chart documentation for tractusx-connector-azure-vault + +

      Changed

      + +- helm chart documentation -> added needed properties and information about self-signed certificates for testing + +

      Removed

      + +- chart documentation for tractusx-connector-app +- unused files like charts, values.yaml + +## [0.2.0] - 2023-04-28 + +

      Added

      + +- documentation of the control-plane-adapter extension +- openAPI documentation of the control-plane-adapter extension +- documentation of the observability-api-customization +- migration documentation +- postman collection + +

      Changed

      + +- helm chart version for the edc components is now 0.3.3 +- switched the whole documentation structure from product-edc to tractusx-edc +- switched build tool from maven to gradle +- restructured the whole documentation structure and order + +

      Removed

      + +- ./. + +## [0.1.0] - 2023-03-01 + +

      Added

      + +- documentation of the management-api +- documentation of adoption view +- documentation of software development view + +

      Changed

      + +- ./. + +

      Removed

      + +- ./. diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/README.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/README.md new file mode 100644 index 00000000000..08664b5a8d5 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/README.md @@ -0,0 +1,84 @@ +# Tractus-X EDC (Eclipse Dataspace Connector) + +[![Contributors][contributors-shield]][contributors-url] +[![Stargazers][stars-shield]][stars-url] +[![Apache 2.0 License][license-shield]][license-url] +[![Latest Release][release-shield]][release-url] + +[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=eclipse-tractusx_tractusx-edc&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=eclipse-tractusx_tractusx-edc) + +Container images and deployments of the Eclipse Dataspace Components for the Tractus-X project. + +Please also refer to: + +- [Our docs](https://github.com/eclipse-tractusx/tractusx-edc/tree/main/docs) +- [Our Releases](https://github.com/eclipse-tractusx/tractusx-edc/releases) +- [Eclipse Dataspace Components](https://github.com/eclipse-edc/Connector) +- [Report Bug / Request Feature](https://github.com/eclipse-tractusx/tractusx-edc/issues) + +## About The Project + +The project provides pre-built control- and data-plane [docker](https://www.docker.com/) images +and [helm](https://helm.sh/) charts of +the [Eclipse DataSpaceConnector Project](https://github.com/eclipse-edc/Connector). + +## Inventory + +The eclipse data space connector is split up into Control-Plane and Data-Plane, whereas the Control-Plane functions as +administration layer and has responsibility of resource management, contract negotiation and administer data transfer. +The Data-Plane does the heavy lifting of transferring and receiving data streams. + +Depending on your environment there are different derivatives of the control-plane prepared: + +- [edc-controlplane-postgresql-azure-vault](edc-controlplane/edc-controlplane-postgresql-azure-vault) with dependency onto + - [Azure Key Vault](https://azure.microsoft.com/en-us/services/key-vault/#product-overview) + - [PostgreSQL 8.2 or newer](https://www.postgresql.org/) +- [edc-controlplane-postgresql-hashicorp-vault](edc-controlplane/edc-controlplane-postgresql-hashicorp-vault) with + dependency onto + - [Hashicorp Vault](https://www.vaultproject.io/) + - [PostgreSQL 8.2 or newer](https://www.postgresql.org/) + +Derivatives of the Data-Plane can be found here + +- [edc-dataplane-azure-vault](edc-dataplane/edc-dataplane-azure-vault) with dependency onto + - [Azure Key Vault](https://azure.microsoft.com/en-us/services/key-vault/#product-overview) +- [edc-dataplane-hashicorp-vault](edc-dataplane/edc-dataplane-hashicorp-vault) with dependency onto + - [Hashicorp Vault](https://www.vaultproject.io/) + +For testing/development purposes: + +- [edc-runtime-memory](edc-controlplane/edc-runtime-memory) + +## Getting Started + +### Build + +Build Tractus-X EDC together with its Container Images + +```shell +./gradlew dockerize +``` + +## License + +Distributed under the Apache 2.0 License. +See [LICENSE](https://github.com/eclipse-tractusx/tractusx-edc/blob/main/LICENSE) for more information. + + + + +[contributors-shield]: https://img.shields.io/github/contributors/eclipse-tractusx/tractusx-edc.svg?style=for-the-badge + +[contributors-url]: https://github.com/eclipse-tractusx/tractusx-edc/graphs/contributors + +[stars-shield]: https://img.shields.io/github/stars/eclipse-tractusx/tractusx-edc.svg?style=for-the-badge + +[stars-url]: https://github.com/eclipse-tractusx/tractusx-edc/stargazers + +[license-shield]: https://img.shields.io/github/license/eclipse-tractusx/tractusx-edc.svg?style=for-the-badge + +[license-url]: https://github.com/eclipse-tractusx/tractusx-edc/blob/main/LICENSE + +[release-shield]: https://img.shields.io/github/v/release/eclipse-tractusx/tractusx-edc.svg?style=for-the-badge + +[release-url]: https://github.com/eclipse-tractusx/tractusx-edc/releases diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/charts/README.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/charts/README.md new file mode 100644 index 00000000000..adbaac6af1a --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/charts/README.md @@ -0,0 +1,19 @@ +# Helm Charts + +## Chart Linting + +Chart linting is performed using [helm's CT tool](https://github.com/helm/chart-testing). + +Configuration files for [CT](../ct.yaml), [Yamale](../chart_schema.yaml) and [Yamllint](../lintconf.yaml) have been provided. + +## Generate Chart Readme's + +To generate chart README.md files from its respective values.yaml file we use the [helm-docs tool](https://github.com/norwoodj/helm-docs): + +```shell +docker run --rm --volume "$(pwd):/helm-docs" -u $(id -u) jnorwood/helm-docs:v1.10.0 +``` + +## Confidential EDC Settings + +Some EDC settings should better not be part of the actual deployment (like credentials to the database or the vault). Therefore, it is possible to deploy a secret with these confidential settings beforehand, and make it known to the deployment by setting the secret name in the `envSecretName` field of the deployment. diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/charts/tractusx-connector-azure-vault/README.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/charts/tractusx-connector-azure-vault/README.md new file mode 100644 index 00000000000..13e77291a62 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/charts/tractusx-connector-azure-vault/README.md @@ -0,0 +1,275 @@ +# tractusx-connector-azure-vault + +![Version: 0.5.0](https://img.shields.io/badge/Version-0.5.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.5.0](https://img.shields.io/badge/AppVersion-0.5.0-informational?style=flat-square) + +A Helm chart for Tractus-X Eclipse Data Space Connector. The connector deployment consists of two runtime consists of a +Control Plane and a Data Plane. Note that _no_ external dependencies such as a PostgreSQL database and Azure KeyVault are included. + +This chart is intended for use with an _existing_ PostgreSQL database and an _existing_ Azure KeyVault. + +**Homepage:** + +## Setting up SSI + +### Preconditions + +- the [Managed Identity Walled (MIW)](https://github.com/catenax-ng/tx-managed-identity-wallets) must be running and reachable via network +- the necessary set of VerifiableCredentials for this participant must be pushed to MIW. This is typically done by the + Portal during participant onboarding +- KeyCloak must be running and reachable via network +- an account with KeyCloak must be created for this BPN and the connector must be able to obtain access tokens +- the client ID and client secret corresponding to that account must be known + +### Preparatory work + +- store your KeyCloak client secret in the Azure KeyVault. The exact procedure is as follows: + + ```bash + az keyvault secret set --vault-name --name client-secret --value "$YOUR_CLIENT_SECRET" + ``` + + By default, Tractus-X EDC expects to find the secret under `client-secret`. + +### Configure the chart + +Be sure to provide the following configuration entries to your Tractus-X EDC Helm chart: + +- `controlplane.ssi.miw.url`: the URL +- `controlplane.ssi.miw.authorityId`: the BPN of the issuer authority +- `controlplane.ssi.oauth.tokenurl`: the URL (of KeyCloak), where access tokens can be obtained +- `controlplane.ssi.oauth.client.id`: client ID for KeyCloak +- `controlplane.ssi.oauth.client.secretAlias`: the alias under which the client secret is stored in the vault. Defaults to `client-secret`. + +### Launching the application + +As an easy starting point, please consider using [this example configuration](https://github.com/eclipse-tractusx/tractusx-edc/blob/main/edc-tests/deployment/src/main/resources/helm/tractusx-connector-test.yaml) +to launch the application. The configuration values mentioned above (`controlplane.ssi.*`) will have to be adapted manually. +Combined, run this shell command to start the in-memory Tractus-X EDC runtime: + +```shell +helm repo add tractusx-edc https://eclipse-tractusx.github.io/charts/dev +helm install my-release tractusx-edc/tractusx-connector-azure-vault --version 0.5.0 \ + -f /tractusx-connector-azure-vault-test.yaml \ + --set vault.azure.name=$AZURE_VAULT_NAME \ + --set vault.azure.client=$AZURE_CLIENT_ID \ + --set vault.azure.secret=$AZURE_CLIENT_SECRET \ + --set vault.azure.tenant=$AZURE_TENANT_ID +``` + +## Source Code + +- + +## Requirements + +| Repository | Name | Version | +|------------|------|---------| +| | postgresql(postgresql) | 12.1.6 | + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| backendService.httpProxyTokenReceiverUrl | string | `""` | | +| controlplane.affinity | object | `{}` | | +| controlplane.autoscaling.enabled | bool | `false` | Enables [horizontal pod autoscaling](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/) | +| controlplane.autoscaling.maxReplicas | int | `100` | Maximum replicas if resource consumption exceeds resource threshholds | +| controlplane.autoscaling.minReplicas | int | `1` | Minimal replicas if resource consumption falls below resource threshholds | +| controlplane.autoscaling.targetCPUUtilizationPercentage | int | `80` | targetAverageUtilization of cpu provided to a pod | +| controlplane.autoscaling.targetMemoryUtilizationPercentage | int | `80` | targetAverageUtilization of memory provided to a pod | +| controlplane.businessPartnerValidation.log.agreementValidation | bool | `true` | | +| controlplane.debug.enabled | bool | `false` | | +| controlplane.debug.port | int | `1044` | | +| controlplane.debug.suspendOnStart | bool | `false` | | +| controlplane.endpoints | object | `{"control":{"path":"/control","port":8083},"default":{"path":"/api","port":8080},"management":{"authKey":"","path":"/management","port":8081},"metrics":{"path":"/metrics","port":9090},"protocol":{"path":"/api/v1/dsp","port":8084}}` | endpoints of the control plane | +| controlplane.endpoints.control | object | `{"path":"/control","port":8083}` | control api, used for internal control calls. can be added to the internal ingress, but should probably not | +| controlplane.endpoints.control.path | string | `"/control"` | path for incoming api calls | +| controlplane.endpoints.control.port | int | `8083` | port for incoming api calls | +| controlplane.endpoints.default | object | `{"path":"/api","port":8080}` | default api for health checks, should not be added to any ingress | +| controlplane.endpoints.default.path | string | `"/api"` | path for incoming api calls | +| controlplane.endpoints.default.port | int | `8080` | port for incoming api calls | +| controlplane.endpoints.management | object | `{"authKey":"","path":"/management","port":8081}` | data management api, used by internal users, can be added to an ingress and must not be internet facing | +| controlplane.endpoints.management.authKey | string | `""` | authentication key, must be attached to each 'X-Api-Key' request header | +| controlplane.endpoints.management.path | string | `"/management"` | path for incoming api calls | +| controlplane.endpoints.management.port | int | `8081` | port for incoming api calls | +| controlplane.endpoints.metrics | object | `{"path":"/metrics","port":9090}` | metrics api, used for application metrics, must not be internet facing | +| controlplane.endpoints.metrics.path | string | `"/metrics"` | path for incoming api calls | +| controlplane.endpoints.metrics.port | int | `9090` | port for incoming api calls | +| controlplane.endpoints.protocol | object | `{"path":"/api/v1/dsp","port":8084}` | dsp api, used for inter connector communication and must be internet facing | +| controlplane.endpoints.protocol.path | string | `"/api/v1/dsp"` | path for incoming api calls | +| controlplane.endpoints.protocol.port | int | `8084` | port for incoming api calls | +| controlplane.env | object | `{}` | | +| controlplane.envConfigMapNames | list | `[]` | | +| controlplane.envSecretNames | list | `[]` | | +| controlplane.envValueFrom | object | `{}` | | +| controlplane.image.pullPolicy | string | `"IfNotPresent"` | [Kubernetes image pull policy](https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy) to use | +| controlplane.image.repository | string | `""` | Which derivate of the control plane to use. when left empty the deployment will select the correct image automatically | +| controlplane.image.tag | string | `""` | Overrides the image tag whose default is the chart appVersion | +| controlplane.ingresses[0].annotations | object | `{}` | Additional ingress annotations to add | +| controlplane.ingresses[0].certManager.clusterIssuer | string | `""` | If preset enables certificate generation via cert-manager cluster-wide issuer | +| controlplane.ingresses[0].certManager.issuer | string | `""` | If preset enables certificate generation via cert-manager namespace scoped issuer | +| controlplane.ingresses[0].className | string | `""` | Defines the [ingress class](https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-class) to use | +| controlplane.ingresses[0].enabled | bool | `false` | | +| controlplane.ingresses[0].endpoints | list | `["protocol"]` | EDC endpoints exposed by this ingress resource | +| controlplane.ingresses[0].hostname | string | `"edc-control.local"` | The hostname to be used to precisely map incoming traffic onto the underlying network service | +| controlplane.ingresses[0].tls | object | `{"enabled":false,"secretName":""}` | TLS [tls class](https://kubernetes.io/docs/concepts/services-networking/ingress/#tls) applied to the ingress resource | +| controlplane.ingresses[0].tls.enabled | bool | `false` | Enables TLS on the ingress resource | +| controlplane.ingresses[0].tls.secretName | string | `""` | If present overwrites the default secret name | +| controlplane.ingresses[1].annotations | object | `{}` | Additional ingress annotations to add | +| controlplane.ingresses[1].certManager.clusterIssuer | string | `""` | If preset enables certificate generation via cert-manager cluster-wide issuer | +| controlplane.ingresses[1].certManager.issuer | string | `""` | If preset enables certificate generation via cert-manager namespace scoped issuer | +| controlplane.ingresses[1].className | string | `""` | Defines the [ingress class](https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-class) to use | +| controlplane.ingresses[1].enabled | bool | `false` | | +| controlplane.ingresses[1].endpoints | list | `["management","control"]` | EDC endpoints exposed by this ingress resource | +| controlplane.ingresses[1].hostname | string | `"edc-control.intranet"` | The hostname to be used to precisely map incoming traffic onto the underlying network service | +| controlplane.ingresses[1].tls | object | `{"enabled":false,"secretName":""}` | TLS [tls class](https://kubernetes.io/docs/concepts/services-networking/ingress/#tls) applied to the ingress resource | +| controlplane.ingresses[1].tls.enabled | bool | `false` | Enables TLS on the ingress resource | +| controlplane.ingresses[1].tls.secretName | string | `""` | If present overwrites the default secret name | +| controlplane.initContainers | list | `[]` | | +| controlplane.livenessProbe.enabled | bool | `true` | Whether to enable kubernetes [liveness-probe](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/) | +| controlplane.livenessProbe.failureThreshold | int | `6` | when a probe fails kubernetes will try 6 times before giving up | +| controlplane.livenessProbe.initialDelaySeconds | int | `30` | seconds to wait before performing the first liveness check | +| controlplane.livenessProbe.periodSeconds | int | `10` | this fields specifies that kubernetes should perform a liveness check every 10 seconds | +| controlplane.livenessProbe.successThreshold | int | `1` | number of consecutive successes for the probe to be considered successful after having failed | +| controlplane.livenessProbe.timeoutSeconds | int | `5` | number of seconds after which the probe times out | +| controlplane.logging | string | `".level=INFO\norg.eclipse.edc.level=ALL\nhandlers=java.util.logging.ConsoleHandler\njava.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter\njava.util.logging.ConsoleHandler.level=ALL\njava.util.logging.SimpleFormatter.format=[%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS] [%4$-7s] %5$s%6$s%n"` | configuration of the [Java Util Logging Facade](https://docs.oracle.com/javase/7/docs/technotes/guides/logging/overview.html) | +| controlplane.nodeSelector | object | `{}` | | +| controlplane.opentelemetry | string | `"otel.javaagent.enabled=false\notel.javaagent.debug=false"` | configuration of the [Open Telemetry Agent](https://opentelemetry.io/docs/instrumentation/java/automatic/agent-config/) to collect and expose metrics | +| controlplane.podAnnotations | object | `{}` | additional annotations for the pod | +| controlplane.podLabels | object | `{}` | additional labels for the pod | +| controlplane.podSecurityContext | object | `{"fsGroup":10001,"runAsGroup":10001,"runAsUser":10001,"seccompProfile":{"type":"RuntimeDefault"}}` | The [pod security context](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod) defines privilege and access control settings for a Pod within the deployment | +| controlplane.podSecurityContext.fsGroup | int | `10001` | The owner for volumes and any files created within volumes will belong to this guid | +| controlplane.podSecurityContext.runAsGroup | int | `10001` | Processes within a pod will belong to this guid | +| controlplane.podSecurityContext.runAsUser | int | `10001` | Runs all processes within a pod with a special uid | +| controlplane.podSecurityContext.seccompProfile.type | string | `"RuntimeDefault"` | Restrict a Container's Syscalls with seccomp | +| controlplane.readinessProbe.enabled | bool | `true` | Whether to enable kubernetes [readiness-probes](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/) | +| controlplane.readinessProbe.failureThreshold | int | `6` | when a probe fails kubernetes will try 6 times before giving up | +| controlplane.readinessProbe.initialDelaySeconds | int | `30` | seconds to wait before performing the first readiness check | +| controlplane.readinessProbe.periodSeconds | int | `10` | this fields specifies that kubernetes should perform a readiness check every 10 seconds | +| controlplane.readinessProbe.successThreshold | int | `1` | number of consecutive successes for the probe to be considered successful after having failed | +| controlplane.readinessProbe.timeoutSeconds | int | `5` | number of seconds after which the probe times out | +| controlplane.replicaCount | int | `1` | | +| controlplane.resources | object | `{}` | [resource management](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) for the container | +| controlplane.securityContext.allowPrivilegeEscalation | bool | `false` | Controls [Privilege Escalation](https://kubernetes.io/docs/concepts/security/pod-security-policy/#privilege-escalation) enabling setuid binaries changing the effective user ID | +| controlplane.securityContext.capabilities.add | list | `[]` | Specifies which capabilities to add to issue specialized syscalls | +| controlplane.securityContext.capabilities.drop | list | `["ALL"]` | Specifies which capabilities to drop to reduce syscall attack surface | +| controlplane.securityContext.readOnlyRootFilesystem | bool | `true` | Whether the root filesystem is mounted in read-only mode | +| controlplane.securityContext.runAsNonRoot | bool | `true` | Requires the container to run without root privileges | +| controlplane.securityContext.runAsUser | int | `10001` | The container's process will run with the specified uid | +| controlplane.service.annotations | object | `{}` | | +| controlplane.service.type | string | `"ClusterIP"` | [Service type](https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types) to expose the running application on a set of Pods as a network service. | +| controlplane.ssi.miw.authorityId | string | `""` | The BPN of the issuer authority | +| controlplane.ssi.miw.url | string | `""` | MIW URL | +| controlplane.ssi.oauth.client.id | string | `""` | The client ID for KeyCloak | +| controlplane.ssi.oauth.client.secretAlias | string | `"client-secret"` | The alias under which the client secret is stored in the vault. | +| controlplane.ssi.oauth.tokenurl | string | `""` | The URL (of KeyCloak), where access tokens can be obtained | +| controlplane.tolerations | list | `[]` | | +| controlplane.url.protocol | string | `""` | Explicitly declared url for reaching the dsp api (e.g. if ingresses not used) | +| controlplane.volumeMounts | list | `[]` | declare where to mount [volumes](https://kubernetes.io/docs/concepts/storage/volumes/) into the container | +| controlplane.volumes | list | `[]` | [volume](https://kubernetes.io/docs/concepts/storage/volumes/) directories | +| customLabels | object | `{}` | To add some custom labels | +| dataplane.affinity | object | `{}` | | +| dataplane.autoscaling.enabled | bool | `false` | Enables [horizontal pod autoscaling](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/) | +| dataplane.autoscaling.maxReplicas | int | `100` | Maximum replicas if resource consumption exceeds resource threshholds | +| dataplane.autoscaling.minReplicas | int | `1` | Minimal replicas if resource consumption falls below resource threshholds | +| dataplane.autoscaling.targetCPUUtilizationPercentage | int | `80` | targetAverageUtilization of cpu provided to a pod | +| dataplane.autoscaling.targetMemoryUtilizationPercentage | int | `80` | targetAverageUtilization of memory provided to a pod | +| dataplane.aws.accessKeyId | string | `""` | | +| dataplane.aws.endpointOverride | string | `""` | | +| dataplane.aws.secretAccessKey | string | `""` | | +| dataplane.debug.enabled | bool | `false` | | +| dataplane.debug.port | int | `1044` | | +| dataplane.debug.suspendOnStart | bool | `false` | | +| dataplane.endpoints.control.path | string | `"/api/dataplane/control"` | | +| dataplane.endpoints.control.port | int | `8083` | | +| dataplane.endpoints.default.path | string | `"/api"` | | +| dataplane.endpoints.default.port | int | `8080` | | +| dataplane.endpoints.metrics.path | string | `"/metrics"` | | +| dataplane.endpoints.metrics.port | int | `9090` | | +| dataplane.endpoints.proxy.path | string | `"/proxy"` | | +| dataplane.endpoints.proxy.port | int | `8186` | | +| dataplane.endpoints.public.path | string | `"/api/public"` | | +| dataplane.endpoints.public.port | int | `8081` | | +| dataplane.env | object | `{}` | | +| dataplane.envConfigMapNames | list | `[]` | | +| dataplane.envSecretNames | list | `[]` | | +| dataplane.envValueFrom | object | `{}` | | +| dataplane.image.pullPolicy | string | `"IfNotPresent"` | [Kubernetes image pull policy](https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy) to use | +| dataplane.image.repository | string | `""` | Which derivate of the data plane to use. when left empty the deployment will select the correct image automatically | +| dataplane.image.tag | string | `""` | Overrides the image tag whose default is the chart appVersion | +| dataplane.ingresses[0].annotations | object | `{}` | Additional ingress annotations to add | +| dataplane.ingresses[0].certManager.clusterIssuer | string | `""` | If preset enables certificate generation via cert-manager cluster-wide issuer | +| dataplane.ingresses[0].certManager.issuer | string | `""` | If preset enables certificate generation via cert-manager namespace scoped issuer | +| dataplane.ingresses[0].className | string | `""` | Defines the [ingress class](https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-class) to use | +| dataplane.ingresses[0].enabled | bool | `false` | | +| dataplane.ingresses[0].endpoints | list | `["public"]` | EDC endpoints exposed by this ingress resource | +| dataplane.ingresses[0].hostname | string | `"edc-data.local"` | The hostname to be used to precisely map incoming traffic onto the underlying network service | +| dataplane.ingresses[0].tls | object | `{"enabled":false,"secretName":""}` | TLS [tls class](https://kubernetes.io/docs/concepts/services-networking/ingress/#tls) applied to the ingress resource | +| dataplane.ingresses[0].tls.enabled | bool | `false` | Enables TLS on the ingress resource | +| dataplane.ingresses[0].tls.secretName | string | `""` | If present overwrites the default secret name | +| dataplane.initContainers | list | `[]` | | +| dataplane.livenessProbe.enabled | bool | `true` | Whether to enable kubernetes [liveness-probe](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/) | +| dataplane.livenessProbe.failureThreshold | int | `6` | when a probe fails kubernetes will try 6 times before giving up | +| dataplane.livenessProbe.initialDelaySeconds | int | `30` | seconds to wait before performing the first liveness check | +| dataplane.livenessProbe.periodSeconds | int | `10` | this fields specifies that kubernetes should perform a liveness check every 10 seconds | +| dataplane.livenessProbe.successThreshold | int | `1` | number of consecutive successes for the probe to be considered successful after having failed | +| dataplane.livenessProbe.timeoutSeconds | int | `5` | number of seconds after which the probe times out | +| dataplane.logging | string | `".level=INFO\norg.eclipse.edc.level=ALL\nhandlers=java.util.logging.ConsoleHandler\njava.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter\njava.util.logging.ConsoleHandler.level=ALL\njava.util.logging.SimpleFormatter.format=[%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS] [%4$-7s] %5$s%6$s%n"` | configuration of the [Java Util Logging Facade](https://docs.oracle.com/javase/7/docs/technotes/guides/logging/overview.html) | +| dataplane.nodeSelector | object | `{}` | | +| dataplane.opentelemetry | string | `"otel.javaagent.enabled=false\notel.javaagent.debug=false"` | configuration of the [Open Telemetry Agent](https://opentelemetry.io/docs/instrumentation/java/automatic/agent-config/) to collect and expose metrics | +| dataplane.podAnnotations | object | `{}` | additional annotations for the pod | +| dataplane.podLabels | object | `{}` | additional labels for the pod | +| dataplane.podSecurityContext | object | `{"fsGroup":10001,"runAsGroup":10001,"runAsUser":10001,"seccompProfile":{"type":"RuntimeDefault"}}` | The [pod security context](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod) defines privilege and access control settings for a Pod within the deployment | +| dataplane.podSecurityContext.fsGroup | int | `10001` | The owner for volumes and any files created within volumes will belong to this guid | +| dataplane.podSecurityContext.runAsGroup | int | `10001` | Processes within a pod will belong to this guid | +| dataplane.podSecurityContext.runAsUser | int | `10001` | Runs all processes within a pod with a special uid | +| dataplane.podSecurityContext.seccompProfile.type | string | `"RuntimeDefault"` | Restrict a Container's Syscalls with seccomp | +| dataplane.readinessProbe.enabled | bool | `true` | Whether to enable kubernetes [readiness-probes](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/) | +| dataplane.readinessProbe.failureThreshold | int | `6` | when a probe fails kubernetes will try 6 times before giving up | +| dataplane.readinessProbe.initialDelaySeconds | int | `30` | seconds to wait before performing the first readiness check | +| dataplane.readinessProbe.periodSeconds | int | `10` | this fields specifies that kubernetes should perform a liveness check every 10 seconds | +| dataplane.readinessProbe.successThreshold | int | `1` | number of consecutive successes for the probe to be considered successful after having failed | +| dataplane.readinessProbe.timeoutSeconds | int | `5` | number of seconds after which the probe times out | +| dataplane.replicaCount | int | `1` | | +| dataplane.resources | object | `{}` | [resource management](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) for the container | +| dataplane.securityContext.allowPrivilegeEscalation | bool | `false` | Controls [Privilege Escalation](https://kubernetes.io/docs/concepts/security/pod-security-policy/#privilege-escalation) enabling setuid binaries changing the effective user ID | +| dataplane.securityContext.capabilities.add | list | `[]` | Specifies which capabilities to add to issue specialized syscalls | +| dataplane.securityContext.capabilities.drop | list | `["ALL"]` | Specifies which capabilities to drop to reduce syscall attack surface | +| dataplane.securityContext.readOnlyRootFilesystem | bool | `true` | Whether the root filesystem is mounted in read-only mode | +| dataplane.securityContext.runAsNonRoot | bool | `true` | Requires the container to run without root privileges | +| dataplane.securityContext.runAsUser | int | `10001` | The container's process will run with the specified uid | +| dataplane.service.port | int | `80` | | +| dataplane.service.type | string | `"ClusterIP"` | [Service type](https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types) to expose the running application on a set of Pods as a network service. | +| dataplane.tolerations | list | `[]` | | +| dataplane.url.public | string | `""` | Explicitly declared url for reaching the public api (e.g. if ingresses not used) | +| dataplane.volumeMounts | list | `[]` | declare where to mount [volumes](https://kubernetes.io/docs/concepts/storage/volumes/) into the container | +| dataplane.volumes | list | `[]` | [volume](https://kubernetes.io/docs/concepts/storage/volumes/) directories | +| fullnameOverride | string | `""` | | +| imagePullSecrets | list | `[]` | Existing image pull secret to use to [obtain the container image from private registries](https://kubernetes.io/docs/concepts/containers/images/#using-a-private-registry) | +| install.postgresql | bool | `true` | | +| nameOverride | string | `""` | | +| participant.id | string | `""` | BPN Number | +| postgresql.auth.database | string | `"edc"` | | +| postgresql.auth.password | string | `"password"` | | +| postgresql.auth.username | string | `"user"` | | +| postgresql.enabled | bool | `false` | | +| postgresql.jdbcUrl | string | `"jdbc:postgresql://{{ .Release.Name }}-postgresql:5432/edc"` | | +| postgresql.primary.persistence | string | `nil` | | +| postgresql.readReplicas.persistence.enabled | bool | `false` | | +| serviceAccount.annotations | object | `{}` | | +| serviceAccount.create | bool | `true` | | +| serviceAccount.imagePullSecrets | list | `[]` | Existing image pull secret bound to the service account to use to [obtain the container image from private registries](https://kubernetes.io/docs/concepts/containers/images/#using-a-private-registry) | +| serviceAccount.name | string | `""` | | +| tests | object | `{"hookDeletePolicy":"before-hook-creation,hook-succeeded"}` | Configurations for Helm tests | +| tests.hookDeletePolicy | string | `"before-hook-creation,hook-succeeded"` | Configure the hook-delete-policy for Helm tests | +| vault.azure.certificate | string | `nil` | | +| vault.azure.client | string | `""` | | +| vault.azure.name | string | `""` | | +| vault.azure.secret | string | `nil` | | +| vault.azure.tenant | string | `""` | | +| vault.secretNames.transferProxyTokenEncryptionAesKey | string | `"transfer-proxy-token-encryption-aes-key"` | | +| vault.secretNames.transferProxyTokenSignerPrivateKey | string | `nil` | | +| vault.secretNames.transferProxyTokenSignerPublicKey | string | `nil` | | + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.10.0](https://github.com/norwoodj/helm-docs/releases/v1.10.0) diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/charts/tractusx-connector-memory/README.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/charts/tractusx-connector-memory/README.md new file mode 100644 index 00000000000..397f107ac59 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/charts/tractusx-connector-memory/README.md @@ -0,0 +1,178 @@ +# tractusx-connector-memory + +![Version: 0.5.0](https://img.shields.io/badge/Version-0.5.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.5.0](https://img.shields.io/badge/AppVersion-0.5.0-informational?style=flat-square) + +A Helm chart for Tractus-X Eclipse Data Space Connector based on memory. Please only use this for development or testing purposes, never in production workloads! + +**Homepage:** + +## Setting up SSI + +### Preconditions + +- the [Managed Identity Walled (MIW)](https://github.com/catenax-ng/tx-managed-identity-wallets) must be running and reachable via network +- the necessary set of VerifiableCredentials for this participant must be pushed to MIW. This is typically done by the + Portal during participant onboarding +- KeyCloak must be running and reachable via network +- an account with KeyCloak must be created for this BPN and the connector must be able to obtain access tokens +- the client ID and client secret corresponding to that account must be known + +### Preparatory work + +- store your KeyCloak client secret in the HashiCorp vault. The exact procedure will depend on your deployment of HashiCorp Vault and + is out of scope of this document. But by default, Tractus-X EDC expects to find the secret under `secret/client-secret`. + +### Configure the chart + +Be sure to provide the following configuration entries to your Tractus-X EDC Helm chart: + +- `runtime.ssi.miw.url`: the URL +- `runtime.ssi.miw.authorityId`: the BPN of the issuer authority +- `runtime.ssi.oauth.tokenurl`: the URL (of KeyCloak), where access tokens can be obtained +- `runtime.ssi.oauth.client.id`: client ID for KeyCloak +- `runtime.ssi.oauth.client.secretAlias`: the alias under which the client secret is stored in the vault. Defaults to `client-secret`. + +### Launching the application + +As an easy starting point, please consider using [this example configuration](https://github.com/eclipse-tractusx/tractusx-edc/blob/main/edc-tests/deployment/src/main/resources/helm/tractusx-connector-test.yaml) +to launch the application. The configuration values mentioned above (`controlplane.ssi.*`) will have to be adapted manually. +Combined, run this shell command to start the in-memory Tractus-X EDC runtime: + +```shell +helm repo add tractusx-edc https://eclipse-tractusx.github.io/charts/dev +helm install my-release tractusx-edc/tractusx-connector-memory --version 0.5.0 \ + -f /tractusx-connector-memory-test.yaml \ + --set vault.secrets="client-secret:$YOUR_CLIENT_SECRET" +``` + +## Source Code + +- + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| backendService.httpProxyTokenReceiverUrl | string | `""` | | +| customLabels | object | `{}` | To add some custom labels | +| daps.clientId | string | `""` | | +| daps.connectors[0].attributes.referringConnector | string | `"http://sokrates-controlplane/BPNSOKRATES"` | | +| daps.connectors[0].certificate | string | `""` | | +| daps.connectors[0].id | string | `"E7:07:2D:74:56:66:31:F0:7B:10:EA:B6:03:06:4C:23:7F:ED:A6:65:keyid:E7:07:2D:74:56:66:31:F0:7B:10:EA:B6:03:06:4C:23:7F:ED:A6:65"` | | +| daps.connectors[0].name | string | `"sokrates"` | | +| daps.paths.jwks | string | `"/jwks.json"` | | +| daps.paths.token | string | `"/token"` | | +| daps.url | string | `"http://{{ .Release.Name }}-daps:4567"` | | +| fullnameOverride | string | `""` | | +| imagePullSecrets | list | `[]` | Existing image pull secret to use to [obtain the container image from private registries](https://kubernetes.io/docs/concepts/containers/images/#using-a-private-registry) | +| nameOverride | string | `""` | | +| participant.id | string | `""` | BPN Number | +| runtime.affinity | object | `{}` | | +| runtime.autoscaling.enabled | bool | `false` | Enables [horizontal pod autoscaling](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/) | +| runtime.autoscaling.maxReplicas | int | `100` | Maximum replicas if resource consumption exceeds resource threshholds | +| runtime.autoscaling.minReplicas | int | `1` | Minimal replicas if resource consumption falls below resource threshholds | +| runtime.autoscaling.targetCPUUtilizationPercentage | int | `80` | targetAverageUtilization of cpu provided to a pod | +| runtime.autoscaling.targetMemoryUtilizationPercentage | int | `80` | targetAverageUtilization of memory provided to a pod | +| runtime.businessPartnerValidation.log.agreementValidation | bool | `true` | | +| runtime.debug.enabled | bool | `false` | | +| runtime.debug.port | int | `1044` | | +| runtime.debug.suspendOnStart | bool | `false` | | +| runtime.endpoints | object | `{"control":{"path":"/control","port":8083},"default":{"path":"/api","port":8080},"management":{"authKey":"","path":"/management","port":8081},"protocol":{"path":"/api/v1/dsp","port":8084},"proxy":{"path":"/proxy","port":8186},"public":{"path":"/api/public","port":8086},"validation":{"path":"/validation","port":8082}}` | endpoints of the control plane | +| runtime.endpoints.control | object | `{"path":"/control","port":8083}` | control api, used for internal control calls. can be added to the internal ingress, but should probably not | +| runtime.endpoints.control.path | string | `"/control"` | path for incoming api calls | +| runtime.endpoints.control.port | int | `8083` | port for incoming api calls | +| runtime.endpoints.default | object | `{"path":"/api","port":8080}` | default api for health checks, should not be added to any ingress | +| runtime.endpoints.default.path | string | `"/api"` | path for incoming api calls | +| runtime.endpoints.default.port | int | `8080` | port for incoming api calls | +| runtime.endpoints.management | object | `{"authKey":"","path":"/management","port":8081}` | data management api, used by internal users, can be added to an ingress and must not be internet facing | +| runtime.endpoints.management.authKey | string | `""` | authentication key, must be attached to each 'X-Api-Key' request header | +| runtime.endpoints.management.path | string | `"/management"` | path for incoming api calls | +| runtime.endpoints.management.port | int | `8081` | port for incoming api calls | +| runtime.endpoints.protocol | object | `{"path":"/api/v1/dsp","port":8084}` | dsp api, used for inter connector communication and must be internet facing | +| runtime.endpoints.protocol.path | string | `"/api/v1/dsp"` | path for incoming api calls | +| runtime.endpoints.protocol.port | int | `8084` | port for incoming api calls | +| runtime.endpoints.validation | object | `{"path":"/validation","port":8082}` | validation api, only used by the data plane and should not be added to any ingress | +| runtime.endpoints.validation.path | string | `"/validation"` | path for incoming api calls | +| runtime.endpoints.validation.port | int | `8082` | port for incoming api calls | +| runtime.env | object | `{}` | | +| runtime.envConfigMapNames | list | `[]` | | +| runtime.envSecretNames | list | `[]` | | +| runtime.envValueFrom | object | `{}` | | +| runtime.image.pullPolicy | string | `"IfNotPresent"` | [Kubernetes image pull policy](https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy) to use | +| runtime.image.repository | string | `""` | | +| runtime.image.tag | string | `""` | Overrides the image tag whose default is the chart appVersion | +| runtime.ingresses[0].annotations | object | `{}` | Additional ingress annotations to add | +| runtime.ingresses[0].certManager.clusterIssuer | string | `""` | If preset enables certificate generation via cert-manager cluster-wide issuer | +| runtime.ingresses[0].certManager.issuer | string | `""` | If preset enables certificate generation via cert-manager namespace scoped issuer | +| runtime.ingresses[0].className | string | `""` | Defines the [ingress class](https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-class) to use | +| runtime.ingresses[0].enabled | bool | `false` | | +| runtime.ingresses[0].endpoints | list | `["protocol"]` | EDC endpoints exposed by this ingress resource | +| runtime.ingresses[0].hostname | string | `"edc-control.local"` | The hostname to be used to precisely map incoming traffic onto the underlying network service | +| runtime.ingresses[0].tls | object | `{"enabled":false,"secretName":""}` | TLS [tls class](https://kubernetes.io/docs/concepts/services-networking/ingress/#tls) applied to the ingress resource | +| runtime.ingresses[0].tls.enabled | bool | `false` | Enables TLS on the ingress resource | +| runtime.ingresses[0].tls.secretName | string | `""` | If present overwrites the default secret name | +| runtime.ingresses[1].annotations | object | `{}` | Additional ingress annotations to add | +| runtime.ingresses[1].certManager.clusterIssuer | string | `""` | If preset enables certificate generation via cert-manager cluster-wide issuer | +| runtime.ingresses[1].certManager.issuer | string | `""` | If preset enables certificate generation via cert-manager namespace scoped issuer | +| runtime.ingresses[1].className | string | `""` | Defines the [ingress class](https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-class) to use | +| runtime.ingresses[1].enabled | bool | `false` | | +| runtime.ingresses[1].endpoints | list | `["management","control"]` | EDC endpoints exposed by this ingress resource | +| runtime.ingresses[1].hostname | string | `"edc-control.intranet"` | The hostname to be used to precisely map incoming traffic onto the underlying network service | +| runtime.ingresses[1].tls | object | `{"enabled":false,"secretName":""}` | TLS [tls class](https://kubernetes.io/docs/concepts/services-networking/ingress/#tls) applied to the ingress resource | +| runtime.ingresses[1].tls.enabled | bool | `false` | Enables TLS on the ingress resource | +| runtime.ingresses[1].tls.secretName | string | `""` | If present overwrites the default secret name | +| runtime.initContainers | list | `[]` | | +| runtime.livenessProbe.enabled | bool | `true` | Whether to enable kubernetes [liveness-probe](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/) | +| runtime.livenessProbe.failureThreshold | int | `6` | when a probe fails kubernetes will try 6 times before giving up | +| runtime.livenessProbe.initialDelaySeconds | int | `30` | seconds to wait before performing the first liveness check | +| runtime.livenessProbe.periodSeconds | int | `10` | this fields specifies that kubernetes should perform a liveness check every 10 seconds | +| runtime.livenessProbe.successThreshold | int | `1` | number of consecutive successes for the probe to be considered successful after having failed | +| runtime.livenessProbe.timeoutSeconds | int | `5` | number of seconds after which the probe times out | +| runtime.logging | string | `".level=INFO\norg.eclipse.edc.level=ALL\nhandlers=java.util.logging.ConsoleHandler\njava.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter\njava.util.logging.ConsoleHandler.level=ALL\njava.util.logging.SimpleFormatter.format=[%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS] [%4$-7s] %5$s%6$s%n"` | configuration of the [Java Util Logging Facade](https://docs.oracle.com/javase/7/docs/technotes/guides/logging/overview.html) | +| runtime.nodeSelector | object | `{}` | | +| runtime.podAnnotations | object | `{}` | additional annotations for the pod | +| runtime.podLabels | object | `{}` | additional labels for the pod | +| runtime.podSecurityContext | object | `{"fsGroup":10001,"runAsGroup":10001,"runAsUser":10001,"seccompProfile":{"type":"RuntimeDefault"}}` | The [pod security context](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod) defines privilege and access control settings for a Pod within the deployment | +| runtime.podSecurityContext.fsGroup | int | `10001` | The owner for volumes and any files created within volumes will belong to this guid | +| runtime.podSecurityContext.runAsGroup | int | `10001` | Processes within a pod will belong to this guid | +| runtime.podSecurityContext.runAsUser | int | `10001` | Runs all processes within a pod with a special uid | +| runtime.podSecurityContext.seccompProfile.type | string | `"RuntimeDefault"` | Restrict a Container's Syscalls with seccomp | +| runtime.readinessProbe.enabled | bool | `true` | Whether to enable kubernetes [readiness-probes](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/) | +| runtime.readinessProbe.failureThreshold | int | `6` | when a probe fails kubernetes will try 6 times before giving up | +| runtime.readinessProbe.initialDelaySeconds | int | `30` | seconds to wait before performing the first readiness check | +| runtime.readinessProbe.periodSeconds | int | `10` | this fields specifies that kubernetes should perform a readiness check every 10 seconds | +| runtime.readinessProbe.successThreshold | int | `1` | number of consecutive successes for the probe to be considered successful after having failed | +| runtime.readinessProbe.timeoutSeconds | int | `5` | number of seconds after which the probe times out | +| runtime.replicaCount | int | `1` | | +| runtime.resources | object | `{}` | [resource management](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) for the container | +| runtime.securityContext.allowPrivilegeEscalation | bool | `false` | Controls [Privilege Escalation](https://kubernetes.io/docs/concepts/security/pod-security-policy/#privilege-escalation) enabling setuid binaries changing the effective user ID | +| runtime.securityContext.capabilities.add | list | `[]` | Specifies which capabilities to add to issue specialized syscalls | +| runtime.securityContext.capabilities.drop | list | `["ALL"]` | Specifies which capabilities to drop to reduce syscall attack surface | +| runtime.securityContext.readOnlyRootFilesystem | bool | `true` | Whether the root filesystem is mounted in read-only mode | +| runtime.securityContext.runAsNonRoot | bool | `true` | Requires the container to run without root privileges | +| runtime.securityContext.runAsUser | int | `10001` | The container's process will run with the specified uid | +| runtime.service.annotations | object | `{}` | | +| runtime.service.type | string | `"ClusterIP"` | [Service type](https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types) to expose the running application on a set of Pods as a network service. | +| runtime.ssi.miw.authorityId | string | `""` | The BPN of the issuer authority | +| runtime.ssi.miw.url | string | `""` | MIW URL | +| runtime.ssi.oauth.client.id | string | `""` | The client ID for KeyCloak | +| runtime.ssi.oauth.client.secretAlias | string | `"client-secret"` | The alias under which the client secret is stored in the vault. | +| runtime.ssi.oauth.tokenurl | string | `""` | The URL (of KeyCloak), where access tokens can be obtained | +| runtime.tolerations | list | `[]` | | +| runtime.url.protocol | string | `""` | Explicitly declared url for reaching the dsp api (e.g. if ingresses not used) | +| runtime.url.public | string | `""` | | +| runtime.url.readiness | string | `""` | | +| runtime.volumeMounts | list | `[]` | declare where to mount [volumes](https://kubernetes.io/docs/concepts/storage/volumes/) into the container | +| runtime.volumes | list | `[]` | [volume](https://kubernetes.io/docs/concepts/storage/volumes/) directories | +| serviceAccount.annotations | object | `{}` | | +| serviceAccount.create | bool | `true` | | +| serviceAccount.imagePullSecrets | list | `[]` | Existing image pull secret bound to the service account to use to [obtain the container image from private registries](https://kubernetes.io/docs/concepts/containers/images/#using-a-private-registry) | +| serviceAccount.name | string | `""` | | +| tests | object | `{"hookDeletePolicy":"before-hook-creation,hook-succeeded"}` | Configurations for Helm tests | +| tests.hookDeletePolicy | string | `"before-hook-creation,hook-succeeded"` | Configure the hook-delete-policy for Helm tests | +| vault.secretNames.transferProxyTokenEncryptionAesKey | string | `"transfer-proxy-token-encryption-aes-key"` | | +| vault.secrets | string | `""` | | +| vault.server.postStart | string | `""` | | + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.10.0](https://github.com/norwoodj/helm-docs/releases/v1.10.0) diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/charts/tractusx-connector/README.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/charts/tractusx-connector/README.md new file mode 100644 index 00000000000..0f088ad942d --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/charts/tractusx-connector/README.md @@ -0,0 +1,278 @@ +# tractusx-connector + +![Version: 0.5.0](https://img.shields.io/badge/Version-0.5.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.5.0](https://img.shields.io/badge/AppVersion-0.5.0-informational?style=flat-square) + +A Helm chart for Tractus-X Eclipse Data Space Connector. The connector deployment consists of two runtime consists of a +Control Plane and a Data Plane. Note that _no_ external dependencies such as a PostgreSQL database and HashiCorp Vault are included. + +This chart is intended for use with an _existing_ PostgreSQL database and an _existing_ HashiCorp Vault. + +**Homepage:** + +## Setting up SSI + +### Preconditions + +- the [Managed Identity Walled (MIW)](https://github.com/catenax-ng/tx-managed-identity-wallets) must be running and reachable via network +- the necessary set of VerifiableCredentials for this participant must be pushed to MIW. This is typically done by the + Portal during participant onboarding +- KeyCloak must be running and reachable via network +- an account with KeyCloak must be created for this BPN and the connector must be able to obtain access tokens +- the client ID and client secret corresponding to that account must be known + +### Preparatory work + +- store your KeyCloak client secret in the HashiCorp vault. The exact procedure will depend on your deployment of HashiCorp Vault and + is out of scope of this document. But by default, Tractus-X EDC expects to find the secret under `secret/client-secret`. + +### Configure the chart + +Be sure to provide the following configuration entries to your Tractus-X EDC Helm chart: + +- `controlplane.ssi.miw.url`: the URL +- `controlplane.ssi.miw.authorityId`: the BPN of the issuer authority +- `controlplane.ssi.oauth.tokenurl`: the URL (of KeyCloak), where access tokens can be obtained +- `controlplane.ssi.oauth.client.id`: client ID for KeyCloak +- `controlplane.ssi.oauth.client.secretAlias`: the alias under which the client secret is stored in the vault. Defaults to `client-secret`. + +### Launching the application + +As an easy starting point, please consider using [this example configuration](https://github.com/eclipse-tractusx/tractusx-edc/blob/main/edc-tests/deployment/src/main/resources/helm/tractusx-connector-test.yaml) +to launch the application. The configuration values mentioned above (`controlplane.ssi.*`) will have to be adapted manually. +Combined, run this shell command to start the in-memory Tractus-X EDC runtime: + +```shell +helm repo add tractusx-edc https://eclipse-tractusx.github.io/charts/dev +helm install my-release tractusx-edc/tractusx-connector --version 0.5.0 \ + -f /tractusx-connector-test.yaml +``` + +## Source Code + +- + +## Requirements + +| Repository | Name | Version | +|------------|------|---------| +| | postgresql(postgresql) | 12.1.6 | +| | vault(vault) | 0.20.0 | + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| backendService.httpProxyTokenReceiverUrl | string | `""` | | +| controlplane.affinity | object | `{}` | | +| controlplane.autoscaling.enabled | bool | `false` | Enables [horizontal pod autoscaling](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/) | +| controlplane.autoscaling.maxReplicas | int | `100` | Maximum replicas if resource consumption exceeds resource threshholds | +| controlplane.autoscaling.minReplicas | int | `1` | Minimal replicas if resource consumption falls below resource threshholds | +| controlplane.autoscaling.targetCPUUtilizationPercentage | int | `80` | targetAverageUtilization of cpu provided to a pod | +| controlplane.autoscaling.targetMemoryUtilizationPercentage | int | `80` | targetAverageUtilization of memory provided to a pod | +| controlplane.businessPartnerValidation.log.agreementValidation | bool | `true` | | +| controlplane.debug.enabled | bool | `false` | | +| controlplane.debug.port | int | `1044` | | +| controlplane.debug.suspendOnStart | bool | `false` | | +| controlplane.endpoints | object | `{"control":{"path":"/control","port":8083},"default":{"path":"/api","port":8080},"management":{"authKey":"","path":"/management","port":8081},"metrics":{"path":"/metrics","port":9090},"protocol":{"path":"/api/v1/dsp","port":8084}}` | endpoints of the control plane | +| controlplane.endpoints.control | object | `{"path":"/control","port":8083}` | control api, used for internal control calls. can be added to the internal ingress, but should probably not | +| controlplane.endpoints.control.path | string | `"/control"` | path for incoming api calls | +| controlplane.endpoints.control.port | int | `8083` | port for incoming api calls | +| controlplane.endpoints.default | object | `{"path":"/api","port":8080}` | default api for health checks, should not be added to any ingress | +| controlplane.endpoints.default.path | string | `"/api"` | path for incoming api calls | +| controlplane.endpoints.default.port | int | `8080` | port for incoming api calls | +| controlplane.endpoints.management | object | `{"authKey":"","path":"/management","port":8081}` | data management api, used by internal users, can be added to an ingress and must not be internet facing | +| controlplane.endpoints.management.authKey | string | `""` | authentication key, must be attached to each 'X-Api-Key' request header | +| controlplane.endpoints.management.path | string | `"/management"` | path for incoming api calls | +| controlplane.endpoints.management.port | int | `8081` | port for incoming api calls | +| controlplane.endpoints.metrics | object | `{"path":"/metrics","port":9090}` | metrics api, used for application metrics, must not be internet facing | +| controlplane.endpoints.metrics.path | string | `"/metrics"` | path for incoming api calls | +| controlplane.endpoints.metrics.port | int | `9090` | port for incoming api calls | +| controlplane.endpoints.protocol | object | `{"path":"/api/v1/dsp","port":8084}` | dsp api, used for inter connector communication and must be internet facing | +| controlplane.endpoints.protocol.path | string | `"/api/v1/dsp"` | path for incoming api calls | +| controlplane.endpoints.protocol.port | int | `8084` | port for incoming api calls | +| controlplane.env | object | `{}` | | +| controlplane.envConfigMapNames | list | `[]` | | +| controlplane.envSecretNames | list | `[]` | | +| controlplane.envValueFrom | object | `{}` | | +| controlplane.image.pullPolicy | string | `"IfNotPresent"` | [Kubernetes image pull policy](https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy) to use | +| controlplane.image.repository | string | `""` | Which derivate of the control plane to use. when left empty the deployment will select the correct image automatically | +| controlplane.image.tag | string | `""` | Overrides the image tag whose default is the chart appVersion | +| controlplane.ingresses[0].annotations | object | `{}` | Additional ingress annotations to add | +| controlplane.ingresses[0].certManager.clusterIssuer | string | `""` | If preset enables certificate generation via cert-manager cluster-wide issuer | +| controlplane.ingresses[0].certManager.issuer | string | `""` | If preset enables certificate generation via cert-manager namespace scoped issuer | +| controlplane.ingresses[0].className | string | `""` | Defines the [ingress class](https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-class) to use | +| controlplane.ingresses[0].enabled | bool | `false` | | +| controlplane.ingresses[0].endpoints | list | `["protocol"]` | EDC endpoints exposed by this ingress resource | +| controlplane.ingresses[0].hostname | string | `"edc-control.local"` | The hostname to be used to precisely map incoming traffic onto the underlying network service | +| controlplane.ingresses[0].tls | object | `{"enabled":false,"secretName":""}` | TLS [tls class](https://kubernetes.io/docs/concepts/services-networking/ingress/#tls) applied to the ingress resource | +| controlplane.ingresses[0].tls.enabled | bool | `false` | Enables TLS on the ingress resource | +| controlplane.ingresses[0].tls.secretName | string | `""` | If present overwrites the default secret name | +| controlplane.ingresses[1].annotations | object | `{}` | Additional ingress annotations to add | +| controlplane.ingresses[1].certManager.clusterIssuer | string | `""` | If preset enables certificate generation via cert-manager cluster-wide issuer | +| controlplane.ingresses[1].certManager.issuer | string | `""` | If preset enables certificate generation via cert-manager namespace scoped issuer | +| controlplane.ingresses[1].className | string | `""` | Defines the [ingress class](https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-class) to use | +| controlplane.ingresses[1].enabled | bool | `false` | | +| controlplane.ingresses[1].endpoints | list | `["management","control"]` | EDC endpoints exposed by this ingress resource | +| controlplane.ingresses[1].hostname | string | `"edc-control.intranet"` | The hostname to be used to precisely map incoming traffic onto the underlying network service | +| controlplane.ingresses[1].tls | object | `{"enabled":false,"secretName":""}` | TLS [tls class](https://kubernetes.io/docs/concepts/services-networking/ingress/#tls) applied to the ingress resource | +| controlplane.ingresses[1].tls.enabled | bool | `false` | Enables TLS on the ingress resource | +| controlplane.ingresses[1].tls.secretName | string | `""` | If present overwrites the default secret name | +| controlplane.initContainers | list | `[]` | | +| controlplane.livenessProbe.enabled | bool | `true` | Whether to enable kubernetes [liveness-probe](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/) | +| controlplane.livenessProbe.failureThreshold | int | `6` | when a probe fails kubernetes will try 6 times before giving up | +| controlplane.livenessProbe.initialDelaySeconds | int | `30` | seconds to wait before performing the first liveness check | +| controlplane.livenessProbe.periodSeconds | int | `10` | this fields specifies that kubernetes should perform a liveness check every 10 seconds | +| controlplane.livenessProbe.successThreshold | int | `1` | number of consecutive successes for the probe to be considered successful after having failed | +| controlplane.livenessProbe.timeoutSeconds | int | `5` | number of seconds after which the probe times out | +| controlplane.logging | string | `".level=INFO\norg.eclipse.edc.level=ALL\nhandlers=java.util.logging.ConsoleHandler\njava.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter\njava.util.logging.ConsoleHandler.level=ALL\njava.util.logging.SimpleFormatter.format=[%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS] [%4$-7s] %5$s%6$s%n"` | configuration of the [Java Util Logging Facade](https://docs.oracle.com/javase/7/docs/technotes/guides/logging/overview.html) | +| controlplane.nodeSelector | object | `{}` | | +| controlplane.opentelemetry | string | `"otel.javaagent.enabled=false\notel.javaagent.debug=false"` | configuration of the [Open Telemetry Agent](https://opentelemetry.io/docs/instrumentation/java/automatic/agent-config/) to collect and expose metrics | +| controlplane.podAnnotations | object | `{}` | additional annotations for the pod | +| controlplane.podLabels | object | `{}` | additional labels for the pod | +| controlplane.podSecurityContext | object | `{"fsGroup":10001,"runAsGroup":10001,"runAsUser":10001,"seccompProfile":{"type":"RuntimeDefault"}}` | The [pod security context](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod) defines privilege and access control settings for a Pod within the deployment | +| controlplane.podSecurityContext.fsGroup | int | `10001` | The owner for volumes and any files created within volumes will belong to this guid | +| controlplane.podSecurityContext.runAsGroup | int | `10001` | Processes within a pod will belong to this guid | +| controlplane.podSecurityContext.runAsUser | int | `10001` | Runs all processes within a pod with a special uid | +| controlplane.podSecurityContext.seccompProfile.type | string | `"RuntimeDefault"` | Restrict a Container's Syscalls with seccomp | +| controlplane.readinessProbe.enabled | bool | `true` | Whether to enable kubernetes [readiness-probes](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/) | +| controlplane.readinessProbe.failureThreshold | int | `6` | when a probe fails kubernetes will try 6 times before giving up | +| controlplane.readinessProbe.initialDelaySeconds | int | `30` | seconds to wait before performing the first readiness check | +| controlplane.readinessProbe.periodSeconds | int | `10` | this fields specifies that kubernetes should perform a readiness check every 10 seconds | +| controlplane.readinessProbe.successThreshold | int | `1` | number of consecutive successes for the probe to be considered successful after having failed | +| controlplane.readinessProbe.timeoutSeconds | int | `5` | number of seconds after which the probe times out | +| controlplane.replicaCount | int | `1` | | +| controlplane.resources | object | `{}` | [resource management](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) for the container | +| controlplane.securityContext.allowPrivilegeEscalation | bool | `false` | Controls [Privilege Escalation](https://kubernetes.io/docs/concepts/security/pod-security-policy/#privilege-escalation) enabling setuid binaries changing the effective user ID | +| controlplane.securityContext.capabilities.add | list | `[]` | Specifies which capabilities to add to issue specialized syscalls | +| controlplane.securityContext.capabilities.drop | list | `["ALL"]` | Specifies which capabilities to drop to reduce syscall attack surface | +| controlplane.securityContext.readOnlyRootFilesystem | bool | `true` | Whether the root filesystem is mounted in read-only mode | +| controlplane.securityContext.runAsNonRoot | bool | `true` | Requires the container to run without root privileges | +| controlplane.securityContext.runAsUser | int | `10001` | The container's process will run with the specified uid | +| controlplane.service.annotations | object | `{}` | | +| controlplane.service.type | string | `"ClusterIP"` | [Service type](https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types) to expose the running application on a set of Pods as a network service. | +| controlplane.ssi.miw.authorityId | string | `""` | The BPN of the issuer authority | +| controlplane.ssi.miw.url | string | `""` | MIW URL | +| controlplane.ssi.oauth.client.id | string | `""` | The client ID for KeyCloak | +| controlplane.ssi.oauth.client.secretAlias | string | `"client-secret"` | The alias under which the client secret is stored in the vault. | +| controlplane.ssi.oauth.tokenurl | string | `""` | The URL (of KeyCloak), where access tokens can be obtained | +| controlplane.tolerations | list | `[]` | | +| controlplane.url.protocol | string | `""` | Explicitly declared url for reaching the dsp api (e.g. if ingresses not used) | +| controlplane.volumeMounts | list | `[]` | declare where to mount [volumes](https://kubernetes.io/docs/concepts/storage/volumes/) into the container | +| controlplane.volumes | list | `[]` | [volume](https://kubernetes.io/docs/concepts/storage/volumes/) directories | +| customLabels | object | `{}` | To add some custom labels | +| dataplane.affinity | object | `{}` | | +| dataplane.autoscaling.enabled | bool | `false` | Enables [horizontal pod autoscaling](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/) | +| dataplane.autoscaling.maxReplicas | int | `100` | Maximum replicas if resource consumption exceeds resource threshholds | +| dataplane.autoscaling.minReplicas | int | `1` | Minimal replicas if resource consumption falls below resource threshholds | +| dataplane.autoscaling.targetCPUUtilizationPercentage | int | `80` | targetAverageUtilization of cpu provided to a pod | +| dataplane.autoscaling.targetMemoryUtilizationPercentage | int | `80` | targetAverageUtilization of memory provided to a pod | +| dataplane.aws.accessKeyId | string | `""` | | +| dataplane.aws.endpointOverride | string | `""` | | +| dataplane.aws.secretAccessKey | string | `""` | | +| dataplane.debug.enabled | bool | `false` | | +| dataplane.debug.port | int | `1044` | | +| dataplane.debug.suspendOnStart | bool | `false` | | +| dataplane.endpoints.control.path | string | `"/api/dataplane/control"` | | +| dataplane.endpoints.control.port | int | `8083` | | +| dataplane.endpoints.default.path | string | `"/api"` | | +| dataplane.endpoints.default.port | int | `8080` | | +| dataplane.endpoints.metrics.path | string | `"/metrics"` | | +| dataplane.endpoints.metrics.port | int | `9090` | | +| dataplane.endpoints.proxy.path | string | `"/proxy"` | | +| dataplane.endpoints.proxy.port | int | `8186` | | +| dataplane.endpoints.public.path | string | `"/api/public"` | | +| dataplane.endpoints.public.port | int | `8081` | | +| dataplane.env | object | `{}` | | +| dataplane.envConfigMapNames | list | `[]` | | +| dataplane.envSecretNames | list | `[]` | | +| dataplane.envValueFrom | object | `{}` | | +| dataplane.image.pullPolicy | string | `"IfNotPresent"` | [Kubernetes image pull policy](https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy) to use | +| dataplane.image.repository | string | `""` | Which derivate of the data plane to use. when left empty the deployment will select the correct image automatically | +| dataplane.image.tag | string | `""` | Overrides the image tag whose default is the chart appVersion | +| dataplane.ingresses[0].annotations | object | `{}` | Additional ingress annotations to add | +| dataplane.ingresses[0].certManager.clusterIssuer | string | `""` | If preset enables certificate generation via cert-manager cluster-wide issuer | +| dataplane.ingresses[0].certManager.issuer | string | `""` | If preset enables certificate generation via cert-manager namespace scoped issuer | +| dataplane.ingresses[0].className | string | `""` | Defines the [ingress class](https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-class) to use | +| dataplane.ingresses[0].enabled | bool | `false` | | +| dataplane.ingresses[0].endpoints | list | `["public"]` | EDC endpoints exposed by this ingress resource | +| dataplane.ingresses[0].hostname | string | `"edc-data.local"` | The hostname to be used to precisely map incoming traffic onto the underlying network service | +| dataplane.ingresses[0].tls | object | `{"enabled":false,"secretName":""}` | TLS [tls class](https://kubernetes.io/docs/concepts/services-networking/ingress/#tls) applied to the ingress resource | +| dataplane.ingresses[0].tls.enabled | bool | `false` | Enables TLS on the ingress resource | +| dataplane.ingresses[0].tls.secretName | string | `""` | If present overwrites the default secret name | +| dataplane.initContainers | list | `[]` | | +| dataplane.livenessProbe.enabled | bool | `true` | Whether to enable kubernetes [liveness-probe](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/) | +| dataplane.livenessProbe.failureThreshold | int | `6` | when a probe fails kubernetes will try 6 times before giving up | +| dataplane.livenessProbe.initialDelaySeconds | int | `30` | seconds to wait before performing the first liveness check | +| dataplane.livenessProbe.periodSeconds | int | `10` | this fields specifies that kubernetes should perform a liveness check every 10 seconds | +| dataplane.livenessProbe.successThreshold | int | `1` | number of consecutive successes for the probe to be considered successful after having failed | +| dataplane.livenessProbe.timeoutSeconds | int | `5` | number of seconds after which the probe times out | +| dataplane.logging | string | `".level=INFO\norg.eclipse.edc.level=ALL\nhandlers=java.util.logging.ConsoleHandler\njava.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter\njava.util.logging.ConsoleHandler.level=ALL\njava.util.logging.SimpleFormatter.format=[%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS] [%4$-7s] %5$s%6$s%n"` | configuration of the [Java Util Logging Facade](https://docs.oracle.com/javase/7/docs/technotes/guides/logging/overview.html) | +| dataplane.nodeSelector | object | `{}` | | +| dataplane.opentelemetry | string | `"otel.javaagent.enabled=false\notel.javaagent.debug=false"` | configuration of the [Open Telemetry Agent](https://opentelemetry.io/docs/instrumentation/java/automatic/agent-config/) to collect and expose metrics | +| dataplane.podAnnotations | object | `{}` | additional annotations for the pod | +| dataplane.podLabels | object | `{}` | additional labels for the pod | +| dataplane.podSecurityContext | object | `{"fsGroup":10001,"runAsGroup":10001,"runAsUser":10001,"seccompProfile":{"type":"RuntimeDefault"}}` | The [pod security context](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod) defines privilege and access control settings for a Pod within the deployment | +| dataplane.podSecurityContext.fsGroup | int | `10001` | The owner for volumes and any files created within volumes will belong to this guid | +| dataplane.podSecurityContext.runAsGroup | int | `10001` | Processes within a pod will belong to this guid | +| dataplane.podSecurityContext.runAsUser | int | `10001` | Runs all processes within a pod with a special uid | +| dataplane.podSecurityContext.seccompProfile.type | string | `"RuntimeDefault"` | Restrict a Container's Syscalls with seccomp | +| dataplane.readinessProbe.enabled | bool | `true` | Whether to enable kubernetes [readiness-probes](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/) | +| dataplane.readinessProbe.failureThreshold | int | `6` | when a probe fails kubernetes will try 6 times before giving up | +| dataplane.readinessProbe.initialDelaySeconds | int | `30` | seconds to wait before performing the first readiness check | +| dataplane.readinessProbe.periodSeconds | int | `10` | this fields specifies that kubernetes should perform a liveness check every 10 seconds | +| dataplane.readinessProbe.successThreshold | int | `1` | number of consecutive successes for the probe to be considered successful after having failed | +| dataplane.readinessProbe.timeoutSeconds | int | `5` | number of seconds after which the probe times out | +| dataplane.replicaCount | int | `1` | | +| dataplane.resources | object | `{}` | [resource management](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) for the container | +| dataplane.securityContext.allowPrivilegeEscalation | bool | `false` | Controls [Privilege Escalation](https://kubernetes.io/docs/concepts/security/pod-security-policy/#privilege-escalation) enabling setuid binaries changing the effective user ID | +| dataplane.securityContext.capabilities.add | list | `[]` | Specifies which capabilities to add to issue specialized syscalls | +| dataplane.securityContext.capabilities.drop | list | `["ALL"]` | Specifies which capabilities to drop to reduce syscall attack surface | +| dataplane.securityContext.readOnlyRootFilesystem | bool | `true` | Whether the root filesystem is mounted in read-only mode | +| dataplane.securityContext.runAsNonRoot | bool | `true` | Requires the container to run without root privileges | +| dataplane.securityContext.runAsUser | int | `10001` | The container's process will run with the specified uid | +| dataplane.service.port | int | `80` | | +| dataplane.service.type | string | `"ClusterIP"` | [Service type](https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types) to expose the running application on a set of Pods as a network service. | +| dataplane.tolerations | list | `[]` | | +| dataplane.url.public | string | `""` | Explicitly declared url for reaching the public api (e.g. if ingresses not used) | +| dataplane.volumeMounts | list | `[]` | declare where to mount [volumes](https://kubernetes.io/docs/concepts/storage/volumes/) into the container | +| dataplane.volumes | list | `[]` | [volume](https://kubernetes.io/docs/concepts/storage/volumes/) directories | +| fullnameOverride | string | `""` | | +| imagePullSecrets | list | `[]` | Existing image pull secret to use to [obtain the container image from private registries](https://kubernetes.io/docs/concepts/containers/images/#using-a-private-registry) | +| install.postgresql | bool | `true` | | +| install.vault | bool | `true` | | +| nameOverride | string | `""` | | +| networkPolicy.controlplane | object | `{"from":[{"namespaceSelector":{}}]}` | Configuration of the controlplane component | +| networkPolicy.controlplane.from | list | `[{"namespaceSelector":{}}]` | Specify from rule network policy for cp (defaults to all namespaces) | +| networkPolicy.dataplane | object | `{"from":[{"namespaceSelector":{}}]}` | Configuration of the dataplane component | +| networkPolicy.dataplane.from | list | `[{"namespaceSelector":{}}]` | Specify from rule network policy for dp (defaults to all namespaces) | +| networkPolicy.enabled | bool | `false` | If `true` network policy will be created to restrict access to control- and dataplane | +| participant.id | string | `""` | BPN Number | +| postgresql.auth.database | string | `"edc"` | | +| postgresql.auth.password | string | `"password"` | | +| postgresql.auth.username | string | `"user"` | | +| postgresql.jdbcUrl | string | `"jdbc:postgresql://{{ .Release.Name }}-postgresql:5432/edc"` | | +| postgresql.primary.persistence.enabled | bool | `false` | | +| postgresql.readReplicas.persistence.enabled | bool | `false` | | +| serviceAccount.annotations | object | `{}` | | +| serviceAccount.create | bool | `true` | | +| serviceAccount.imagePullSecrets | list | `[]` | Existing image pull secret bound to the service account to use to [obtain the container image from private registries](https://kubernetes.io/docs/concepts/containers/images/#using-a-private-registry) | +| serviceAccount.name | string | `""` | | +| tests | object | `{"hookDeletePolicy":"before-hook-creation,hook-succeeded"}` | Configurations for Helm tests | +| tests.hookDeletePolicy | string | `"before-hook-creation,hook-succeeded"` | Configure the hook-delete-policy for Helm tests | +| vault.hashicorp.healthCheck.enabled | bool | `true` | | +| vault.hashicorp.healthCheck.standbyOk | bool | `true` | | +| vault.hashicorp.paths.health | string | `"/v1/sys/health"` | | +| vault.hashicorp.paths.secret | string | `"/v1/secret"` | | +| vault.hashicorp.timeout | int | `30` | | +| vault.hashicorp.token | string | `""` | | +| vault.hashicorp.url | string | `"http://{{ .Release.Name }}-vault:8200"` | | +| vault.injector.enabled | bool | `false` | | +| vault.secretNames.transferProxyTokenEncryptionAesKey | string | `"transfer-proxy-token-encryption-aes-key"` | | +| vault.secretNames.transferProxyTokenSignerPrivateKey | string | `nil` | | +| vault.secretNames.transferProxyTokenSignerPublicKey | string | `nil` | | +| vault.server.dev.devRootToken | string | `"root"` | | +| vault.server.dev.enabled | bool | `true` | | +| vault.server.postStart | string | `nil` | | + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.10.0](https://github.com/norwoodj/helm-docs/releases/v1.10.0) diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/core/edr-core/README.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/core/edr-core/README.md new file mode 100644 index 00000000000..aeb2e2402fa --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/core/edr-core/README.md @@ -0,0 +1,26 @@ +# EDR core extension + +This extension provide a base implementation of `EdrManager` and `EdrService` both +required for interacting with the EDR APIs and state machine + +The EDR state machine handle the lifecycle of a negotiated EDR. The negotiation request can be submitted +via EDR APIs, and it will go through two phases: + +- Contract Negotiation +- Transfer Request + +Once the latter has completed the EDR entry will be saved with the associated EDR in the primordial state `NEGOTIATED` +The state machine will also manage the lifecycle and the renewal of the `EDR`. If a token is about to expire it will +transition to the `REFRESHING` state and fire off another transfer process with the same parameter of the expiring +one. Once completed the new `EDR` will be cached and the old ones, with same `assetId` and `agreementId` will transition +into the `EXPIRED` state. Then the state machine will also monitor the `EXPIRED` ones, and will delete them according to the +retention configuration. + +## 1. EDR state machine Configuration + +| Key | Description | Mandatory | Default | +|:--------------------------------------------|:----------------------------------------------------------------------------------------------------|-----------|---------| +| edc.edr.state-machine.iteration-wait-millis | The iteration wait time in milliseconds in the edr state machine | | 1000 | +| edc.edr.state-machine.batch-size | The batch size in the edr negotiation state machine | | 20 | +| edc.edr.state-machine.expiring-duration | The minimum duration on which the EDR token can be eligible for renewal (seconds) | | 60 | +| edc.edr.state-machine.expired-retention | The minimum duration on with the EDR token can be eligible for deletion when it's expired (seconds) | | 60 | diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/README.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/README.md new file mode 100644 index 00000000000..6a5605eef75 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/README.md @@ -0,0 +1,54 @@ +# Tractus-X EDC + +The Tractus-X EDC repository creates runnable applications out of EDC extensions from +the [Eclipse DataSpace Connector](https://github.com/eclipse-edc/Connector) repository. + +When running a EDC connector from the Tractus-X EDC repository there are three setups to choose from. They only vary by +using different extensions for + +- Resolving of Connector-Identities +- Persistence of the Control-Plane-State +- Persistence of Secrets (Vault) + +## Connector Setup + +The three supported setups are. + +- Setup 1: Pure in Memory **Not intended for production use!** + - [Control Plane](../edc-controlplane/edc-runtime-memory/README.md) + - [IDS DAPS Extensions](https://github.com/eclipse-edc/Connector/tree/main/extensions/common/iam/oauth2/daps) + - In Memory Persistence done by using no extension + - In Memory Keyvault with seedable secrets. + - [Data Plane](../edc-dataplane/edc-dataplane-azure-vault/README.md) + - [Azure Key Vault Extension](https://github.com/eclipse-edc/Connector/tree/main/extensions/common/vault/azure-vault) +- Setup 2: PostgreSQL & Azure Vault + - [Control Plane](../edc-controlplane/edc-controlplane-postgresql-azure-vault/README.md) + - [IDS DAPS Extensions](https://github.com/eclipse-edc/Connector/tree/main/extensions/common/iam/oauth2/daps) + - [PostgreSQL Persistence Extensions](https://github.com/eclipse-edc/Connector/tree/main/extensions/control-plane/store/sql) + - [Azure Key Vault Extension](https://github.com/eclipse-edc/Connector/tree/main/extensions/common/vault/azure-vault) + - [Data Plane](../edc-dataplane/edc-dataplane-azure-vault/README.md) + - [Azure Key Vault Extension](https://github.com/eclipse-edc/Connector/tree/main/extensions/common/vault/azure-vault) +- Setup 3: PostgreSQL & HashiCorp Vault + - [Control Plane](../edc-controlplane/edc-controlplane-postgresql-hashicorp-vault/README.md) + - [IDS DAPS Extensions](https://github.com/eclipse-edc/Connector/tree/main/extensions/common/iam/oauth2/daps) + - [PostgreSQL Persistence Extensions](https://github.com/eclipse-edc/Connector/tree/main/extensions/control-plane/store/sql) + - [HashiCorp Vault Extension](../edc-extensions/hashicorp-vault/README.md) + - [Data Plane](../edc-dataplane/edc-dataplane-hashicorp-vault/README.md) + - [HashiCorp Vault Extension](../edc-extensions/hashicorp-vault/README.md) + +## Recommended Documentation + +### This Repository + +- [Update EDC Version from 0.0.x - 0.1.x](migration/Version_0.0.x_0.1.x.md) +- [Application: Control Plane](../edc-controlplane) +- [Application: Data Plane](../edc-dataplane) +- [Extension: Business Partner Numbers](../edc-extensions/business-partner-validation/README.md) +- [Example: Local TXDC Setup](samples/Local%20TXDC%20Setup.md) +- [Example: Data Transfer](samples/Transfer%20Data.md) + +### Eclipse Dataspace Connector + +- [EDC Domain Model](https://github.com/eclipse-edc/Connector/blob/main/docs/developer/architecture/domain-model.md) +- [EDC Open API Spec](https://github.com/eclipse-edc/Connector/blob/main/resources/openapi/openapi.yaml) +- [HTTP Receiver Extension](https://github.com/eclipse-edc/Connector/tree/main/extensions/control-plane/http-receiver) diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/development/Release.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/development/Release.md new file mode 100644 index 00000000000..5f2fbd74daf --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/development/Release.md @@ -0,0 +1,48 @@ +# Release + +## Prerequisites + +[![Apache Maven][maven-shield]][maven-url] + +## Update DEPENDENCIES file + +### 1. Setup Eclipse Dash License Tool locally + +For instructions on how to download the Eclipse Dash Tool executable, refer to the +project's [GitHub page](https://github.com/eclipse/dash-licenses#get-it). + +### 2. Generate DEPENDENCIES file + +The following call generates the dependencies file. This list is populated by deriving dependencies using the build tool (i.e., +gradle), analysing them using an IP tool (i.e., Eclipse Dash Tool), and decorating the resulting report with additional +information using a custom script. + +Execute the gradle task `allDependencies` for creating an integrated dependency report over all sub-modules of the +project (including isolated modules). To process the dependencies of a specific module (e.g., an individual launcher) +execute the standard `dependencies` task. + +First, the dependencies of this module are calculated with gradle and passed to the Dash tool: + +```shell +gradle allDependencies | grep -Poh "(?<=\s)[\w.-]+:[\w.-]+:[^:\s]+" | sort | uniq | java -jar /path/org.eclipse.dash.licenses-0.0.1-SNAPSHOT.jar - -summary DEPENDENCIES +``` + +_Note: on some machines (e.g. macOS) [the ack tool](https://beyondgrep.com/install/) should be used instead of `grep`._ + +### 3. Resolve restricted Dependencies + +If a dependency is `restricted`, it is not approved by the Eclipse Foundation, yet. +The Eclipse Bot is able to approve dependencies automatically, if the license can be resolved by ClearlyDefined. + +1. (optional) Visit and harvest the dependency + from maven central. +2. Create the Eclipse IP Issues or ask an Eclipse Commiter to do this for you. + +## 4. Update OpenAPI docs + +As part of the [kits documentation provided for docusaurus](../kit/development-view/page00_development_view.md) we provide an OpenAPI reference. +This refers to the [EDC API](https://github.com/eclipse-edc/Connector/tree/main/resources/openapi) and needs to be updated to the current release. +The yaml files found there are then converted with the [docusaurus openapi plugin](https://www.npmjs.com/package/docusaurus-plugin-openapi-docs). + +[maven-shield]: https://img.shields.io/badge/Apache%20Maven-URL-blue +[maven-url]: https://maven.apache.org diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/development/coding-principles.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/development/coding-principles.md new file mode 100644 index 00000000000..624186c4675 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/development/coding-principles.md @@ -0,0 +1,138 @@ +# Coding Principles and Style Guide + +## Fail-fast and Explicit Configuration + +1. Configuration should be loaded and validated at extension initialization so that issues are reported immediately. Do + not lazy-load configuration unless it is required to do so. +2. Settings can be pulled from the extension context and placed into configuration objects, which are passed to services + via their constructor. +3. Service configuration requirements should always be explicit; as a general rule, do not pass a single configuration + object with many values to multiple services. +4. Annotate configuration keys with `@Setting` so that they may be tracked. + +## Errors + +1. Do not throw checked exceptions; always use unchecked exceptions. If an unchecked exception type needs to be defined, + inherit from `org.eclipse.edc.spi.EdcException`. +2. Do not throw exceptions to signal a validation error; report the error (preferably collated) and return an error + response. +3. Throw an unchecked exception if something unexpected happens (e.g. a backing store connection is down after a number + of retries). Note that validation errors are expected. +4. Only throw an exception when there is no remediation possible, i.e. the exception is fatal. Do not throw an exception + if an operation can be retried. +5. Generally, services should return a `org.eclipse.edc.spi.result.Result` (or a suitable subclass). + +## Simplicity + +1. Avoid layers of indirection when they are not needed (e.g. "pass-through methods"). +2. Avoid needlessly wrapping objects, especially primitive datatypes. + +## General Coding Style + +1. Use `var` instead of explicit types (helps with clarity) +2. Avoid `final` in method args and local variables +3. Use `final` in field declarations +4. Avoid `static` fields except in constants or when absolutely necessary (you should be able to provide a reason). +5. Use interfaces to define shared constants +6. Use "minimally required types" (or "smallest possible API"), e.g. use `ObjectMapper` instead of `TypeManager`, or use + a `String` instead of a more complex object containing the String, etc. +7. Use either `public` members, which are documented and tested, or `private` members. +8. Avoid package-private members, especially if only needed for testing +9. Avoid `protected` members unless they're intended to be overridden. +10. Use package-private classes if they're not needed outside the package, e.g. implementation classes +11. Avoid using `enum`s for anything other than named integer enumerations. +12. Avoid using static classes as much as possible. Exceptions to this are helper functions and test utils, etc. as well + as static inner classes. +13. Use only camel case and no prefixes for naming. +14. Avoid unnecessary `this.` except when it is necessary e.g. when there is a name overlap +15. Use static imports, as long as code readability and comprehension is not impacted. For example, + - use `assertThat(...)` instead of `Assertions.assertThat(...)` + - use `format("...",arg1)` instead of `String.format(...)`, but + - avoid `of(item1, item2).map(it -> it.someOperation)...` instead of `Stream.of(item1, item2)`. + Also, avoid static imports if two static methods with the same name would be imported from different classes +16. Avoid `Optional` as method return type or method argument, except when designing a fluent API. Use `null` in + signatures. +17. Avoid cryptic variable names, especially in long methods. Instead, try to write them out, at least to a reasonable + extent. + +## Testing + +1. All handlers and services should have dedicated unit tests with mocks used for dependencies. +2. Prefer unit tests over all other test types: unit > integration/component > e2e +3. When appropriate, prefer composing services via the constructor so that dependencies can be mocked as opposed to + instantiating dependencies directly. +4. Use classes with static test functions to provide common helper methods, e.g. to instantiate an object. +5. Use `[METHOD]_when[CONDITION]_should[EXPECTATION]` as naming template for test methods, + e.g. `verifyInput_whenNull_shouldThrowNpe()` as opposed to `testInputNull()` + +## Data Objects + +1. Use the `Builder` pattern when: + - there are any number of optional constructor args + - there are more than 3 constructor args + - inheriting from an object that fulfills any of the above. In this case use derived builders as well. +2. Although serializability is not the reason we use the builder pattern, it is a strong indication that a builder + should be used. +3. Builders should be named just `Builder` and be static nested classes. +4. Create a `public static Builder newInstance(){...}` method to instantiate the builder +5. Builders have non-public constructors +6. Use single-field builders: a `Builder` instantiates the object it builds in its constructor, and sets the properties + in its builder methods. The `build()` method then only performs verification (optional) and returns the instance. +7. Use `private` constructors for the objects that the builder builds. +8. If there is a builder for an object, use it to deserialize an object, i.e. put Jackson annotations such + as `JsonCreator` and `@JsonBuilder` on builders. +9. Note that the motivation behind use of builders is not for immutability (although that may be good in certain + circumstances). Rather, it is to make code less error-prone and + simpler given the lack of named arguments and optional parameters in Java. + +## Secrets + +1. Only store secrets in the `Vault` and do not hold them in objects that may be persisted to other stores. +2. Do not log secrets or sensitive information. + +## Extensions and Libraries + +1. Extension modules contribute a feature to the runtime such as a service. +2. SPI modules define extensibility points in the runtime. There is a core SPI module that defines extensibility for + essential runtime features. There are other SPI modules that + define extensibility points for optional features such as IDS. +3. Libraries are utility modules that provide classes which may be used by other modules. They do not directly + contribute features to the runtime. +4. An SPI module may only reference other SPI modules and library modules. +5. An Extension module may only reference other SPI modules and library modules. +6. A library module may only reference other library modules. + +## Build + +1. There should only be a root `gradle.properties` that contains build variables. Do not create separate + `gradle.properties` files in a module. +2. For external dependencies, do not reference the version directly. Instead, use + the version catalog feature. + +## Handling Null Return Values + +1. In certain situations, `null` may need to be returned from a method, passed as a parameter, or set on a field. Only + use `Optional` if a method is part of a fluent API. + Since the runtime will rarely require this, the project standard is to use the `org.jetbrains.annotations.Nullable` + and `org.jetbrains.annotations.NotNull` annotations. + +## Objects Serialization/Deserialization + +1. `TypeManager` is the component responsible for json ser/des, you can also use the `ObjectMapper` inside it, but there + should be no other `ObjectMapper` instance. + +## Class Naming + +1. A single implementor of an interface should be named `Impl`. +2. An implementor who is meant to be the default implementation for an interface but other are/can be defined used + instead. + +## Observability + +Services can implement one the following interfaces: `ReadinessProvider`, `LivenessProvider`, `StartupStatusProvider` +and register with the `HealthCheckService`, thus reporting the service's readiness status through the observability API. + +## Streams + +1. Always close explicitly `Stream` objects that are returned by a service/store, since they could carry a connection, + which otherwise would leak. diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/development/postman/README.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/development/postman/README.md new file mode 100644 index 00000000000..f4a7d2b24a5 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/development/postman/README.md @@ -0,0 +1,29 @@ +# Postman Collection + +## Prerequisites + +[![Postman][postman-shield]][postman-url] + +## Postman + +The Postman app can be used to send and receive EDC messages. + +### Install/Download Postman + +please visit + +### Import Postman collection + +please visit + +## Collection + +The postman collection contains the most common API calls. Please note that the + +- Policy & Negotiation calls come in pairs for the different kinds of policies +- the 'Data' call only works when using the All-In-One Deployment of this repository + +![screenshot](./images/screenshot.png) + +[postman-shield]: https://img.shields.io/badge/Postman-URL-orange +[postman-url]: https://www.postman.com diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/development/postman/collection.json b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/development/postman/collection.json new file mode 100644 index 00000000000..f88bdf5c7f9 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/development/postman/collection.json @@ -0,0 +1,906 @@ +{ + "info": { + "_postman_id": "7d19adf4-a13c-4c0d-abea-f9e0bebbffb6", + "name": "tractusx-edc_dsp", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "6134257" + }, + "item": [ + { + "name": "Create Asset", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Status code is 201\", function () {", + " pm.response.to.have.status(201);", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"@context\": {},\n \"asset\": {\n \"@type\": \"Asset\",\n \"@id\": \"{{ASSET_ID}}\", \n \"properties\": {\n \"description\": \"Product EDC Demo Asset\"\n }\n },\n \"dataAddress\": {\n \"@type\": \"DataAddress\",\n \"type\": \"HttpData\",\n \"baseUrl\": \"https://jsonplaceholder.typicode.com/todos\"\n }\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{PROVIDER_MANAGEMENT_URL}}/assets", + "host": [ + "{{PROVIDER_MANAGEMENT_URL}}" + ], + "path": [ + "assets" + ] + } + }, + "response": [] + }, + { + "name": "Get all Assets", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{PROVIDER_MANAGEMENT_URL}}/assets/request", + "host": [ + "{{PROVIDER_MANAGEMENT_URL}}" + ], + "path": [ + "assets", + "request" + ] + } + }, + "response": [] + }, + { + "name": "Get Asset by ID", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{PROVIDER_MANAGEMENT_URL}}/assets/{{ASSET_ID}}", + "host": [ + "{{PROVIDER_MANAGEMENT_URL}}" + ], + "path": [ + "assets", + "{{ASSET_ID}}" + ] + } + }, + "response": [] + }, + { + "name": "Delete Asset by ID", + "request": { + "method": "DELETE", + "header": [], + "url": { + "raw": "{{PROVIDER_MANAGEMENT_URL}}/assets/{{ASSET_ID}}", + "host": [ + "{{PROVIDER_MANAGEMENT_URL}}" + ], + "path": [ + "assets", + "{{ASSET_ID}}" + ] + } + }, + "response": [] + }, + { + "name": "Create Policy", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"@context\": {\n \"odrl\": \"http://www.w3.org/ns/odrl/2/\"\n },\n \"@type\": \"PolicyDefinitionRequestDto\",\n \"@id\": \"{{POLICY_ID}}\",\n \"policy\": {\n\t\t\"@type\": \"Policy\",\n\t\t\"odrl:permission\" : [{\n\t\t\t\"odrl:action\" : \"USE\",\n\t\t\t\"odrl:constraint\" : {\n\t\t\t\t\"@type\": \"LogicalConstraint\",\n\t\t\t\t\"odrl:or\" : [{\n\t\t\t\t\t\"@type\" : \"Constraint\",\n\t\t\t\t\t\"odrl:leftOperand\" : \"BusinessPartnerNumber\",\n\t\t\t\t\t\"odrl:operator\" : {\n \"@id\": \"odrl:eq\"\n },\n\t\t\t\t\t\"odrl:rightOperand\" : \"{{POLICY_BPN}}\"\n\t\t\t\t}]\n\t\t\t}\n\t\t}]\n }\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{PROVIDER_MANAGEMENT_URL}}/policydefinitions", + "host": [ + "{{PROVIDER_MANAGEMENT_URL}}" + ], + "path": [ + "policydefinitions" + ] + } + }, + "response": [] + }, + { + "name": "Get Policy by ID", + "protocolProfileBehavior": { + "disableBodyPruning": true + }, + "request": { + "method": "GET", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"id\": \"{{POLICY_ID}}\",\n \"policy\": {\n \"prohibitions\": [],\n \"obligations\": [],\n \"permissions\": [\n {\n \"edctype\": \"dataspaceconnector:permission\",\n \"action\": {\n \"type\": \"USE\"\n },\n \"constraints\": []\n }\n ]\n }\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{PROVIDER_MANAGEMENT_URL}}/policydefinitions/{{POLICY_ID}}", + "host": [ + "{{PROVIDER_MANAGEMENT_URL}}" + ], + "path": [ + "policydefinitions", + "{{POLICY_ID}}" + ] + } + }, + "response": [] + }, + { + "name": "Get all Policies", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"@context\": {\n \"odrl\": \"http://www.w3.org/ns/odrl/2/\"\n },\n \"id\": \"{{POLICY_ID}}\",\n \"policy\": {\n \"prohibitions\": [],\n \"obligations\": [],\n \"permissions\": [\n {\n \"edctype\": \"dataspaceconnector:permission\",\n \"action\": {\n \"type\": \"USE\"\n },\n \"constraints\": []\n }\n ]\n }\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{PROVIDER_MANAGEMENT_URL}}/policydefinitions/request", + "host": [ + "{{PROVIDER_MANAGEMENT_URL}}" + ], + "path": [ + "policydefinitions", + "request" + ] + } + }, + "response": [] + }, + { + "name": "Delte Policy by ID", + "request": { + "method": "DELETE", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"id\": \"{{POLICY_ID}}\",\n \"policy\": {\n \"prohibitions\": [],\n \"obligations\": [],\n \"permissions\": [\n {\n \"edctype\": \"dataspaceconnector:permission\",\n \"action\": {\n \"type\": \"USE\"\n },\n \"constraints\": []\n }\n ]\n }\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{PROVIDER_MANAGEMENT_URL}}/policydefinitions/{{POLICY_ID}}", + "host": [ + "{{PROVIDER_MANAGEMENT_URL}}" + ], + "path": [ + "policydefinitions", + "{{POLICY_ID}}" + ] + } + }, + "response": [] + }, + { + "name": "Create Contract Definitiion", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"@context\": {},\n \"@id\": \"{{CONTRACT_DEFINITION_ID}}\",\n \"@type\": \"ContractDefinition\",\n \"accessPolicyId\": \"{{ACCESS_POLICY_ID}}\",\n \"contractPolicyId\": \"{{CONTRACT_POLICY_ID}}\",\n \"assetsSelector\" : {\n \"@type\" : \"CriterionDto\",\n \"operandLeft\": \"{{EDC_NAMESPACE}}id\",\n \"operator\": \"=\",\n \"operandRight\": \"{{ASSET_ID}}\"\n }\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{PROVIDER_MANAGEMENT_URL}}/contractdefinitions", + "host": [ + "{{PROVIDER_MANAGEMENT_URL}}" + ], + "path": [ + "contractdefinitions" + ] + } + }, + "response": [] + }, + { + "name": "Get Contract Definition by ID", + "protocolProfileBehavior": { + "disableBodyPruning": true + }, + "request": { + "method": "GET", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"id\": \"{{POLICY_ID}}\",\n \"policy\": {\n \"prohibitions\": [],\n \"obligations\": [],\n \"permissions\": [\n {\n \"edctype\": \"dataspaceconnector:permission\",\n \"action\": {\n \"type\": \"USE\"\n },\n \"constraints\": []\n }\n ]\n }\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{PROVIDER_MANAGEMENT_URL}}/contractdefinitions/{{CONTRACT_DEFINITION_ID}}", + "host": [ + "{{PROVIDER_MANAGEMENT_URL}}" + ], + "path": [ + "contractdefinitions", + "{{CONTRACT_DEFINITION_ID}}" + ] + } + }, + "response": [] + }, + { + "name": "Get all Contract Definitiions", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{PROVIDER_MANAGEMENT_URL}}/contractdefinitions/request", + "host": [ + "{{PROVIDER_MANAGEMENT_URL}}" + ], + "path": [ + "contractdefinitions", + "request" + ] + } + }, + "response": [] + }, + { + "name": "Delte Contract Definition", + "request": { + "method": "DELETE", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"id\": \"{{POLICY_ID}}\",\n \"policy\": {\n \"prohibitions\": [],\n \"obligations\": [],\n \"permissions\": [\n {\n \"edctype\": \"dataspaceconnector:permission\",\n \"action\": {\n \"type\": \"USE\"\n },\n \"constraints\": []\n }\n ]\n }\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{PROVIDER_MANAGEMENT_URL}}/contractdefinitions/{{CONTRACT_DEFINITION_ID}}", + "host": [ + "{{PROVIDER_MANAGEMENT_URL}}" + ], + "path": [ + "contractdefinitions", + "{{CONTRACT_DEFINITION_ID}}" + ] + } + }, + "response": [] + }, + { + "name": "Query Catalog", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\r\n \"@context\": {},\r\n \"protocol\": \"dataspace-protocol-http\",\r\n \"providerUrl\": \"{{PROVIDER_PROTOCOL_URL}}\",\r\n \"querySpec\": {\r\n \"offset\": 0,\r\n \"limit\": 100,\r\n \"filter\": \"\",\r\n \"range\": {\r\n \"from\": 0,\r\n \"to\": 100\r\n },\r\n \"sortField\": \"\",\r\n \"criterion\": \"\"\r\n }\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{CONSUMER_MANAGEMENT_URL}}/catalog/request", + "host": [ + "{{CONSUMER_MANAGEMENT_URL}}" + ], + "path": [ + "catalog", + "request" + ] + } + }, + "response": [] + }, + { + "name": "Initiate Negotation", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Body matches string\", function () {", + " var jsonData = pm.response.json();", + " pm.collectionVariables.set(\"NEGOTIATION_ID\", jsonData.id);", + "", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n\t\"@context\": {\n\t\t\"odrl\": \"http://www.w3.org/ns/odrl/2/\"\n\t},\n\t\"@type\": \"NegotiationInitiateRequestDto\",\n\t\"connectorAddress\": \"{{PROVIDER_PROTOCOL_URL}}\",\n\t\"protocol\": \"dataspace-protocol-http\",\n\t\"connectorId\": \"{{PROVIDER_ID}}\",\n\t\"providerId\": \"{{PROVIDER_ID}}\",\n\t\"offer\": {\n\t\t\"offerId\": \"1:1:46483724-18f1-4dff-87da-f26725dcc59c\",\n\t\t\"assetId\": \"{{ASSET_ID}}\",\n\t\t\"policy\": {\n\t\t\t\"@type\": \"odrl:Set\",\n\t\t\t\"odrl:permission\": {\n\t\t\t\t\"odrl:target\": \"{{ASSET_ID}}\",\n\t\t\t\t\"odrl:action\": {\n\t\t\t\t\t\"odrl:type\": \"USE\"\n\t\t\t\t},\n\t\t\t\t\"odrl:constraint\": {\n\t\t\t\t\t\"odrl:or\": {\n\t\t\t\t\t\t\"odrl:leftOperand\": \"BusinessPartnerNumber\",\n\t\t\t\t\t\t\"odrl:operator\": {\n \"@id\": \"odrl:eq\"\n },\n\t\t\t\t\t\t\"odrl:rightOperand\": \"{{POLICY_BPN}}\"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"odrl:prohibition\": [],\n\t\t\t\"odrl:obligation\": [],\n\t\t\t\"odrl:target\": \"{{ASSET_ID}}\"\n\t\t}\n\t}\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{CONSUMER_MANAGEMENT_URL}}/contractnegotiations", + "host": [ + "{{CONSUMER_MANAGEMENT_URL}}" + ], + "path": [ + "contractnegotiations" + ] + } + }, + "response": [] + }, + { + "name": "Get all Negotations", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + }, + { + "listen": "test", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{CONSUMER_MANAGEMENT_URL}}/contractnegotiations/request", + "host": [ + "{{CONSUMER_MANAGEMENT_URL}}" + ], + "path": [ + "contractnegotiations", + "request" + ] + } + }, + "response": [] + }, + { + "name": "Cancel Negotation by ID", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + }, + { + "listen": "test", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{CONSUMER_MANAGEMENT_URL}}/contractnegotiations/7cff6ecb-7e5e-40b8-b101-eba3f2045b1f/cancel", + "host": [ + "{{CONSUMER_MANAGEMENT_URL}}" + ], + "path": [ + "contractnegotiations", + "7cff6ecb-7e5e-40b8-b101-eba3f2045b1f", + "cancel" + ] + } + }, + "response": [] + }, + { + "name": "Initiate Transfer", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "pm.collectionVariables.set(\"TRANSFER_ID\", Math.random());" + ], + "type": "text/javascript" + } + }, + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Body matches string\", function () {", + " var jsonData = pm.response.json();", + " pm.collectionVariables.set(\"TRANSFER_PROCESS_ID\", jsonData.id);", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"@context\": {\n \"odrl\": \"http://www.w3.org/ns/odrl/2/\"\n },\n \"assetId\": \"{{ASSET_ID}}\",\n \"connectorAddress\": \"{{PROVIDER_PROTOCOL_URL}}\",\n \"contractId\": \"\",\n \"dataDestination\": {\n \"properties\": {\n \"type\": \"HttpProxy\"\n }\n },\n \"managedResources\": false,\n \"privateProperties\": {\n \"receiverHttpEndpoint\": \"{{BACKEND_SERVICE}}\"\n },\n \"protocol\": \"dataspace-protocol-http\",\n \"transferType\": {\n \"contentType\": \"application/octet-stream\",\n \"isFinite\": true\n }\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{CONSUMER_MANAGEMENT_URL}}/transferprocesses", + "host": [ + "{{CONSUMER_MANAGEMENT_URL}}" + ], + "path": [ + "transferprocesses" + ] + } + }, + "response": [] + }, + { + "name": "Get Transfer by ID", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + }, + { + "listen": "test", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{CONSUMER_MANAGEMENT_URL}}/transferprocesses/8e428b80-46a5-4325-87e5-592518f7666b", + "host": [ + "{{CONSUMER_MANAGEMENT_URL}}" + ], + "path": [ + "transferprocesses", + "8e428b80-46a5-4325-87e5-592518f7666b" + ] + } + }, + "response": [] + }, + { + "name": "Get all Transfers", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + }, + { + "listen": "test", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{CONSUMER_MANAGEMENT_URL}}/transferprocesses/request", + "host": [ + "{{CONSUMER_MANAGEMENT_URL}}" + ], + "path": [ + "transferprocesses", + "request" + ] + } + }, + "response": [] + }, + { + "name": "Initiate EDR Negotation", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Body matches string\", function () {", + " var jsonData = pm.response.json();", + " pm.collectionVariables.set(\"NEGOTIATION_ID\", jsonData.id);", + "", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n\t\"@context\": {\n\t\t\"odrl\": \"http://www.w3.org/ns/odrl/2/\"\n\t},\n\t\"@type\": \"NegotiationInitiateRequestDto\",\n\t\"connectorAddress\": \"{{PROVIDER_PROTOCOL_URL}}\",\n\t\"protocol\": \"dataspace-protocol-http\",\n\t\"connectorId\": \"{{PROVIDER_ID}}\",\n\t\"providerId\": \"{{PROVIDER_ID}}\",\n\t\"offer\": {\n\t\t\"offerId\": \"1:1:9f9375e3-ed28-449a-8a98-a340f4c20c26\",\n\t\t\"assetId\": \"{{ASSET_ID}}\",\n\t\t\"policy\": {\n\t\t\t\"@type\": \"odrl:Set\",\n\t\t\t\"odrl:permission\": {\n\t\t\t\t\"odrl:target\": \"{{ASSET_ID}}\",\n\t\t\t\t\"odrl:action\": {\n\t\t\t\t\t\"odrl:type\": \"USE\"\n\t\t\t\t},\n\t\t\t\t\"odrl:constraint\": {\n\t\t\t\t\t\"odrl:or\": {\n\t\t\t\t\t\t\"odrl:leftOperand\": \"BusinessPartnerNumber\",\n\t\t\t\t\t\t\"odrl:operator\": \"EQ\",\n\t\t\t\t\t\t\"odrl:rightOperand\": \"{{POLICY_BPN}}\"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"odrl:prohibition\": [],\n\t\t\t\"odrl:obligation\": [],\n\t\t\t\"odrl:target\": \"{{ASSET_ID}}\"\n\t\t}\n\t}\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{CONSUMER_ADAPTER_URL}}/edrs", + "host": [ + "{{CONSUMER_ADAPTER_URL}}" + ], + "path": [ + "edrs" + ] + } + }, + "response": [] + }, + { + "name": "Query EDRs Cached", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Body matches string\", function () {", + " var jsonData = pm.response.json();", + " pm.collectionVariables.set(\"NEGOTIATION_ID\", jsonData.id);", + "", + "});" + ], + "type": "text/javascript" + } + } + ], + "protocolProfileBehavior": { + "disableBodyPruning": true + }, + "request": { + "method": "GET", + "header": [], + "body": { + "mode": "raw", + "raw": "", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{CONSUMER_ADAPTER_URL}}/edrs?assetId={{ASSET_ID}}", + "host": [ + "{{CONSUMER_ADAPTER_URL}}" + ], + "path": [ + "edrs" + ], + "query": [ + { + "key": "assetId", + "value": "{{ASSET_ID}}" + } + ] + } + }, + "response": [] + }, + { + "name": "Get EDR by tp ID", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Body matches string\", function () {", + " var jsonData = pm.response.json();", + " pm.collectionVariables.set(\"NEGOTIATION_ID\", jsonData.id);", + "", + "});" + ], + "type": "text/javascript" + } + } + ], + "protocolProfileBehavior": { + "disableBodyPruning": true + }, + "request": { + "method": "GET", + "header": [], + "body": { + "mode": "raw", + "raw": "", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{CONSUMER_ADAPTER_URL}}/edrs/4b383155-9147-4912-819e-6172b4a3eb02", + "host": [ + "{{CONSUMER_ADAPTER_URL}}" + ], + "path": [ + "edrs", + "4b383155-9147-4912-819e-6172b4a3eb02" + ] + } + }, + "response": [] + }, + { + "name": "Get Asset Data with proxy", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Body matches string\", function () {", + " var jsonData = pm.response.json();", + " pm.collectionVariables.set(\"NEGOTIATION_ID\", jsonData.id);", + "", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"assetId\": \"{{ASSET_ID}}\",\n \"endpointUrl\": \"http://plato-dataplane:8080/api/gateway/aas/1\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://localhost:8186/proxy/aas/request", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "8186", + "path": [ + "proxy", + "aas", + "request" + ] + } + }, + "response": [] + } + ], + "auth": { + "type": "apikey", + "apikey": [ + { + "key": "value", + "value": "password", + "type": "string" + }, + { + "key": "key", + "value": "X-Api-Key", + "type": "string" + } + ] + }, + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ], + "variable": [ + { + "key": "CONSUMER_MANAGEMENT_URL", + "value": "http://localhost:31364/management/v2" + }, + { + "key": "PROVIDER_PROTOCOL_URL", + "value": "http://plato-controlplane:8084/api/v1/dsp" + }, + { + "key": "PROVIDER_MANAGEMENT_URL", + "value": "http://localhost:30279/management/v2" + }, + { + "key": "ASSET_ID", + "value": "1", + "type": "default" + }, + { + "key": "POLICY_ID", + "value": "1", + "type": "default" + }, + { + "key": "CONTRACT_POLICY_ID", + "value": "1", + "type": "default" + }, + { + "key": "ACCESS_POLICY_ID", + "value": "1", + "type": "default" + }, + { + "key": "CONTRACT_DEFINITION_ID", + "value": "1", + "type": "default" + }, + { + "key": "POLICY_BPN", + "value": "BPNSOKRATES", + "type": "default" + }, + { + "key": "NEGOTIATION_ID", + "value": "" + }, + { + "key": "AGREEMENT_ID", + "value": "" + }, + { + "key": "TRANSFER_ID", + "value": "" + }, + { + "key": "TRANSFER_PROCESS_ID", + "value": "" + }, + { + "key": "BACKEND_SERVICE", + "value": "http://backend:8080", + "type": "string" + }, + { + "key": "AGREEMENT-ID", + "value": "" + }, + { + "key": "authCode", + "value": "" + }, + { + "key": "PROVIDER_ID", + "value": "BPNPLATO", + "type": "string" + }, + { + "key": "EDC_NAMESPACE", + "value": "https://w3id.org/edc/v0.0.1/ns/", + "type": "string" + }, + { + "key": "CONSUMER_ADAPTER_URL", + "value": "http://localhost:31364/management/adapter", + "type": "string" + } + ] +} \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/development/postman/images/screenshot.png b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/development/postman/images/screenshot.png new file mode 100644 index 00000000000..8a9d231c673 Binary files /dev/null and b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/development/postman/images/screenshot.png differ diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/development/run-config.png b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/development/run-config.png new file mode 100644 index 00000000000..4be2d85ad69 Binary files /dev/null and b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/development/run-config.png differ diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/development/scripts/daps_token/README.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/development/scripts/daps_token/README.md new file mode 100644 index 00000000000..cbc7475ffd6 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/development/scripts/daps_token/README.md @@ -0,0 +1,27 @@ +# DAPS Token Script + +Script to request an IDS token from the DAPS. + +## Usage + +1. Copy your DAPS private key into `key.pem` +2. Edit in the script the following variables + - `token_url` + - `client_id` + - `resource` +3. Run script + + ```bash + ./daps_auth_sh + ``` + +4. Take the `access_token` from the output in use it in IDS messages. The output of the script looks like this: + + ```json + { + "access_token": "eyJ0eXAiOiJhdCtqd3QiLCJraWQiOiI3MDM2MzAwNzVkYTM2N2IxYmZiYjRjY2Q0N2M1Y2ViMGQ5ZjM1MmRmYWU2MzJkMzYxMGMxNzNmMTM1NDI0NmM5IiwiYWxnIjoiUlMyNTYifQ.eyJzY29wZSI6Imlkc2M6SURTX0NPTk5FQ1RPUl9BVFRSSUJVVEVTX0FMTCIsImF1ZCI6WyJodHRwczovL3Blbi10ZXN0LXBsYXRvLXR4ZGMuaW50LmRlbW8uY2F0ZW5hLXgubmV0L2FwaS92MS9pZHMvZGF0YSJdLCJpc3MiOiJodHRwOi8vaWRzLWRhcHM6NDU2Ny8iLCJzdWIiOiI5OTo4MzpBNzoxNzo4NjpGRjo5ODo5MzpDRTpBMDpERDpBMTpGMTozNjpGQTpGNjowRjo3NTowQToyMzprZXlpZDo5OTo4MzpBNzoxNzo4NjpGRjo5ODo5MzpDRTpBMDpERDpBMTpGMTozNjpGQTpGNjowRjo3NTowQToyMyIsIm5iZiI6MTY3ODMxMDE0OSwiaWF0IjoxNjc4MzEwMTQ5LCJqdGkiOiJkZmY5Y2FmOS05NDZiLTQ1YmMtOWY4My0yYmJkMDI4NTlmYWMiLCJleHAiOjE2NzgzMTM3NDksImNsaWVudF9pZCI6Ijk5OjgzOkE3OjE3Ojg2OkZGOjk4OjkzOkNFOkEwOkREOkExOkYxOjM2OkZBOkY2OjBGOjc1OjBBOjIzOmtleWlkOjk5OjgzOkE3OjE3Ojg2OkZGOjk4OjkzOkNFOkEwOkREOkExOkYxOjM2OkZBOkY2OjBGOjc1OjBBOjIzIiwicmVmZXJyaW5nQ29ubmVjdG9yIjoiaHR0cDovL3BsYXRvLWNvbnRyb2xwbGFuZS9CUE5QTEFUTyJ9.JQqt9gCpaG7rLztO5-pJa7HIybVjKog9v0CFXHoVJZgdxMc5nTKZnuwBVHC1PXuWrBiyPxPoNg0TsfRg9DqF8rFD5noarxOJ1S84BF7AUUi3phQzBF26lsmNmOW_gdNBC-8xw1WMo5hRHH56cB64_x4V8T4VwFlSYYrmA5ge_EiPCW_KWF9sNguXBKs8uTbLB3lvTELGTjmZI93tVR-vYuYzW2jxH1PJNW29KJRQcM0D1AiveMs3_ThRjheEvugyh9QIY1RwPXMgYQpSTvoumNuFFTnpR21ueWfSUtU-4Qu9suNTkcaFihvEObXVrhyMja-HjhQaC8i0XsAgY0tT1A", + "expires_in": 3600, + "token_type": "bearer", + "scope": "idsc:IDS_CONNECTOR_ATTRIBUTES_ALL" + } + ``` diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/development/scripts/daps_token/daps_auth.sh b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/development/scripts/daps_token/daps_auth.sh new file mode 100755 index 00000000000..2835a2e6152 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/development/scripts/daps_token/daps_auth.sh @@ -0,0 +1,45 @@ +#!/bin/bash + +#################################################### +# Update these variables before running the script # +#################################################### +token_url="https://mydaps/token" +client_id="99:83:A7:17:86:FF:98:93:CE:A0:DD:A1:F1:36:FF:F6:0F:75:0A:23:keyid:99:83:A7:17:86:FF:98:93:CE:A0:DD:A1:F1:36:FA:F6:0F:75:0A:24" +# resource is later used as token audience, so it must be the IDS url of the token receiving connector +resource="https://receiving-connector/api/v1/ids/data" + + +base64_encode() +{ + declare input=${1:-$( +`ContractAgreement`) between two parties. This process is inherently asynchronous. + +#### Contract agreement + +A contract agreement represents the agreed-upon terms of access and usage of an asset's data between two data space +participants, including a start and an end date and further relevant information. + +#### Transfer process + +After a successful contract negotiation, `DataRequests` can be sent from the consumer connector to the provider connector to initiate the data transfer. It references the requested [`Asset`](#data asset) and [`ContractAgreement`](#contract-agreement) as well as information about the [data destination](#data-address). + +Similar to the `ContractNegotiation`, this object captures the current state of a data transfer. This process is +inherently asynchronous, so the `TransferProcess` objects are stored in a backing data store (`TransferProcessStore`). + +## Notice + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2023 sovity GmbH +- SPDX-FileCopyrightText: 2023 msg systems AG +- SPDX-FileCopyrightText: 2023 Mercedes-Benz Group AG +- Source URL: [https://github.com/eclipse-tractusx/tractusx-edc](https://github.com/eclipse-tractusx/tractusx-edc) + +[edc-url]: https://github.com/eclipse-edc/Connector +[gaiax-url]: https://www.data-infrastructure.eu/GAIAX/Navigation/EN/Home/home.html +[idsa-url]: https://internationaldataspaces.org/ +[miw-url]: https://github.com/eclipse-tractusx/managed-identity-wallet +[traceability-url]: https://github.com/eclipse-tractusx/traceability-foss +[sustainability-url]: https://github.com/ChristopherWinterZF/pcf-exchange-kit/tree/featurebranch/devlopmentview +[BPDM-url]: https://github.com/eclipse-tractusx/bpdm +[DCM-url]: https://github.com/eclipse-tractusx/demand-capacity-mgmt/blob/main/README.md +[PURIS-url]: https://github.com/eclipse-tractusx/puris +[digital-product-pass-url]:https://github.com/eclipse-tractusx/digital-product-pass +[Catena-X-Standards-url]:https://catena-x.net/de/standard-library +[CX0002]:https://catena-x.net/fileadmin/user_upload/Standard-Bibliothek/Archiv/Update_Juli_23_R_3.2/CX-0002-DigitalTwinsInCatena-X-v.1.0.2.pdf +[CX0003]:https://catena-x.net/fileadmin/user_upload/Standard-Bibliothek/Archiv/Update_Juli_23_R_3.2/CX-0003-SAMMSemanticAspectMetaModel-v.1.0.2.pdf +[CX0008]:https://catena-x.net/fileadmin/user_upload/Standard-Bibliothek/Update_PDF_Maerz/6_Onboarding/CX_-_0008_Conformity_Assessment_PlatformCapabilityOnboarding_v_1.0.1.pdf +[CX0018]:https://catena-x.net/fileadmin/user_upload/Standard-Bibliothek/Update_PDF_Maerz/3_Sovereign_Data_Exchange/CX_-_0018_EDC_PlatformCapabilitySovereignDataExchange_v_1.0.1.pdf +[CX044]:https://catena-x.net/fileadmin/user_upload/Standard-Bibliothek/Archiv/Update_Juli_23_R_3.2/CX-0044-ECLASS-v1.0.2.pdf +[CX0047]:https://catena-x.net/fileadmin/user_upload/Standard-Bibliothek/Archiv/Update_Juli_23_R_3.2/CX-0047-DemandCapacityManagementDataModels-v1.0.0.pdf +[CX0059]:https://catena-x.net/fileadmin/user_upload/Standard-Bibliothek/Archiv/Update_Juli_23_R_3.2/CX-0059-TriangleBehavioralTwinEndurancePredictorService-v.1.0.0.pdf diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/add-entry.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/add-entry.api.mdx new file mode 100644 index 00000000000..d0e202c230b --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/add-entry.api.mdx @@ -0,0 +1,38 @@ +--- +id: add-entry +title: "addEntry" +description: "Adds one datatplane instance to the internal database of the selector" +sidebar_label: "addEntry" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Dataplane Selector"],"description":"Adds one datatplane instance to the internal database of the selector","operationId":"addEntry","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"@id":{"type":"string","example":null},"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/DataPlaneInstance"},"allowedDestTypes":{"uniqueItems":true,"type":"array","example":null,"items":{"type":"string","example":null}},"allowedSourceTypes":{"uniqueItems":true,"type":"array","example":null,"items":{"type":"string","example":null}},"lastActive":{"type":"integer","format":"int64","example":null},"turnCount":{"type":"integer","format":"int32","example":null},"url":{"type":"string","format":"url","example":null}},"example":{"@id":"your-dataplane-id","url":"http://somewhere.com:1234/api/v1","allowedSourceTypes":["source-type1","source-type2"],"allowedDestTypes":["your-dest-type"]}}}}},"responses":{"200":{"description":"Entry was added successfully to the database"},"400":{"description":"Request body was malformed","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}}},"method":"post","path":"/v2/dataplanes","servers":[{"url":"/"}],"jsonRequestBodyExample":{"@id":"your-dataplane-id","url":"http://somewhere.com:1234/api/v1","allowedSourceTypes":["source-type1","source-type2"],"allowedDestTypes":["your-dest-type"]},"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"add Entry","description":{"content":"Adds one datatplane instance to the internal database of the selector","type":"text/plain"},"url":{"path":["v2","dataplanes"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## addEntry + + + +Adds one datatplane instance to the internal database of the selector + +
      Request Body
      + +Entry was added successfully to the database + +
      + +Request body was malformed + +
      Schema array
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/call-deprovision-webhook.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/call-deprovision-webhook.api.mdx new file mode 100644 index 00000000000..fec02ab0242 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/call-deprovision-webhook.api.mdx @@ -0,0 +1,30 @@ +--- +id: call-deprovision-webhook +title: "callDeprovisionWebhook" +description: "" +sidebar_label: "callDeprovisionWebhook" +hide_title: true +hide_table_of_contents: true +api: {"tags":["HTTP Provisioner Webhook"],"description":null,"operationId":"callDeprovisionWebhook","parameters":[{"name":"processId","in":"path","required":true,"style":"simple","explode":false,"schema":{"type":"string","example":null}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean","example":null},"errorMessage":{"type":"string","example":null},"inProcess":{"type":"boolean","example":null},"provisionedResourceId":{"type":"string","example":null}},"example":null}}}},"responses":{"default":{"description":"default response"}},"method":"post","path":"/callback/{processId}/deprovision","servers":[{"url":"/"}],"jsonRequestBodyExample":null,"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"call Deprovision Webhook","description":{"type":"text/plain"},"url":{"path":["callback",":processId","deprovision"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"","key":"processId"}]},"header":[{"key":"Content-Type","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## callDeprovisionWebhook + +
      Path Parameters
      Request Body
      + +default response + +
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/call-provision-webhook.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/call-provision-webhook.api.mdx new file mode 100644 index 00000000000..03e4812c84f --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/call-provision-webhook.api.mdx @@ -0,0 +1,30 @@ +--- +id: call-provision-webhook +title: "callProvisionWebhook" +description: "" +sidebar_label: "callProvisionWebhook" +hide_title: true +hide_table_of_contents: true +api: {"tags":["HTTP Provisioner Webhook"],"description":null,"operationId":"callProvisionWebhook","parameters":[{"name":"processId","in":"path","required":true,"style":"simple","explode":false,"schema":{"type":"string","example":null}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"apiKeyJwt":{"type":"string","example":null},"assetId":{"type":"string","example":null},"contentDataAddress":{"type":"object","properties":{"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/DataAddress"},"type":{"type":"string","example":null}},"example":null},"hasToken":{"type":"boolean","example":null},"resourceDefinitionId":{"type":"string","example":null},"resourceName":{"type":"string","example":null}},"example":null}}}},"responses":{"default":{"description":"default response"}},"method":"post","path":"/callback/{processId}/provision","servers":[{"url":"/"}],"jsonRequestBodyExample":null,"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"call Provision Webhook","description":{"type":"text/plain"},"url":{"path":["callback",":processId","provision"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"","key":"processId"}]},"header":[{"key":"Content-Type","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## callProvisionWebhook + +
      Path Parameters
      Request Body
        contentDataAddress object
      + +default response + +
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/cancel-negotiation.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/cancel-negotiation.api.mdx new file mode 100644 index 00000000000..0896f3cfc3d --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/cancel-negotiation.api.mdx @@ -0,0 +1,46 @@ +--- +id: cancel-negotiation +title: "cancelNegotiation" +description: "Requests aborting the contract negotiation. Due to the asynchronous nature of contract negotiations, a successful response only indicates that the request was successfully received. Clients must poll the /{id}/state endpoint to track the state." +sidebar_label: "cancelNegotiation" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Contract Negotiation"],"description":"Requests aborting the contract negotiation. Due to the asynchronous nature of contract negotiations, a successful response only indicates that the request was successfully received. Clients must poll the /{id}/state endpoint to track the state.","operationId":"cancelNegotiation","parameters":[{"name":"id","in":"path","required":true,"style":"simple","explode":false,"schema":{"type":"string","example":null}}],"responses":{"200":{"description":"Request to cancel the Contract negotiation was successfully received","links":{"poll-state":{"operationId":"getNegotiationState"}}},"400":{"description":"Request was malformed, e.g. id was null","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}},"404":{"description":"A contract negotiation with the given ID does not exist","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}}},"deprecated":true,"method":"post","path":"/v2/contractnegotiations/{id}/cancel","servers":[{"url":"/"}],"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"cancel Negotiation","description":{"content":"Requests aborting the contract negotiation. Due to the asynchronous nature of contract negotiations, a successful response only indicates that the request was successfully received. Clients must poll the /{id}/state endpoint to track the state.","type":"text/plain"},"url":{"path":["v2","contractnegotiations",":id","cancel"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"","key":"id"}]},"header":[{"key":"Accept","value":"application/json"}],"method":"POST"}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## cancelNegotiation + +:::caution deprecated + +This endpoint has been deprecated and may be removed in future versions of the API. + +::: + +Requests aborting the contract negotiation. Due to the asynchronous nature of contract negotiations, a successful response only indicates that the request was successfully received. Clients must poll the /{id}/state endpoint to track the state. + +
      Path Parameters
      + +Request to cancel the Contract negotiation was successfully received + +
      + +Request was malformed, e.g. id was null + +
      Schema array
      + +A contract negotiation with the given ID does not exist + +
      Schema array
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/check-health.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/check-health.api.mdx new file mode 100644 index 00000000000..91984211206 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/check-health.api.mdx @@ -0,0 +1,34 @@ +--- +id: check-health +title: "checkHealth" +description: "Performs a liveness probe to determine whether the runtime is working properly." +sidebar_label: "checkHealth" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Application Observability"],"description":"Performs a liveness probe to determine whether the runtime is working properly.","operationId":"checkHealth","responses":{"200":{"description":"The runtime is working properly.","content":{"application/json":{"schema":{"type":"object","properties":{"componentResults":{"type":"array","example":null,"items":{"type":"object","properties":{"component":{"type":"string","example":null},"failure":{"type":"object","properties":{"failureDetail":{"type":"string","example":null},"messages":{"type":"array","example":null,"items":{"type":"string","example":null}}},"example":null},"isHealthy":{"type":"boolean","example":null}},"example":null}},"isSystemHealthy":{"type":"boolean","example":null}},"example":null}}}}},"method":"get","path":"/check/health","servers":[{"url":"/"}],"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"check Health","description":{"content":"Performs a liveness probe to determine whether the runtime is working properly.","type":"text/plain"},"url":{"path":["check","health"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## checkHealth + + + +Performs a liveness probe to determine whether the runtime is working properly. + +
      + +The runtime is working properly. + +
      Schema
        componentResults object[]
        failure object
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/complete.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/complete.api.mdx new file mode 100644 index 00000000000..9b2b2dc86fa --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/complete.api.mdx @@ -0,0 +1,34 @@ +--- +id: complete +title: "complete" +description: "Requests completion of the transfer process. Due to the asynchronous nature of transfers, a successful response only indicates that the request was successfully received" +sidebar_label: "complete" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Transfer Process Control Api"],"description":"Requests completion of the transfer process. Due to the asynchronous nature of transfers, a successful response only indicates that the request was successfully received","operationId":"complete","parameters":[{"name":"processId","in":"path","required":true,"style":"simple","explode":false,"schema":{"type":"string","example":null}}],"responses":{"400":{"description":"Request was malformed, e.g. id was null","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}}},"method":"post","path":"/transferprocess/{processId}/complete","servers":[{"url":"/"}],"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"complete","description":{"content":"Requests completion of the transfer process. Due to the asynchronous nature of transfers, a successful response only indicates that the request was successfully received","type":"text/plain"},"url":{"path":["transferprocess",":processId","complete"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"","key":"processId"}]},"header":[{"key":"Accept","value":"application/json"}],"method":"POST"}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## complete + + + +Requests completion of the transfer process. Due to the asynchronous nature of transfers, a successful response only indicates that the request was successfully received + +
      Path Parameters
      + +Request was malformed, e.g. id was null + +
      Schema array
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/create-asset-1.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/create-asset-1.api.mdx new file mode 100644 index 00000000000..ea5910a295c --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/create-asset-1.api.mdx @@ -0,0 +1,42 @@ +--- +id: create-asset-1 +title: "createAsset_1" +description: "Creates a new asset together with a data address" +sidebar_label: "createAsset_1" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Asset"],"description":"Creates a new asset together with a data address","operationId":"createAsset_1","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"@id":{"type":"string","example":null},"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/Asset"},"dataAddress":{"type":"object","properties":{"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/DataAddress"},"type":{"type":"string","example":null}},"example":null},"privateProperties":{"type":"object","additionalProperties":{"type":"object","example":null},"example":null},"properties":{"type":"object","additionalProperties":{"type":"object","example":null},"example":null}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@id":"definition-id","properties":{"key":"value"},"privateProperties":{"privateKey":"privateValue"},"dataAddress":{"type":"HttpData"}}}}}},"responses":{"200":{"description":"Asset was created successfully. Returns the asset Id and created timestamp","content":{"application/json":{"schema":{"type":"object","properties":{"@id":{"type":"string","example":null},"createdAt":{"type":"integer","format":"int64","example":null}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@id":"id-value","createdAt":1688465655}}}}},"400":{"description":"Request body was malformed","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}},"409":{"description":"Could not create asset, because an asset with that ID already exists","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}}},"method":"post","path":"/v3/assets","servers":[{"url":"/"}],"jsonRequestBodyExample":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@id":"definition-id","properties":{"key":"value"},"privateProperties":{"privateKey":"privateValue"},"dataAddress":{"type":"HttpData"}},"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"create Asset 1","description":{"content":"Creates a new asset together with a data address","type":"text/plain"},"url":{"path":["v3","assets"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## createAsset_1 + + + +Creates a new asset together with a data address + +
      Request Body
        dataAddress object
        privateProperties object
      • property name* object
      • properties object
      • property name* object
      + +Asset was created successfully. Returns the asset Id and created timestamp + +
      Schema
      + +Request body was malformed + +
      Schema array
      + +Could not create asset, because an asset with that ID already exists + +
      Schema array
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/create-asset.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/create-asset.api.mdx new file mode 100644 index 00000000000..e02f83083af --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/create-asset.api.mdx @@ -0,0 +1,46 @@ +--- +id: create-asset +title: "createAsset" +description: "Creates a new asset together with a data address" +sidebar_label: "createAsset" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Asset"],"description":"Creates a new asset together with a data address","operationId":"createAsset","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"asset":{"type":"object","properties":{"createdAt":{"type":"integer","format":"int64","example":null},"dataAddress":{"type":"object","properties":{"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/DataAddress"},"type":{"type":"string","example":null}},"example":null},"id":{"type":"string","example":null},"privateProperties":{"type":"object","additionalProperties":{"type":"object","example":null},"example":null},"properties":{"type":"object","additionalProperties":{"type":"object","example":null},"example":null}},"example":null},"dataAddress":{"type":"object","properties":{"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/DataAddress"},"type":{"type":"string","example":null}},"example":null}},"example":null}}}},"responses":{"200":{"description":"Asset was created successfully. Returns the asset Id and created timestamp","content":{"application/json":{"schema":{"type":"object","properties":{"@id":{"type":"string","example":null},"createdAt":{"type":"integer","format":"int64","example":null}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@id":"id-value","createdAt":1688465655}}}}},"400":{"description":"Request body was malformed","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}},"409":{"description":"Could not create asset, because an asset with that ID already exists","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}}},"deprecated":true,"method":"post","path":"/v2/assets","servers":[{"url":"/"}],"jsonRequestBodyExample":null,"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"create Asset","description":{"content":"Creates a new asset together with a data address","type":"text/plain"},"url":{"path":["v2","assets"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## createAsset + +:::caution deprecated + +This endpoint has been deprecated and may be removed in future versions of the API. + +::: + +Creates a new asset together with a data address + +
      Request Body
        asset object
        dataAddress object
        privateProperties object
      • property name* object
      • properties object
      • property name* object
      • dataAddress object
      + +Asset was created successfully. Returns the asset Id and created timestamp + +
      Schema
      + +Request body was malformed + +
      Schema array
      + +Could not create asset, because an asset with that ID already exists + +
      Schema array
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/create-contract-definition.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/create-contract-definition.api.mdx new file mode 100644 index 00000000000..109efe0dad0 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/create-contract-definition.api.mdx @@ -0,0 +1,42 @@ +--- +id: create-contract-definition +title: "createContractDefinition" +description: "Creates a new contract definition" +sidebar_label: "createContractDefinition" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Contract Definition"],"description":"Creates a new contract definition","operationId":"createContractDefinition","requestBody":{"content":{"*/*":{"schema":{"type":"object","properties":{"@id":{"type":"string","example":null},"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/ContractDefinition"},"accessPolicyId":{"type":"string","example":null},"assetsSelector":{"type":"array","example":null,"items":{"type":"object","properties":{"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/Criterion"},"operandLeft":{"type":"object","example":null},"operandRight":{"type":"object","example":null},"operator":{"type":"string","example":null}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@type":"Criterion","operandLeft":"fieldName","operator":"=","operandRight":"some value"}}},"contractPolicyId":{"type":"string","example":null}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@id":"definition-id","accessPolicyId":"asset-policy-id","contractPolicyId":"contract-policy-id","assetsSelector":[]}}}}},"responses":{"200":{"description":"contract definition was created successfully. Returns the Contract Definition Id and created timestamp","content":{"application/json":{"schema":{"type":"object","properties":{"@id":{"type":"string","example":null},"createdAt":{"type":"integer","format":"int64","example":null}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@id":"id-value","createdAt":1688465655}}}}},"400":{"description":"Request body was malformed","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}},"409":{"description":"Could not create contract definition, because a contract definition with that ID already exists","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}}},"method":"post","path":"/v2/contractdefinitions","servers":[{"url":"/"}],"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"create Contract Definition","description":{"content":"Creates a new contract definition","type":"text/plain"},"url":{"path":["v2","contractdefinitions"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"*/*"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\""}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## createContractDefinition + + + +Creates a new contract definition + +
      Request Body
        assetsSelector object[]
      + +contract definition was created successfully. Returns the Contract Definition Id and created timestamp + +
      Schema
      + +Request body was malformed + +
      Schema array
      + +Could not create contract definition, because a contract definition with that ID already exists + +
      Schema array
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/create-entry.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/create-entry.api.mdx new file mode 100644 index 00000000000..86f700b2a66 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/create-entry.api.mdx @@ -0,0 +1,42 @@ +--- +id: create-entry +title: "createEntry" +description: "Creates an entry for a particular BPN" +sidebar_label: "createEntry" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Business Partner Group"],"description":"Creates an entry for a particular BPN","operationId":"createEntry","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"@id":{"type":"string","example":null},"groups":{"uniqueItems":true,"type":"array","example":null,"items":{"type":"string","example":null}}},"example":{"@context":{"tx":"https://w3id.org/tractusx/v0.0.1/ns/"},"@id":"tx:BPN000001234","tx:groups":["group1","group2","group3"]}}}}},"responses":{"204":{"description":"The object was successfully created"},"400":{"description":"Request body was malformed","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}},"409":{"description":"An entry already exists for that BPN"}},"method":"post","path":"/business-partner-groups","servers":[{"url":"/"}],"jsonRequestBodyExample":{"@context":{"tx":"https://w3id.org/tractusx/v0.0.1/ns/"},"@id":"tx:BPN000001234","tx:groups":["group1","group2","group3"]},"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"create Entry","description":{"content":"Creates an entry for a particular BPN","type":"text/plain"},"url":{"path":["business-partner-groups"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## createEntry + + + +Creates an entry for a particular BPN + +
      Request Body
      + +The object was successfully created + +
      + +Request body was malformed + +
      Schema array
      + +An entry already exists for that BPN + +
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/create-policy-definition.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/create-policy-definition.api.mdx new file mode 100644 index 00000000000..5152dbec5c7 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/create-policy-definition.api.mdx @@ -0,0 +1,42 @@ +--- +id: create-policy-definition +title: "createPolicyDefinition" +description: "Creates a new policy definition" +sidebar_label: "createPolicyDefinition" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Policy Definition"],"description":"Creates a new policy definition","operationId":"createPolicyDefinition","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"@id":{"type":"string","example":null},"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/PolicyDefinition"},"policy":{"type":"object","properties":{"@type":{"type":"string","example":null,"enum":["SET","OFFER","CONTRACT"]},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"extensibleProperties":{"type":"object","additionalProperties":{"type":"object","example":null},"example":null},"inheritsFrom":{"type":"string","example":null},"obligations":{"type":"array","example":null,"items":{"type":"object","properties":{"action":{"type":"object","properties":{"constraint":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}},"includedIn":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"consequence":"circular()","constraints":{"type":"array","example":null,"items":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}}},"parentPermission":{"type":"object","properties":{"action":{"type":"object","properties":{"constraint":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}},"includedIn":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"constraints":{"type":"array","example":null,"items":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}}},"duties":{"type":"array","example":null,"items":"circular()"},"target":{"type":"string","example":null}},"example":null},"target":{"type":"string","example":null}},"example":null}},"permissions":{"type":"array","example":null,"items":{"type":"object","properties":{"action":{"type":"object","properties":{"constraint":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}},"includedIn":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"constraints":{"type":"array","example":null,"items":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}}},"duties":{"type":"array","example":null,"items":{"type":"object","properties":{"action":{"type":"object","properties":{"constraint":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}},"includedIn":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"consequence":"circular()","constraints":{"type":"array","example":null,"items":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}}},"parentPermission":"circular()","target":{"type":"string","example":null}},"example":null}},"target":{"type":"string","example":null}},"example":null}},"prohibitions":{"type":"array","example":null,"items":{"type":"object","properties":{"action":{"type":"object","properties":{"constraint":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}},"includedIn":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"constraints":{"type":"array","example":null,"items":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}}},"target":{"type":"string","example":null}},"example":null}},"target":{"type":"string","example":null}},"example":null}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@id":"definition-id","policy":{"@context":"http://www.w3.org/ns/odrl.jsonld","@type":"Set","uid":"http://example.com/policy:1010","permission":[{"target":"http://example.com/asset:9898.movie","action":"display","constraint":[{"leftOperand":"spatial","operator":"eq","rightOperand":"https://www.wikidata.org/wiki/Q183","comment":"i.e Germany"}]}]}}}}}},"responses":{"200":{"description":"policy definition was created successfully. Returns the Policy Definition Id and created timestamp","content":{"application/json":{"schema":{"type":"object","properties":{"@id":{"type":"string","example":null},"createdAt":{"type":"integer","format":"int64","example":null}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@id":"id-value","createdAt":1688465655}}}}},"400":{"description":"Request body was malformed","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}},"409":{"description":"Could not create policy definition, because a contract definition with that ID already exists","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}}},"method":"post","path":"/v2/policydefinitions","servers":[{"url":"/"}],"jsonRequestBodyExample":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@id":"definition-id","policy":{"@context":"http://www.w3.org/ns/odrl.jsonld","@type":"Set","uid":"http://example.com/policy:1010","permission":[{"target":"http://example.com/asset:9898.movie","action":"display","constraint":[{"leftOperand":"spatial","operator":"eq","rightOperand":"https://www.wikidata.org/wiki/Q183","comment":"i.e Germany"}]}]}},"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"create Policy Definition","description":{"content":"Creates a new policy definition","type":"text/plain"},"url":{"path":["v2","policydefinitions"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## createPolicyDefinition + + + +Creates a new policy definition + +
      Request Body
        policy object
        extensibleProperties object
      • property name* object
      • obligations object[]
        action object
        constraint object
        constraints object[]
        parentPermission object
        action object
        constraint object
        constraints object[]
        permissions object[]
        action object
        constraint object
        constraints object[]
        duties object[]
        action object
        constraint object
        constraints object[]
        prohibitions object[]
        action object
        constraint object
        constraints object[]
      + +policy definition was created successfully. Returns the Policy Definition Id and created timestamp + +
      Schema
      + +Request body was malformed + +
      Schema array
      + +Could not create policy definition, because a contract definition with that ID already exists + +
      Schema array
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/decline-negotiation.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/decline-negotiation.api.mdx new file mode 100644 index 00000000000..f6ee5a16784 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/decline-negotiation.api.mdx @@ -0,0 +1,46 @@ +--- +id: decline-negotiation +title: "declineNegotiation" +description: "Requests cancelling the contract negotiation. Due to the asynchronous nature of contract negotiations, a successful response only indicates that the request was successfully received. Clients must poll the /{id}/state endpoint to track the state." +sidebar_label: "declineNegotiation" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Contract Negotiation"],"description":"Requests cancelling the contract negotiation. Due to the asynchronous nature of contract negotiations, a successful response only indicates that the request was successfully received. Clients must poll the /{id}/state endpoint to track the state.","operationId":"declineNegotiation","parameters":[{"name":"id","in":"path","required":true,"style":"simple","explode":false,"schema":{"type":"string","example":null}}],"responses":{"200":{"description":"Request to decline the Contract negotiation was successfully received","links":{"poll-state":{"operationId":"getNegotiationState"}}},"400":{"description":"Request was malformed, e.g. id was null","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}},"404":{"description":"A contract negotiation with the given ID does not exist","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}}},"deprecated":true,"method":"post","path":"/v2/contractnegotiations/{id}/decline","servers":[{"url":"/"}],"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"decline Negotiation","description":{"content":"Requests cancelling the contract negotiation. Due to the asynchronous nature of contract negotiations, a successful response only indicates that the request was successfully received. Clients must poll the /{id}/state endpoint to track the state.","type":"text/plain"},"url":{"path":["v2","contractnegotiations",":id","decline"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"","key":"id"}]},"header":[{"key":"Accept","value":"application/json"}],"method":"POST"}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## declineNegotiation + +:::caution deprecated + +This endpoint has been deprecated and may be removed in future versions of the API. + +::: + +Requests cancelling the contract negotiation. Due to the asynchronous nature of contract negotiations, a successful response only indicates that the request was successfully received. Clients must poll the /{id}/state endpoint to track the state. + +
      Path Parameters
      + +Request to decline the Contract negotiation was successfully received + +
      + +Request was malformed, e.g. id was null + +
      Schema array
      + +A contract negotiation with the given ID does not exist + +
      Schema array
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/delete-contract-definition.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/delete-contract-definition.api.mdx new file mode 100644 index 00000000000..cbfb024c97a --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/delete-contract-definition.api.mdx @@ -0,0 +1,42 @@ +--- +id: delete-contract-definition +title: "deleteContractDefinition" +description: "Removes a contract definition with the given ID if possible. DANGER ZONE: Note that deleting contract definitions can have unexpected results, especially for contract offers that have been sent out or ongoing or contract negotiations." +sidebar_label: "deleteContractDefinition" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Contract Definition"],"description":"Removes a contract definition with the given ID if possible. DANGER ZONE: Note that deleting contract definitions can have unexpected results, especially for contract offers that have been sent out or ongoing or contract negotiations.","operationId":"deleteContractDefinition","parameters":[{"name":"id","in":"path","required":true,"style":"simple","explode":false,"schema":{"type":"string","example":null}}],"responses":{"200":{"description":"Contract definition was deleted successfully"},"400":{"description":"Request was malformed, e.g. id was null","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}},"404":{"description":"A contract definition with the given ID does not exist","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}}},"method":"delete","path":"/v2/contractdefinitions/{id}","servers":[{"url":"/"}],"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"delete Contract Definition","description":{"content":"Removes a contract definition with the given ID if possible. DANGER ZONE: Note that deleting contract definitions can have unexpected results, especially for contract offers that have been sent out or ongoing or contract negotiations.","type":"text/plain"},"url":{"path":["v2","contractdefinitions",":id"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"","key":"id"}]},"header":[{"key":"Accept","value":"application/json"}],"method":"DELETE"}} +sidebar_class_name: "delete api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## deleteContractDefinition + + + +Removes a contract definition with the given ID if possible. DANGER ZONE: Note that deleting contract definitions can have unexpected results, especially for contract offers that have been sent out or ongoing or contract negotiations. + +
      Path Parameters
      + +Contract definition was deleted successfully + +
      + +Request was malformed, e.g. id was null + +
      Schema array
      + +A contract definition with the given ID does not exist + +
      Schema array
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/delete-edr.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/delete-edr.api.mdx new file mode 100644 index 00000000000..9bd3a565aec --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/delete-edr.api.mdx @@ -0,0 +1,42 @@ +--- +id: delete-edr +title: "deleteEdr" +description: "Delete an EDR with the given transfer process ID" +sidebar_label: "deleteEdr" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Control Plane EDR Api"],"description":"Delete an EDR with the given transfer process ID","operationId":"deleteEdr","parameters":[{"name":"id","in":"path","required":true,"style":"simple","explode":false,"schema":{"type":"string","example":null}}],"responses":{"200":{"description":"The EDR cached","content":{"application/json":{"schema":{"type":"object","properties":{"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/DataAddress"},"type":{"type":"string","example":null}},"example":null}}}},"400":{"description":"Request was malformed, e.g. id was null","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}},"404":{"description":"An EDR with the given ID does not exist","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}}},"method":"delete","path":"/edrs/{id}","servers":[{"url":"/"}],"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"delete Edr","description":{"content":"Delete an EDR with the given transfer process ID","type":"text/plain"},"url":{"path":["edrs",":id"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"","key":"id"}]},"header":[{"key":"Accept","value":"application/json"}],"method":"DELETE"}} +sidebar_class_name: "delete api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## deleteEdr + + + +Delete an EDR with the given transfer process ID + +
      Path Parameters
      + +The EDR cached + +
      Schema
      + +Request was malformed, e.g. id was null + +
      Schema array
      + +An EDR with the given ID does not exist + +
      Schema array
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/delete-entry.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/delete-entry.api.mdx new file mode 100644 index 00000000000..ec4c6a9d606 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/delete-entry.api.mdx @@ -0,0 +1,42 @@ +--- +id: delete-entry +title: "deleteEntry" +description: "Deletes the entry for a particular BPN" +sidebar_label: "deleteEntry" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Business Partner Group"],"description":"Deletes the entry for a particular BPN","operationId":"deleteEntry","parameters":[{"name":"bpn","in":"path","description":"The business partner number","required":true,"style":"simple","explode":false,"schema":{"type":"string","example":null}}],"responses":{"204":{"description":"The object was successfully deleted"},"400":{"description":"Request body was malformed","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}},"404":{"description":"No entry for the given BPN was found"}},"method":"delete","path":"/business-partner-groups/{bpn}","servers":[{"url":"/"}],"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"delete Entry","description":{"content":"Deletes the entry for a particular BPN","type":"text/plain"},"url":{"path":["business-partner-groups",":bpn"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) The business partner number","type":"text/plain"},"type":"any","value":"","key":"bpn"}]},"header":[{"key":"Accept","value":"application/json"}],"method":"DELETE"}} +sidebar_class_name: "delete api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## deleteEntry + + + +Deletes the entry for a particular BPN + +
      Path Parameters
      + +The object was successfully deleted + +
      + +Request body was malformed + +
      Schema array
      + +No entry for the given BPN was found + +
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/delete-policy-definition.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/delete-policy-definition.api.mdx new file mode 100644 index 00000000000..050f026ab93 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/delete-policy-definition.api.mdx @@ -0,0 +1,46 @@ +--- +id: delete-policy-definition +title: "deletePolicyDefinition" +description: "Removes a policy definition with the given ID if possible. Deleting a policy definition is only possible if that policy definition is not yet referenced by a contract definition, in which case an error is returned. DANGER ZONE: Note that deleting policy definitions can have unexpected results, do this at your own risk!" +sidebar_label: "deletePolicyDefinition" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Policy Definition"],"description":"Removes a policy definition with the given ID if possible. Deleting a policy definition is only possible if that policy definition is not yet referenced by a contract definition, in which case an error is returned. DANGER ZONE: Note that deleting policy definitions can have unexpected results, do this at your own risk!","operationId":"deletePolicyDefinition","parameters":[{"name":"id","in":"path","required":true,"style":"simple","explode":false,"schema":{"type":"string","example":null}}],"responses":{"200":{"description":"Policy definition was deleted successfully"},"400":{"description":"Request was malformed, e.g. id was null","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}},"404":{"description":"An policy definition with the given ID does not exist","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}},"409":{"description":"The policy definition cannot be deleted, because it is referenced by a contract definition","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}}},"method":"delete","path":"/v2/policydefinitions/{id}","servers":[{"url":"/"}],"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"delete Policy Definition","description":{"content":"Removes a policy definition with the given ID if possible. Deleting a policy definition is only possible if that policy definition is not yet referenced by a contract definition, in which case an error is returned. DANGER ZONE: Note that deleting policy definitions can have unexpected results, do this at your own risk!","type":"text/plain"},"url":{"path":["v2","policydefinitions",":id"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"","key":"id"}]},"header":[{"key":"Accept","value":"application/json"}],"method":"DELETE"}} +sidebar_class_name: "delete api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## deletePolicyDefinition + + + +Removes a policy definition with the given ID if possible. Deleting a policy definition is only possible if that policy definition is not yet referenced by a contract definition, in which case an error is returned. DANGER ZONE: Note that deleting policy definitions can have unexpected results, do this at your own risk! + +
      Path Parameters
      + +Policy definition was deleted successfully + +
      + +Request was malformed, e.g. id was null + +
      Schema array
      + +An policy definition with the given ID does not exist + +
      Schema array
      + +The policy definition cannot be deleted, because it is referenced by a contract definition + +
      Schema array
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/delete.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/delete.api.mdx new file mode 100644 index 00000000000..5250dba6f1c --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/delete.api.mdx @@ -0,0 +1,42 @@ +--- +id: delete +title: "delete" +description: "Send `DELETE` data query to the Data Plane." +sidebar_label: "delete" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Data Plane public API"],"description":"Send `DELETE` data query to the Data Plane.","operationId":"delete","responses":{"400":{"description":"Missing access token"},"403":{"description":"Access token is expired or invalid"},"500":{"description":"Failed to transfer data"}},"method":"delete","path":"/{any}","servers":[{"url":"/"}],"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"delete","description":{"content":"Send `DELETE` data query to the Data Plane.","type":"text/plain"},"url":{"path":[":any"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"method":"DELETE"}} +sidebar_class_name: "delete api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## delete + + + +Send `DELETE` data query to the Data Plane. + +
      + +Missing access token + +
      + +Access token is expired or invalid + +
      + +Failed to transfer data + +
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/deprovision-transfer-process.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/deprovision-transfer-process.api.mdx new file mode 100644 index 00000000000..43cb69dab32 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/deprovision-transfer-process.api.mdx @@ -0,0 +1,42 @@ +--- +id: deprovision-transfer-process +title: "deprovisionTransferProcess" +description: "Requests the deprovisioning of resources associated with a transfer process. Due to the asynchronous nature of transfers, a successful response only indicates that the request was successfully received. This may take a long time, so clients must poll the /{id}/state endpoint to track the state." +sidebar_label: "deprovisionTransferProcess" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Transfer Process"],"description":"Requests the deprovisioning of resources associated with a transfer process. Due to the asynchronous nature of transfers, a successful response only indicates that the request was successfully received. This may take a long time, so clients must poll the /{id}/state endpoint to track the state.","operationId":"deprovisionTransferProcess","parameters":[{"name":"id","in":"path","required":true,"style":"simple","explode":false,"schema":{"type":"string","example":null}}],"responses":{"200":{"description":"Request to deprovision the transfer process was successfully received","links":{"poll-state":{"operationId":"getTransferProcessState"}}},"400":{"description":"Request was malformed, e.g. id was null","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}},"404":{"description":"A contract negotiation with the given ID does not exist","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}}},"method":"post","path":"/v2/transferprocesses/{id}/deprovision","servers":[{"url":"/"}],"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"deprovision Transfer Process","description":{"content":"Requests the deprovisioning of resources associated with a transfer process. Due to the asynchronous nature of transfers, a successful response only indicates that the request was successfully received. This may take a long time, so clients must poll the /{id}/state endpoint to track the state.","type":"text/plain"},"url":{"path":["v2","transferprocesses",":id","deprovision"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"","key":"id"}]},"header":[{"key":"Accept","value":"application/json"}],"method":"POST"}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## deprovisionTransferProcess + + + +Requests the deprovisioning of resources associated with a transfer process. Due to the asynchronous nature of transfers, a successful response only indicates that the request was successfully received. This may take a long time, so clients must poll the /{id}/state endpoint to track the state. + +
      Path Parameters
      + +Request to deprovision the transfer process was successfully received + +
      + +Request was malformed, e.g. id was null + +
      Schema array
      + +A contract negotiation with the given ID does not exist + +
      Schema array
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/fail.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/fail.api.mdx new file mode 100644 index 00000000000..4dcafb13ed1 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/fail.api.mdx @@ -0,0 +1,34 @@ +--- +id: fail +title: "fail" +description: "Requests completion of the transfer process. Due to the asynchronous nature of transfers, a successful response only indicates that the request was successfully received" +sidebar_label: "fail" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Transfer Process Control Api"],"description":"Requests completion of the transfer process. Due to the asynchronous nature of transfers, a successful response only indicates that the request was successfully received","operationId":"fail","parameters":[{"name":"processId","in":"path","required":true,"style":"simple","explode":false,"schema":{"type":"string","example":null}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"errorMessage":{"type":"string","example":null}},"example":null}}}},"responses":{"400":{"description":"Request was malformed, e.g. id was null","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}}},"method":"post","path":"/transferprocess/{processId}/fail","servers":[{"url":"/"}],"jsonRequestBodyExample":null,"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"fail","description":{"content":"Requests completion of the transfer process. Due to the asynchronous nature of transfers, a successful response only indicates that the request was successfully received","type":"text/plain"},"url":{"path":["transferprocess",":processId","fail"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"","key":"processId"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## fail + + + +Requests completion of the transfer process. Due to the asynchronous nature of transfers, a successful response only indicates that the request was successfully received + +
      Path Parameters
      Request Body
      + +Request was malformed, e.g. id was null + +
      Schema array
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/find-1.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/find-1.api.mdx new file mode 100644 index 00000000000..568d2f8def3 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/find-1.api.mdx @@ -0,0 +1,42 @@ +--- +id: find-1 +title: "find_1" +description: "Finds the best fitting data plane instance for a particular query" +sidebar_label: "find_1" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Dataplane Selector"],"description":"Finds the best fitting data plane instance for a particular query","operationId":"find_1","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/SelectionRequest"},"destination":{"type":"object","properties":{"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/DataAddress"},"type":{"type":"string","example":null}},"example":null},"source":{"type":"object","properties":{"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/DataAddress"},"type":{"type":"string","example":null}},"example":null},"strategy":{"type":"string","example":null}},"example":{"source":{"@type":"https://w3id.org/edc/v0.0.1/ns/DataAddress","type":"test-src1"},"destination":{"@type":"https://w3id.org/edc/v0.0.1/ns/DataAddress","type":"test-dst2"},"strategy":"you_custom_strategy"}}}}},"responses":{"200":{"description":"The DataPlane instance that fits best for the given selection request","content":{"application/json":{"schema":{"type":"object","properties":{"@id":{"type":"string","example":null},"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/DataPlaneInstance"},"allowedDestTypes":{"uniqueItems":true,"type":"array","example":null,"items":{"type":"string","example":null}},"allowedSourceTypes":{"uniqueItems":true,"type":"array","example":null,"items":{"type":"string","example":null}},"lastActive":{"type":"integer","format":"int64","example":null},"turnCount":{"type":"integer","format":"int32","example":null},"url":{"type":"string","format":"url","example":null}},"example":{"@id":"your-dataplane-id","url":"http://somewhere.com:1234/api/v1","allowedSourceTypes":["source-type1","source-type2"],"allowedDestTypes":["your-dest-type"]}}}}},"204":{"description":"No suitable DataPlane instance was found"},"400":{"description":"Request body was malformed","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}}},"method":"post","path":"/v2/dataplanes/select","servers":[{"url":"/"}],"jsonRequestBodyExample":{"source":{"@type":"https://w3id.org/edc/v0.0.1/ns/DataAddress","type":"test-src1"},"destination":{"@type":"https://w3id.org/edc/v0.0.1/ns/DataAddress","type":"test-dst2"},"strategy":"you_custom_strategy"},"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"find 1","description":{"content":"Finds the best fitting data plane instance for a particular query","type":"text/plain"},"url":{"path":["v2","dataplanes","select"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## find_1 + + + +Finds the best fitting data plane instance for a particular query + +
      Request Body
        destination object
        source object
      + +The DataPlane instance that fits best for the given selection request + +
      Schema
      + +No suitable DataPlane instance was found + +
      + +Request body was malformed + +
      Schema array
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/find.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/find.api.mdx new file mode 100644 index 00000000000..aeb497b528f --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/find.api.mdx @@ -0,0 +1,42 @@ +--- +id: find +title: "find" +description: "Finds the best fitting data plane instance for a particular query" +sidebar_label: "find" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Dataplane Selector"],"description":"Finds the best fitting data plane instance for a particular query","operationId":"find","requestBody":{"content":{"*/*":{"schema":{"type":"object","properties":{"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/SelectionRequest"},"destination":{"type":"object","properties":{"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/DataAddress"},"type":{"type":"string","example":null}},"example":null},"source":{"type":"object","properties":{"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/DataAddress"},"type":{"type":"string","example":null}},"example":null},"strategy":{"type":"string","example":null}},"example":{"source":{"@type":"https://w3id.org/edc/v0.0.1/ns/DataAddress","type":"test-src1"},"destination":{"@type":"https://w3id.org/edc/v0.0.1/ns/DataAddress","type":"test-dst2"},"strategy":"you_custom_strategy"}}}}},"responses":{"200":{"description":"The DataPlane instance that fits best for the given selection request","content":{"*/*":{"schema":{"type":"object","properties":{"@id":{"type":"string","example":null},"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/DataPlaneInstance"},"allowedDestTypes":{"uniqueItems":true,"type":"array","example":null,"items":{"type":"string","example":null}},"allowedSourceTypes":{"uniqueItems":true,"type":"array","example":null,"items":{"type":"string","example":null}},"lastActive":{"type":"integer","format":"int64","example":null},"turnCount":{"type":"integer","format":"int32","example":null},"url":{"type":"string","format":"url","example":null}},"example":{"@id":"your-dataplane-id","url":"http://somewhere.com:1234/api/v1","allowedSourceTypes":["source-type1","source-type2"],"allowedDestTypes":["your-dest-type"]}}}}},"204":{"description":"No suitable DataPlane instance was found"},"400":{"description":"Request body was malformed","content":{"*/*":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}}},"method":"post","path":"/select","servers":[{"url":"/"}],"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"find","description":{"content":"Finds the best fitting data plane instance for a particular query","type":"text/plain"},"url":{"path":["select"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"*/*"},{"key":"Accept","value":"*/*"}],"method":"POST","body":{"mode":"raw","raw":"\"\""}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## find + + + +Finds the best fitting data plane instance for a particular query + +
      Request Body
        destination object
        source object
      + +The DataPlane instance that fits best for the given selection request + +
      Schema
      + +No suitable DataPlane instance was found + +
      + +Request body was malformed + +
      Schema array
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-agreement-by-id.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-agreement-by-id.api.mdx new file mode 100644 index 00000000000..694ea619cfa --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-agreement-by-id.api.mdx @@ -0,0 +1,42 @@ +--- +id: get-agreement-by-id +title: "getAgreementById" +description: "Gets an contract agreement with the given ID" +sidebar_label: "getAgreementById" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Contract Agreement"],"description":"Gets an contract agreement with the given ID","operationId":"getAgreementById","parameters":[{"name":"id","in":"path","required":true,"style":"simple","explode":false,"schema":{"type":"string","example":null}}],"responses":{"200":{"description":"The contract agreement","content":{"application/json":{"schema":{"type":"object","properties":{"@id":{"type":"string","example":null},"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/ContractAgreement"},"assetId":{"type":"string","example":null},"consumerId":{"type":"string","example":null},"contractSigningDate":{"type":"integer","format":"int64","example":null},"policy":{"type":"object","properties":{"@type":{"type":"string","example":null,"enum":["SET","OFFER","CONTRACT"]},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"extensibleProperties":{"type":"object","additionalProperties":{"type":"object","example":null},"example":null},"inheritsFrom":{"type":"string","example":null},"obligations":{"type":"array","example":null,"items":{"type":"object","properties":{"action":{"type":"object","properties":{"constraint":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}},"includedIn":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"consequence":"circular()","constraints":{"type":"array","example":null,"items":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}}},"parentPermission":{"type":"object","properties":{"action":{"type":"object","properties":{"constraint":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}},"includedIn":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"constraints":{"type":"array","example":null,"items":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}}},"duties":{"type":"array","example":null,"items":"circular()"},"target":{"type":"string","example":null}},"example":null},"target":{"type":"string","example":null}},"example":null}},"permissions":{"type":"array","example":null,"items":{"type":"object","properties":{"action":{"type":"object","properties":{"constraint":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}},"includedIn":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"constraints":{"type":"array","example":null,"items":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}}},"duties":{"type":"array","example":null,"items":{"type":"object","properties":{"action":{"type":"object","properties":{"constraint":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}},"includedIn":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"consequence":"circular()","constraints":{"type":"array","example":null,"items":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}}},"parentPermission":"circular()","target":{"type":"string","example":null}},"example":null}},"target":{"type":"string","example":null}},"example":null}},"prohibitions":{"type":"array","example":null,"items":{"type":"object","properties":{"action":{"type":"object","properties":{"constraint":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}},"includedIn":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"constraints":{"type":"array","example":null,"items":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}}},"target":{"type":"string","example":null}},"example":null}},"target":{"type":"string","example":null}},"example":null},"providerId":{"type":"string","example":null}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@type":"https://w3id.org/edc/v0.0.1/ns/ContractAgreement","@id":"negotiation-id","providerId":"provider-id","consumerId":"consumer-id","assetId":"asset-id","contractSigningDate":1688465655,"policy":{"@context":"http://www.w3.org/ns/odrl.jsonld","@type":"Set","@id":"offer-id","permission":[{"target":"asset-id","action":"display"}]}}}}}},"400":{"description":"Request was malformed, e.g. id was null","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}},"404":{"description":"An contract agreement with the given ID does not exist","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}}},"method":"get","path":"/v2/contractagreements/{id}","servers":[{"url":"/"}],"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"get Agreement By Id","description":{"content":"Gets an contract agreement with the given ID","type":"text/plain"},"url":{"path":["v2","contractagreements",":id"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"","key":"id"}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## getAgreementById + + + +Gets an contract agreement with the given ID + +
      Path Parameters
      + +The contract agreement + +
      Schema
        policy object
        extensibleProperties object
      • property name* object
      • obligations object[]
        action object
        constraint object
        constraints object[]
        parentPermission object
        action object
        constraint object
        constraints object[]
        permissions object[]
        action object
        constraint object
        constraints object[]
        duties object[]
        action object
        constraint object
        constraints object[]
        prohibitions object[]
        action object
        constraint object
        constraints object[]
      + +Request was malformed, e.g. id was null + +
      Schema array
      + +An contract agreement with the given ID does not exist + +
      Schema array
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-agreement-for-negotiation.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-agreement-for-negotiation.api.mdx new file mode 100644 index 00000000000..43a8a011b64 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-agreement-for-negotiation.api.mdx @@ -0,0 +1,42 @@ +--- +id: get-agreement-for-negotiation +title: "getAgreementForNegotiation" +description: "Gets a contract agreement for a contract negotiation with the given ID" +sidebar_label: "getAgreementForNegotiation" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Contract Negotiation"],"description":"Gets a contract agreement for a contract negotiation with the given ID","operationId":"getAgreementForNegotiation","parameters":[{"name":"id","in":"path","required":true,"style":"simple","explode":false,"schema":{"type":"string","example":null}}],"responses":{"200":{"description":"The contract agreement that is attached to the negotiation, or null","content":{"application/json":{"schema":{"type":"object","properties":{"@id":{"type":"string","example":null},"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/ContractAgreement"},"assetId":{"type":"string","example":null},"consumerId":{"type":"string","example":null},"contractSigningDate":{"type":"integer","format":"int64","example":null},"policy":{"type":"object","properties":{"@type":{"type":"string","example":null,"enum":["SET","OFFER","CONTRACT"]},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"extensibleProperties":{"type":"object","additionalProperties":{"type":"object","example":null},"example":null},"inheritsFrom":{"type":"string","example":null},"obligations":{"type":"array","example":null,"items":{"type":"object","properties":{"action":{"type":"object","properties":{"constraint":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}},"includedIn":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"consequence":"circular()","constraints":{"type":"array","example":null,"items":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}}},"parentPermission":{"type":"object","properties":{"action":{"type":"object","properties":{"constraint":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}},"includedIn":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"constraints":{"type":"array","example":null,"items":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}}},"duties":{"type":"array","example":null,"items":"circular()"},"target":{"type":"string","example":null}},"example":null},"target":{"type":"string","example":null}},"example":null}},"permissions":{"type":"array","example":null,"items":{"type":"object","properties":{"action":{"type":"object","properties":{"constraint":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}},"includedIn":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"constraints":{"type":"array","example":null,"items":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}}},"duties":{"type":"array","example":null,"items":{"type":"object","properties":{"action":{"type":"object","properties":{"constraint":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}},"includedIn":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"consequence":"circular()","constraints":{"type":"array","example":null,"items":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}}},"parentPermission":"circular()","target":{"type":"string","example":null}},"example":null}},"target":{"type":"string","example":null}},"example":null}},"prohibitions":{"type":"array","example":null,"items":{"type":"object","properties":{"action":{"type":"object","properties":{"constraint":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}},"includedIn":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"constraints":{"type":"array","example":null,"items":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}}},"target":{"type":"string","example":null}},"example":null}},"target":{"type":"string","example":null}},"example":null},"providerId":{"type":"string","example":null}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@type":"https://w3id.org/edc/v0.0.1/ns/ContractAgreement","@id":"negotiation-id","providerId":"provider-id","consumerId":"consumer-id","assetId":"asset-id","contractSigningDate":1688465655,"policy":{"@context":"http://www.w3.org/ns/odrl.jsonld","@type":"Set","@id":"offer-id","permission":[{"target":"asset-id","action":"display"}]}}}}}},"400":{"description":"Request was malformed, e.g. id was null","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}},"404":{"description":"An contract negotiation with the given ID does not exist","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}}},"method":"get","path":"/v2/contractnegotiations/{id}/agreement","servers":[{"url":"/"}],"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"get Agreement For Negotiation","description":{"content":"Gets a contract agreement for a contract negotiation with the given ID","type":"text/plain"},"url":{"path":["v2","contractnegotiations",":id","agreement"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"","key":"id"}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## getAgreementForNegotiation + + + +Gets a contract agreement for a contract negotiation with the given ID + +
      Path Parameters
      + +The contract agreement that is attached to the negotiation, or null + +
      Schema
        policy object
        extensibleProperties object
      • property name* object
      • obligations object[]
        action object
        constraint object
        constraints object[]
        parentPermission object
        action object
        constraint object
        constraints object[]
        permissions object[]
        action object
        constraint object
        constraints object[]
        duties object[]
        action object
        constraint object
        constraints object[]
        prohibitions object[]
        action object
        constraint object
        constraints object[]
      + +Request was malformed, e.g. id was null + +
      Schema array
      + +An contract negotiation with the given ID does not exist + +
      Schema array
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-all.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-all.api.mdx new file mode 100644 index 00000000000..58aa40fe886 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-all.api.mdx @@ -0,0 +1,38 @@ +--- +id: get-all +title: "getAll" +description: "Returns a list of all currently registered data plane instances" +sidebar_label: "getAll" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Dataplane Selector"],"description":"Returns a list of all currently registered data plane instances","operationId":"getAll","responses":{"204":{"description":"A (potentially empty) list of currently registered data plane instances"},"400":{"description":"Request body was malformed","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}}},"method":"get","path":"/v2/dataplanes","servers":[{"url":"/"}],"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"get All","description":{"content":"Returns a list of all currently registered data plane instances","type":"text/plain"},"url":{"path":["v2","dataplanes"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## getAll + + + +Returns a list of all currently registered data plane instances + +
      + +A (potentially empty) list of currently registered data plane instances + +
      + +Request body was malformed + +
      Schema array
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-asset-1.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-asset-1.api.mdx new file mode 100644 index 00000000000..1557a794c0b --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-asset-1.api.mdx @@ -0,0 +1,42 @@ +--- +id: get-asset-1 +title: "getAsset_1" +description: "Gets an asset with the given ID" +sidebar_label: "getAsset_1" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Asset"],"description":"Gets an asset with the given ID","operationId":"getAsset_1","parameters":[{"name":"id","in":"path","required":true,"style":"simple","explode":false,"schema":{"type":"string","example":null}}],"responses":{"200":{"description":"The asset","content":{"application/json":{"schema":{"type":"object","properties":{"@id":{"type":"string","example":null},"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/Asset"},"createdAt":{"type":"integer","format":"int64","example":null},"dataAddress":{"type":"object","properties":{"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/DataAddress"},"type":{"type":"string","example":null}},"example":null},"privateProperties":{"type":"object","additionalProperties":{"type":"object","example":null},"example":null},"properties":{"type":"object","additionalProperties":{"type":"object","example":null},"example":null}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@id":"definition-id","edc:properties":{"edc:key":"value"},"edc:privateProperties":{"edc:privateKey":"privateValue"},"edc:dataAddress":{"edc:type":"HttpData"},"edc:createdAt":1688465655}}}}},"400":{"description":"Request was malformed, e.g. id was null","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}},"404":{"description":"An asset with the given ID does not exist","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}}},"method":"get","path":"/v3/assets/{id}","servers":[{"url":"/"}],"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"get Asset 1","description":{"content":"Gets an asset with the given ID","type":"text/plain"},"url":{"path":["v3","assets",":id"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"","key":"id"}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## getAsset_1 + + + +Gets an asset with the given ID + +
      Path Parameters
      + +The asset + +
      Schema
        dataAddress object
        privateProperties object
      • property name* object
      • properties object
      • property name* object
      + +Request was malformed, e.g. id was null + +
      Schema array
      + +An asset with the given ID does not exist + +
      Schema array
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-asset-data-address.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-asset-data-address.api.mdx new file mode 100644 index 00000000000..8b5f6f862f4 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-asset-data-address.api.mdx @@ -0,0 +1,46 @@ +--- +id: get-asset-data-address +title: "getAssetDataAddress" +description: "Gets a data address of an asset with the given ID" +sidebar_label: "getAssetDataAddress" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Asset"],"description":"Gets a data address of an asset with the given ID","operationId":"getAssetDataAddress","parameters":[{"name":"id","in":"path","required":true,"style":"simple","explode":false,"schema":{"type":"string","example":null}}],"responses":{"200":{"description":"The data address","content":{"application/json":{"schema":{"type":"object","properties":{"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/DataAddress"},"type":{"type":"string","example":null}},"example":null}}}},"400":{"description":"Request was malformed, e.g. id was null","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}},"404":{"description":"An asset with the given ID does not exist","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}}},"deprecated":true,"method":"get","path":"/v2/assets/{id}/dataaddress","servers":[{"url":"/"}],"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"get Asset Data Address","description":{"content":"Gets a data address of an asset with the given ID","type":"text/plain"},"url":{"path":["v2","assets",":id","dataaddress"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"","key":"id"}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## getAssetDataAddress + +:::caution deprecated + +This endpoint has been deprecated and may be removed in future versions of the API. + +::: + +Gets a data address of an asset with the given ID + +
      Path Parameters
      + +The data address + +
      Schema
      + +Request was malformed, e.g. id was null + +
      Schema array
      + +An asset with the given ID does not exist + +
      Schema array
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-asset.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-asset.api.mdx new file mode 100644 index 00000000000..98fbd8a93d9 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-asset.api.mdx @@ -0,0 +1,46 @@ +--- +id: get-asset +title: "getAsset" +description: "Gets an asset with the given ID" +sidebar_label: "getAsset" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Asset"],"description":"Gets an asset with the given ID","operationId":"getAsset","parameters":[{"name":"id","in":"path","required":true,"style":"simple","explode":false,"schema":{"type":"string","example":null}}],"responses":{"200":{"description":"The asset","content":{"application/json":{"schema":{"type":"object","properties":{"createdAt":{"type":"integer","format":"int64","example":null},"dataAddress":{"type":"object","properties":{"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/DataAddress"},"type":{"type":"string","example":null}},"example":null},"id":{"type":"string","example":null},"privateProperties":{"type":"object","additionalProperties":{"type":"object","example":null},"example":null},"properties":{"type":"object","additionalProperties":{"type":"object","example":null},"example":null}},"example":null}}}},"400":{"description":"Request was malformed, e.g. id was null","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}},"404":{"description":"An asset with the given ID does not exist","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}}},"deprecated":true,"method":"get","path":"/v2/assets/{id}","servers":[{"url":"/"}],"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"get Asset","description":{"content":"Gets an asset with the given ID","type":"text/plain"},"url":{"path":["v2","assets",":id"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"","key":"id"}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## getAsset + +:::caution deprecated + +This endpoint has been deprecated and may be removed in future versions of the API. + +::: + +Gets an asset with the given ID + +
      Path Parameters
      + +The asset + +
      Schema
        dataAddress object
        privateProperties object
      • property name* object
      • properties object
      • property name* object
      + +Request was malformed, e.g. id was null + +
      Schema array
      + +An asset with the given ID does not exist + +
      Schema array
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-contract-definition.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-contract-definition.api.mdx new file mode 100644 index 00000000000..ada9f1e0c7f --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-contract-definition.api.mdx @@ -0,0 +1,42 @@ +--- +id: get-contract-definition +title: "getContractDefinition" +description: "Gets an contract definition with the given ID" +sidebar_label: "getContractDefinition" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Contract Definition"],"description":"Gets an contract definition with the given ID","operationId":"getContractDefinition","parameters":[{"name":"id","in":"path","required":true,"style":"simple","explode":false,"schema":{"type":"string","example":null}}],"responses":{"200":{"description":"The contract definition","content":{"application/json":{"schema":{"type":"object","properties":{"@id":{"type":"string","example":null},"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/ContractDefinition"},"accessPolicyId":{"type":"string","example":null},"assetsSelector":{"type":"array","example":null,"items":{"type":"object","properties":{"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/Criterion"},"operandLeft":{"type":"object","example":null},"operandRight":{"type":"object","example":null},"operator":{"type":"string","example":null}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@type":"Criterion","operandLeft":"fieldName","operator":"=","operandRight":"some value"}}},"contractPolicyId":{"type":"string","example":null},"createdAt":{"type":"integer","format":"int64","example":null}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@id":"definition-id","edc:accessPolicyId":"asset-policy-id","edc:contractPolicyId":"contract-policy-id","edc:assetsSelector":[],"edc:createdAt":1688465655}}}}},"400":{"description":"Request was malformed, e.g. id was null","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}},"404":{"description":"An contract agreement with the given ID does not exist","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}}},"method":"get","path":"/v2/contractdefinitions/{id}","servers":[{"url":"/"}],"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"get Contract Definition","description":{"content":"Gets an contract definition with the given ID","type":"text/plain"},"url":{"path":["v2","contractdefinitions",":id"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"","key":"id"}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## getContractDefinition + + + +Gets an contract definition with the given ID + +
      Path Parameters
      + +The contract definition + +
      Schema
        assetsSelector object[]
      + +Request was malformed, e.g. id was null + +
      Schema array
      + +An contract agreement with the given ID does not exist + +
      Schema array
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-edr.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-edr.api.mdx new file mode 100644 index 00000000000..07e041fcd41 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-edr.api.mdx @@ -0,0 +1,42 @@ +--- +id: get-edr +title: "getEdr" +description: "Gets an EDR with the given transfer process ID" +sidebar_label: "getEdr" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Control Plane EDR Api"],"description":"Gets an EDR with the given transfer process ID","operationId":"getEdr","parameters":[{"name":"id","in":"path","required":true,"style":"simple","explode":false,"schema":{"type":"string","example":null}}],"responses":{"200":{"description":"The EDR cached","content":{"application/json":{"schema":{"type":"object","properties":{"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/DataAddress"},"type":{"type":"string","example":null}},"example":null}}}},"400":{"description":"Request was malformed, e.g. id was null","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}},"404":{"description":"An EDR with the given ID does not exist","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}}},"method":"get","path":"/edrs/{id}","servers":[{"url":"/"}],"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"get Edr","description":{"content":"Gets an EDR with the given transfer process ID","type":"text/plain"},"url":{"path":["edrs",":id"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"","key":"id"}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## getEdr + + + +Gets an EDR with the given transfer process ID + +
      Path Parameters
      + +The EDR cached + +
      Schema
      + +Request was malformed, e.g. id was null + +
      Schema array
      + +An EDR with the given ID does not exist + +
      Schema array
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-liveness.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-liveness.api.mdx new file mode 100644 index 00000000000..be19e2ee985 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-liveness.api.mdx @@ -0,0 +1,34 @@ +--- +id: get-liveness +title: "getLiveness" +description: "Performs a liveness probe to determine whether the runtime is working properly." +sidebar_label: "getLiveness" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Application Observability"],"description":"Performs a liveness probe to determine whether the runtime is working properly.","operationId":"getLiveness","responses":{"200":{"description":"The runtime is working properly.","content":{"application/json":{"schema":{"type":"object","properties":{"componentResults":{"type":"array","example":null,"items":{"type":"object","properties":{"component":{"type":"string","example":null},"failure":{"type":"object","properties":{"failureDetail":{"type":"string","example":null},"messages":{"type":"array","example":null,"items":{"type":"string","example":null}}},"example":null},"isHealthy":{"type":"boolean","example":null}},"example":null}},"isSystemHealthy":{"type":"boolean","example":null}},"example":null}}}}},"method":"get","path":"/check/liveness","servers":[{"url":"/"}],"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"get Liveness","description":{"content":"Performs a liveness probe to determine whether the runtime is working properly.","type":"text/plain"},"url":{"path":["check","liveness"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## getLiveness + + + +Performs a liveness probe to determine whether the runtime is working properly. + +
      + +The runtime is working properly. + +
      Schema
        componentResults object[]
        failure object
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-negotiation-state.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-negotiation-state.api.mdx new file mode 100644 index 00000000000..15eaaeddf6d --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-negotiation-state.api.mdx @@ -0,0 +1,42 @@ +--- +id: get-negotiation-state +title: "getNegotiationState" +description: "Gets the state of a contract negotiation with the given ID" +sidebar_label: "getNegotiationState" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Contract Negotiation"],"description":"Gets the state of a contract negotiation with the given ID","operationId":"getNegotiationState","parameters":[{"name":"id","in":"path","required":true,"style":"simple","explode":false,"schema":{"type":"string","example":null}}],"responses":{"200":{"description":"The contract negotiation's state","content":{"application/json":{"schema":{"type":"object","properties":{"state":{"type":"string","example":null}},"example":null}}}},"400":{"description":"Request was malformed, e.g. id was null","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}},"404":{"description":"An contract negotiation with the given ID does not exist","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}}},"method":"get","path":"/v2/contractnegotiations/{id}/state","servers":[{"url":"/"}],"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"get Negotiation State","description":{"content":"Gets the state of a contract negotiation with the given ID","type":"text/plain"},"url":{"path":["v2","contractnegotiations",":id","state"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"","key":"id"}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## getNegotiationState + + + +Gets the state of a contract negotiation with the given ID + +
      Path Parameters
      + +The contract negotiation's state + +
      Schema
      + +Request was malformed, e.g. id was null + +
      Schema array
      + +An contract negotiation with the given ID does not exist + +
      Schema array
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-negotiation.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-negotiation.api.mdx new file mode 100644 index 00000000000..a580f5b1c16 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-negotiation.api.mdx @@ -0,0 +1,42 @@ +--- +id: get-negotiation +title: "getNegotiation" +description: "Gets a contract negotiation with the given ID" +sidebar_label: "getNegotiation" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Contract Negotiation"],"description":"Gets a contract negotiation with the given ID","operationId":"getNegotiation","parameters":[{"name":"id","in":"path","required":true,"style":"simple","explode":false,"schema":{"type":"string","example":null}}],"responses":{"200":{"description":"The contract negotiation","content":{"application/json":{"schema":{"type":"object","properties":{"@id":{"type":"string","example":null},"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/ContractNegotiation"},"callbackAddresses":{"type":"array","example":null,"items":{"type":"object","properties":{"authCodeId":{"type":"string","example":null},"authKey":{"type":"string","example":null},"events":{"uniqueItems":true,"type":"array","example":null,"items":{"type":"string","example":null}},"transactional":{"type":"boolean","example":null},"uri":{"type":"string","example":null}},"example":null}},"contractAgreementId":{"type":"string","example":null},"counterPartyAddress":{"type":"string","example":null},"counterPartyId":{"type":"string","example":null},"errorDetail":{"type":"string","example":null},"protocol":{"type":"string","example":null},"state":{"type":"string","example":null},"type":{"type":"string","example":null,"enum":["CONSUMER","PROVIDER"]}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@type":"https://w3id.org/edc/v0.0.1/ns/ContractNegotiation","@id":"negotiation-id","type":"PROVIDER","protocol":"dataspace-protocol-http","counterPartyId":"counter-party-id","counterPartyAddress":"http://counter/party/address","state":"VERIFIED","contractAgreementId":"contract:agreement:id","errorDetail":"eventual-error-detail","createdAt":1688465655,"callbackAddresses":[{"transactional":false,"uri":"http://callback/url","events":["contract.negotiation","transfer.process"],"authKey":"auth-key","authCodeId":"auth-code-id"}]}}}}},"400":{"description":"Request was malformed, e.g. id was null","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}},"404":{"description":"An contract negotiation with the given ID does not exist","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}}},"method":"get","path":"/v2/contractnegotiations/{id}","servers":[{"url":"/"}],"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"get Negotiation","description":{"content":"Gets a contract negotiation with the given ID","type":"text/plain"},"url":{"path":["v2","contractnegotiations",":id"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"","key":"id"}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## getNegotiation + + + +Gets a contract negotiation with the given ID + +
      Path Parameters
      + +The contract negotiation + +
      Schema
        callbackAddresses object[]
      + +Request was malformed, e.g. id was null + +
      Schema array
      + +An contract negotiation with the given ID does not exist + +
      Schema array
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-policy-definition.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-policy-definition.api.mdx new file mode 100644 index 00000000000..38145b11721 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-policy-definition.api.mdx @@ -0,0 +1,42 @@ +--- +id: get-policy-definition +title: "getPolicyDefinition" +description: "Gets a policy definition with the given ID" +sidebar_label: "getPolicyDefinition" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Policy Definition"],"description":"Gets a policy definition with the given ID","operationId":"getPolicyDefinition","parameters":[{"name":"id","in":"path","required":true,"style":"simple","explode":false,"schema":{"type":"string","example":null}}],"responses":{"200":{"description":"The policy definition","content":{"application/json":{"schema":{"type":"object","properties":{"@id":{"type":"string","example":null},"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/PolicyDefinition"},"policy":{"type":"object","properties":{"@type":{"type":"string","example":null,"enum":["SET","OFFER","CONTRACT"]},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"extensibleProperties":{"type":"object","additionalProperties":{"type":"object","example":null},"example":null},"inheritsFrom":{"type":"string","example":null},"obligations":{"type":"array","example":null,"items":{"type":"object","properties":{"action":{"type":"object","properties":{"constraint":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}},"includedIn":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"consequence":"circular()","constraints":{"type":"array","example":null,"items":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}}},"parentPermission":{"type":"object","properties":{"action":{"type":"object","properties":{"constraint":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}},"includedIn":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"constraints":{"type":"array","example":null,"items":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}}},"duties":{"type":"array","example":null,"items":"circular()"},"target":{"type":"string","example":null}},"example":null},"target":{"type":"string","example":null}},"example":null}},"permissions":{"type":"array","example":null,"items":{"type":"object","properties":{"action":{"type":"object","properties":{"constraint":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}},"includedIn":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"constraints":{"type":"array","example":null,"items":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}}},"duties":{"type":"array","example":null,"items":{"type":"object","properties":{"action":{"type":"object","properties":{"constraint":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}},"includedIn":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"consequence":"circular()","constraints":{"type":"array","example":null,"items":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}}},"parentPermission":"circular()","target":{"type":"string","example":null}},"example":null}},"target":{"type":"string","example":null}},"example":null}},"prohibitions":{"type":"array","example":null,"items":{"type":"object","properties":{"action":{"type":"object","properties":{"constraint":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}},"includedIn":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"constraints":{"type":"array","example":null,"items":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}}},"target":{"type":"string","example":null}},"example":null}},"target":{"type":"string","example":null}},"example":null}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@id":"definition-id","policy":{"@context":"http://www.w3.org/ns/odrl.jsonld","@type":"Set","uid":"http://example.com/policy:1010","permission":[{"target":"http://example.com/asset:9898.movie","action":"display","constraint":[{"leftOperand":"spatial","operator":"eq","rightOperand":"https://www.wikidata.org/wiki/Q183","comment":"i.e Germany"}]}]},"createdAt":1688465655}}}}},"400":{"description":"Request was malformed, e.g. id was null","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}},"404":{"description":"An policy definition with the given ID does not exist","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}}},"method":"get","path":"/v2/policydefinitions/{id}","servers":[{"url":"/"}],"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"get Policy Definition","description":{"content":"Gets a policy definition with the given ID","type":"text/plain"},"url":{"path":["v2","policydefinitions",":id"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"","key":"id"}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## getPolicyDefinition + + + +Gets a policy definition with the given ID + +
      Path Parameters
      + +The policy definition + +
      Schema
        policy object
        extensibleProperties object
      • property name* object
      • obligations object[]
        action object
        constraint object
        constraints object[]
        parentPermission object
        action object
        constraint object
        constraints object[]
        permissions object[]
        action object
        constraint object
        constraints object[]
        duties object[]
        action object
        constraint object
        constraints object[]
        prohibitions object[]
        action object
        constraint object
        constraints object[]
      + +Request was malformed, e.g. id was null + +
      Schema array
      + +An policy definition with the given ID does not exist + +
      Schema array
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-readiness.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-readiness.api.mdx new file mode 100644 index 00000000000..6b3c5a1f12b --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-readiness.api.mdx @@ -0,0 +1,34 @@ +--- +id: get-readiness +title: "getReadiness" +description: "Performs a readiness probe to determine whether the runtime is able to accept requests." +sidebar_label: "getReadiness" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Application Observability"],"description":"Performs a readiness probe to determine whether the runtime is able to accept requests.","operationId":"getReadiness","responses":{"200":{"description":"The runtime is able to accept requests.","content":{"application/json":{"schema":{"type":"object","properties":{"componentResults":{"type":"array","example":null,"items":{"type":"object","properties":{"component":{"type":"string","example":null},"failure":{"type":"object","properties":{"failureDetail":{"type":"string","example":null},"messages":{"type":"array","example":null,"items":{"type":"string","example":null}}},"example":null},"isHealthy":{"type":"boolean","example":null}},"example":null}},"isSystemHealthy":{"type":"boolean","example":null}},"example":null}}}}},"method":"get","path":"/check/readiness","servers":[{"url":"/"}],"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"get Readiness","description":{"content":"Performs a readiness probe to determine whether the runtime is able to accept requests.","type":"text/plain"},"url":{"path":["check","readiness"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## getReadiness + + + +Performs a readiness probe to determine whether the runtime is able to accept requests. + +
      + +The runtime is able to accept requests. + +
      Schema
        componentResults object[]
        failure object
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-startup.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-startup.api.mdx new file mode 100644 index 00000000000..44392e7224d --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-startup.api.mdx @@ -0,0 +1,34 @@ +--- +id: get-startup +title: "getStartup" +description: "Performs a startup probe to determine whether the runtime has completed startup." +sidebar_label: "getStartup" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Application Observability"],"description":"Performs a startup probe to determine whether the runtime has completed startup.","operationId":"getStartup","responses":{"200":{"description":"The runtime has completed startup.","content":{"application/json":{"schema":{"type":"object","properties":{"componentResults":{"type":"array","example":null,"items":{"type":"object","properties":{"component":{"type":"string","example":null},"failure":{"type":"object","properties":{"failureDetail":{"type":"string","example":null},"messages":{"type":"array","example":null,"items":{"type":"string","example":null}}},"example":null},"isHealthy":{"type":"boolean","example":null}},"example":null}},"isSystemHealthy":{"type":"boolean","example":null}},"example":null}}}}},"method":"get","path":"/check/startup","servers":[{"url":"/"}],"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"get Startup","description":{"content":"Performs a startup probe to determine whether the runtime has completed startup.","type":"text/plain"},"url":{"path":["check","startup"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## getStartup + + + +Performs a startup probe to determine whether the runtime has completed startup. + +
      + +The runtime has completed startup. + +
      Schema
        componentResults object[]
        failure object
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-transfer-process-state.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-transfer-process-state.api.mdx new file mode 100644 index 00000000000..04a17f7b6c0 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-transfer-process-state.api.mdx @@ -0,0 +1,42 @@ +--- +id: get-transfer-process-state +title: "getTransferProcessState" +description: "Gets the state of a transfer process with the given ID" +sidebar_label: "getTransferProcessState" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Transfer Process"],"description":"Gets the state of a transfer process with the given ID","operationId":"getTransferProcessState","parameters":[{"name":"id","in":"path","required":true,"style":"simple","explode":false,"schema":{"type":"string","example":null}}],"responses":{"200":{"description":"The transfer process's state","content":{"application/json":{"schema":{"type":"object","properties":{"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/TransferState"},"state":{"type":"string","example":null}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@type":"https://w3id.org/edc/v0.0.1/ns/TransferState","state":"STARTED"}}}}},"400":{"description":"Request was malformed, e.g. id was null","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}},"404":{"description":"An transfer process with the given ID does not exist","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}}},"method":"get","path":"/v2/transferprocesses/{id}/state","servers":[{"url":"/"}],"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"get Transfer Process State","description":{"content":"Gets the state of a transfer process with the given ID","type":"text/plain"},"url":{"path":["v2","transferprocesses",":id","state"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"","key":"id"}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## getTransferProcessState + + + +Gets the state of a transfer process with the given ID + +
      Path Parameters
      + +The transfer process's state + +
      Schema
      + +Request was malformed, e.g. id was null + +
      Schema array
      + +An transfer process with the given ID does not exist + +
      Schema array
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-transfer-process.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-transfer-process.api.mdx new file mode 100644 index 00000000000..d2cef2389c2 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-transfer-process.api.mdx @@ -0,0 +1,42 @@ +--- +id: get-transfer-process +title: "getTransferProcess" +description: "Gets an transfer process with the given ID" +sidebar_label: "getTransferProcess" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Transfer Process"],"description":"Gets an transfer process with the given ID","operationId":"getTransferProcess","parameters":[{"name":"id","in":"path","required":true,"style":"simple","explode":false,"schema":{"type":"string","example":null}}],"responses":{"200":{"description":"The transfer process","content":{"application/json":{"schema":{"type":"object","properties":{"@id":{"type":"string","example":null},"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/TransferProcess"},"callbackAddresses":{"type":"array","example":null,"items":{"type":"object","properties":{"authCodeId":{"type":"string","example":null},"authKey":{"type":"string","example":null},"events":{"uniqueItems":true,"type":"array","example":null,"items":{"type":"string","example":null}},"transactional":{"type":"boolean","example":null},"uri":{"type":"string","example":null}},"example":null}},"contractAgreementId":{"type":"string","example":null},"counterPartyAddress":{"type":"string","example":null},"counterPartyId":{"type":"string","example":null},"errorDetail":{"type":"string","example":null},"protocol":{"type":"string","example":null},"state":{"type":"string","example":null},"type":{"type":"string","example":null,"enum":["CONSUMER","PROVIDER"]}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@type":"https://w3id.org/edc/v0.0.1/ns/TransferProcess","@id":"process-id","correlationId":"correlation-id","type":"PROVIDER","state":"STARTED","stateTimestamp":1688465655,"assetId":"asset-id","connectorId":"connectorId","contractId":"contractId","dataDestination":{"type":"data-destination-type"},"properties":{"key":"value"},"privateProperties":{"private-key":"private-value"},"errorDetail":"eventual-error-detail","createdAt":1688465655,"callbackAddresses":[{"transactional":false,"uri":"http://callback/url","events":["contract.negotiation","transfer.process"],"authKey":"auth-key","authCodeId":"auth-code-id"}]}}}}},"400":{"description":"Request was malformed, e.g. id was null","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}},"404":{"description":"A transfer process with the given ID does not exist","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}}},"method":"get","path":"/v2/transferprocesses/{id}","servers":[{"url":"/"}],"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"get Transfer Process","description":{"content":"Gets an transfer process with the given ID","type":"text/plain"},"url":{"path":["v2","transferprocesses",":id"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"","key":"id"}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## getTransferProcess + + + +Gets an transfer process with the given ID + +
      Path Parameters
      + +The transfer process + +
      Schema
        callbackAddresses object[]
      + +Request was malformed, e.g. id was null + +
      Schema array
      + +A transfer process with the given ID does not exist + +
      Schema array
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-transfer-state.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-transfer-state.api.mdx new file mode 100644 index 00000000000..49f8f1af373 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-transfer-state.api.mdx @@ -0,0 +1,34 @@ +--- +id: get-transfer-state +title: "getTransferState" +description: "Get the current state of a data transfer." +sidebar_label: "getTransferState" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Data Plane control API"],"description":"Get the current state of a data transfer.","operationId":"getTransferState","parameters":[{"name":"processId","in":"path","required":true,"style":"simple","explode":false,"schema":{"type":"string","example":null}}],"responses":{"200":{"description":"Missing access token"}},"method":"get","path":"/transfer/{processId}","servers":[{"url":"/"}],"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"get Transfer State","description":{"content":"Get the current state of a data transfer.","type":"text/plain"},"url":{"path":["transfer",":processId"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"","key":"processId"}]},"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## getTransferState + + + +Get the current state of a data transfer. + +
      Path Parameters
      + +Missing access token + +
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get.api.mdx new file mode 100644 index 00000000000..f3321088474 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get.api.mdx @@ -0,0 +1,42 @@ +--- +id: get +title: "get" +description: "Send `GET` data query to the Data Plane." +sidebar_label: "get" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Data Plane public API"],"description":"Send `GET` data query to the Data Plane.","operationId":"get","responses":{"400":{"description":"Missing access token"},"403":{"description":"Access token is expired or invalid"},"500":{"description":"Failed to transfer data"}},"method":"get","path":"/{any}","servers":[{"url":"/"}],"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"get","description":{"content":"Send `GET` data query to the Data Plane.","type":"text/plain"},"url":{"path":[":any"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## get + + + +Send `GET` data query to the Data Plane. + +
      + +Missing access token + +
      + +Access token is expired or invalid + +
      + +Failed to transfer data + +
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/initiate-contract-negotiation.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/initiate-contract-negotiation.api.mdx new file mode 100644 index 00000000000..c954a828f9a --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/initiate-contract-negotiation.api.mdx @@ -0,0 +1,38 @@ +--- +id: initiate-contract-negotiation +title: "initiateContractNegotiation" +description: "Initiates a contract negotiation for a given offer and with the given counter part. Please note that successfully invoking this endpoint only means that the negotiation was initiated. Clients must poll the /{id}/state endpoint to track the state" +sidebar_label: "initiateContractNegotiation" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Contract Negotiation"],"description":"Initiates a contract negotiation for a given offer and with the given counter part. Please note that successfully invoking this endpoint only means that the negotiation was initiated. Clients must poll the /{id}/state endpoint to track the state","operationId":"initiateContractNegotiation","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/ContractRequest"},"callbackAddresses":{"type":"array","example":null,"items":{"type":"object","properties":{"authCodeId":{"type":"string","example":null},"authKey":{"type":"string","example":null},"events":{"uniqueItems":true,"type":"array","example":null,"items":{"type":"string","example":null}},"transactional":{"type":"boolean","example":null},"uri":{"type":"string","example":null}},"example":null}},"connectorAddress":{"type":"string","example":null},"connectorId":{"type":"string","description":"please use providerId instead","example":null,"deprecated":true},"consumerId":{"type":"string","description":"this field is not used anymore","example":null,"deprecated":true},"offer":{"type":"object","properties":{"assetId":{"type":"string","example":null},"offerId":{"type":"string","example":null},"policy":{"type":"object","properties":{"@type":{"type":"string","example":null,"enum":["SET","OFFER","CONTRACT"]},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"extensibleProperties":{"type":"object","additionalProperties":{"type":"object","example":null},"example":null},"inheritsFrom":{"type":"string","example":null},"obligations":{"type":"array","example":null,"items":{"type":"object","properties":{"action":{"type":"object","properties":{"constraint":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}},"includedIn":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"consequence":"circular()","constraints":{"type":"array","example":null,"items":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}}},"parentPermission":{"type":"object","properties":{"action":{"type":"object","properties":{"constraint":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}},"includedIn":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"constraints":{"type":"array","example":null,"items":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}}},"duties":{"type":"array","example":null,"items":"circular()"},"target":{"type":"string","example":null}},"example":null},"target":{"type":"string","example":null}},"example":null}},"permissions":{"type":"array","example":null,"items":{"type":"object","properties":{"action":{"type":"object","properties":{"constraint":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}},"includedIn":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"constraints":{"type":"array","example":null,"items":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}}},"duties":{"type":"array","example":null,"items":{"type":"object","properties":{"action":{"type":"object","properties":{"constraint":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}},"includedIn":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"consequence":"circular()","constraints":{"type":"array","example":null,"items":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}}},"parentPermission":"circular()","target":{"type":"string","example":null}},"example":null}},"target":{"type":"string","example":null}},"example":null}},"prohibitions":{"type":"array","example":null,"items":{"type":"object","properties":{"action":{"type":"object","properties":{"constraint":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}},"includedIn":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"constraints":{"type":"array","example":null,"items":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}}},"target":{"type":"string","example":null}},"example":null}},"target":{"type":"string","example":null}},"example":null}},"example":null},"protocol":{"type":"string","example":null},"providerId":{"type":"string","example":null}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@type":"https://w3id.org/edc/v0.0.1/ns/ContractRequest","connectorAddress":"http://provider-address","protocol":"dataspace-protocol-http","providerId":"provider-id","offer":{"offerId":"offer-id","assetId":"asset-id","policy":{"@context":"http://www.w3.org/ns/odrl.jsonld","@type":"Set","@id":"offer-id","permission":[{"target":"asset-id","action":"display"}]}},"callbackAddresses":[{"transactional":false,"uri":"http://callback/url","events":["contract.negotiation","transfer.process"],"authKey":"auth-key","authCodeId":"auth-code-id"}]}}}}},"responses":{"200":{"description":"The negotiation was successfully initiated. Returns the contract negotiation ID and created timestamp","content":{"application/json":{"schema":{"type":"object","properties":{"@id":{"type":"string","example":null},"createdAt":{"type":"integer","format":"int64","example":null}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@id":"id-value","createdAt":1688465655}}}},"links":{"poll-state":{"operationId":"getNegotiationState","parameters":{"id":"$response.body#/id"}}}},"400":{"description":"Request body was malformed","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}}},"method":"post","path":"/v2/contractnegotiations","servers":[{"url":"/"}],"jsonRequestBodyExample":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@type":"https://w3id.org/edc/v0.0.1/ns/ContractRequest","connectorAddress":"http://provider-address","protocol":"dataspace-protocol-http","providerId":"provider-id","offer":{"offerId":"offer-id","assetId":"asset-id","policy":{"@context":"http://www.w3.org/ns/odrl.jsonld","@type":"Set","@id":"offer-id","permission":[{"target":"asset-id","action":"display"}]}},"callbackAddresses":[{"transactional":false,"uri":"http://callback/url","events":["contract.negotiation","transfer.process"],"authKey":"auth-key","authCodeId":"auth-code-id"}]},"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"initiate Contract Negotiation","description":{"content":"Initiates a contract negotiation for a given offer and with the given counter part. Please note that successfully invoking this endpoint only means that the negotiation was initiated. Clients must poll the /{id}/state endpoint to track the state","type":"text/plain"},"url":{"path":["v2","contractnegotiations"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## initiateContractNegotiation + + + +Initiates a contract negotiation for a given offer and with the given counter part. Please note that successfully invoking this endpoint only means that the negotiation was initiated. Clients must poll the /{id}/state endpoint to track the state + +
      Request Body
        callbackAddresses object[]
        offer object
        policy object
        extensibleProperties object
      • property name* object
      • obligations object[]
        action object
        constraint object
        constraints object[]
        parentPermission object
        action object
        constraint object
        constraints object[]
        permissions object[]
        action object
        constraint object
        constraints object[]
        duties object[]
        action object
        constraint object
        constraints object[]
        prohibitions object[]
        action object
        constraint object
        constraints object[]
      + +The negotiation was successfully initiated. Returns the contract negotiation ID and created timestamp + +
      Schema
      + +Request body was malformed + +
      Schema array
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/initiate-edr-negotiation.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/initiate-edr-negotiation.api.mdx new file mode 100644 index 00000000000..afa64f1b0dc --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/initiate-edr-negotiation.api.mdx @@ -0,0 +1,38 @@ +--- +id: initiate-edr-negotiation +title: "initiateEdrNegotiation" +description: "Initiates an EDR negotiation by handling a contract negotiation first and then a transfer process for a given offer and with the given counter part. Please note that successfully invoking this endpoint only means that the negotiation was initiated." +sidebar_label: "initiateEdrNegotiation" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Control Plane EDR Api"],"description":"Initiates an EDR negotiation by handling a contract negotiation first and then a transfer process for a given offer and with the given counter part. Please note that successfully invoking this endpoint only means that the negotiation was initiated.","operationId":"initiateEdrNegotiation","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"empty":{"type":"boolean","example":null},"valueType":{"type":"string","example":null,"enum":["ARRAY","OBJECT","STRING","NUMBER","TRUE","FALSE","NULL"]}},"additionalProperties":{"type":"object","properties":{"callbackAddresses":{"type":"array","example":null,"items":{"type":"object","properties":{"authCodeId":{"type":"string","example":null},"authKey":{"type":"string","example":null},"events":{"uniqueItems":true,"type":"array","example":null,"items":{"type":"string","example":null}},"transactional":{"type":"boolean","example":null},"uri":{"type":"string","example":null}},"example":null}},"connectorAddress":{"type":"string","example":null},"connectorId":{"type":"string","example":null},"offer":{"type":"object","properties":{"assetId":{"type":"string","example":null},"offerId":{"type":"string","example":null},"policy":{"type":"object","properties":{"@type":{"type":"string","example":null,"enum":["SET","OFFER","CONTRACT"]},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"extensibleProperties":{"type":"object","additionalProperties":{"type":"object","example":null},"example":null},"inheritsFrom":{"type":"string","example":null},"obligations":{"type":"array","example":null,"items":{"type":"object","properties":{"action":{"type":"object","properties":{"constraint":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}},"includedIn":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"consequence":"circular()","constraints":{"type":"array","example":null,"items":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}}},"parentPermission":{"type":"object","properties":{"action":{"type":"object","properties":{"constraint":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}},"includedIn":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"constraints":{"type":"array","example":null,"items":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}}},"duties":{"type":"array","example":null,"items":"circular()"},"target":{"type":"string","example":null}},"example":null},"target":{"type":"string","example":null}},"example":null}},"permissions":{"type":"array","example":null,"items":{"type":"object","properties":{"action":{"type":"object","properties":{"constraint":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}},"includedIn":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"constraints":{"type":"array","example":null,"items":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}}},"duties":{"type":"array","example":null,"items":{"type":"object","properties":{"action":{"type":"object","properties":{"constraint":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}},"includedIn":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"consequence":"circular()","constraints":{"type":"array","example":null,"items":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}}},"parentPermission":"circular()","target":{"type":"string","example":null}},"example":null}},"target":{"type":"string","example":null}},"example":null}},"prohibitions":{"type":"array","example":null,"items":{"type":"object","properties":{"action":{"type":"object","properties":{"constraint":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}},"includedIn":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"constraints":{"type":"array","example":null,"items":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}}},"target":{"type":"string","example":null}},"example":null}},"target":{"type":"string","example":null}},"example":null}},"example":null},"protocol":{"type":"string","example":null},"providerId":{"type":"string","example":null}},"example":null},"example":null}}}},"responses":{"200":{"description":"The negotiation was successfully initiated.","content":{"application/json":{"schema":{"type":"object","properties":{"@id":{"type":"string","example":null},"createdAt":{"type":"integer","format":"int64","example":null}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@id":"id-value","createdAt":1688465655}}}}},"400":{"description":"Request body was malformed","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}}},"method":"post","path":"/edrs","servers":[{"url":"/"}],"jsonRequestBodyExample":null,"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"initiate Edr Negotiation","description":{"content":"Initiates an EDR negotiation by handling a contract negotiation first and then a transfer process for a given offer and with the given counter part. Please note that successfully invoking this endpoint only means that the negotiation was initiated.","type":"text/plain"},"url":{"path":["edrs"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## initiateEdrNegotiation + + + +Initiates an EDR negotiation by handling a contract negotiation first and then a transfer process for a given offer and with the given counter part. Please note that successfully invoking this endpoint only means that the negotiation was initiated. + +
      Request Body
      + +The negotiation was successfully initiated. + +
      Schema
      + +Request body was malformed + +
      Schema array
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/initiate-transfer-process.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/initiate-transfer-process.api.mdx new file mode 100644 index 00000000000..5fb3857abe5 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/initiate-transfer-process.api.mdx @@ -0,0 +1,38 @@ +--- +id: initiate-transfer-process +title: "initiateTransferProcess" +description: "Initiates a data transfer with the given parameters. Please note that successfully invoking this endpoint only means that the transfer was initiated. Clients must poll the /{id}/state endpoint to track the state" +sidebar_label: "initiateTransferProcess" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Transfer Process"],"description":"Initiates a data transfer with the given parameters. Please note that successfully invoking this endpoint only means that the transfer was initiated. Clients must poll the /{id}/state endpoint to track the state","operationId":"initiateTransferProcess","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/TransferRequest"},"assetId":{"type":"string","example":null},"callbackAddresses":{"type":"array","example":null,"items":{"type":"object","properties":{"authCodeId":{"type":"string","example":null},"authKey":{"type":"string","example":null},"events":{"uniqueItems":true,"type":"array","example":null,"items":{"type":"string","example":null}},"transactional":{"type":"boolean","example":null},"uri":{"type":"string","example":null}},"example":null}},"connectorAddress":{"type":"string","example":null},"connectorId":{"type":"string","example":null},"contractId":{"type":"string","example":null},"dataDestination":{"type":"object","properties":{"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/DataAddress"},"type":{"type":"string","example":null}},"example":null},"privateProperties":{"type":"object","additionalProperties":{"type":"string","example":null},"example":null},"properties":{"type":"object","additionalProperties":{"type":"string","example":null},"example":null},"protocol":{"type":"string","example":null}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@type":"https://w3id.org/edc/v0.0.1/ns/TransferRequest","protocol":"dataspace-protocol-http","connectorAddress":"http://provider-address","connectorId":"provider-id","contractId":"contract-id","assetId":"asset-id","dataDestination":{"type":"data-destination-type"},"properties":{"key":"value"},"privateProperties":{"private-key":"private-value"},"callbackAddresses":[{"transactional":false,"uri":"http://callback/url","events":["contract.negotiation","transfer.process"],"authKey":"auth-key","authCodeId":"auth-code-id"}]}}}}},"responses":{"200":{"description":"The transfer was successfully initiated. Returns the transfer process ID and created timestamp","content":{"application/json":{"schema":{"type":"object","properties":{"@id":{"type":"string","example":null},"createdAt":{"type":"integer","format":"int64","example":null}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@id":"id-value","createdAt":1688465655}}}},"links":{"poll-state":{"operationId":"getTransferProcessState","parameters":{"id":"$response.body#/id"}}}},"400":{"description":"Request body was malformed","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}}},"method":"post","path":"/v2/transferprocesses","servers":[{"url":"/"}],"jsonRequestBodyExample":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@type":"https://w3id.org/edc/v0.0.1/ns/TransferRequest","protocol":"dataspace-protocol-http","connectorAddress":"http://provider-address","connectorId":"provider-id","contractId":"contract-id","assetId":"asset-id","dataDestination":{"type":"data-destination-type"},"properties":{"key":"value"},"privateProperties":{"private-key":"private-value"},"callbackAddresses":[{"transactional":false,"uri":"http://callback/url","events":["contract.negotiation","transfer.process"],"authKey":"auth-key","authCodeId":"auth-code-id"}]},"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"initiate Transfer Process","description":{"content":"Initiates a data transfer with the given parameters. Please note that successfully invoking this endpoint only means that the transfer was initiated. Clients must poll the /{id}/state endpoint to track the state","type":"text/plain"},"url":{"path":["v2","transferprocesses"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## initiateTransferProcess + + + +Initiates a data transfer with the given parameters. Please note that successfully invoking this endpoint only means that the transfer was initiated. Clients must poll the /{id}/state endpoint to track the state + +
      Request Body
        callbackAddresses object[]
        dataDestination object
        privateProperties object
      • property name* string
      • properties object
      • property name* string
      + +The transfer was successfully initiated. Returns the transfer process ID and created timestamp + +
      Schema
      + +Request body was malformed + +
      Schema array
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/initiate-transfer.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/initiate-transfer.api.mdx new file mode 100644 index 00000000000..f684c008f2b --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/initiate-transfer.api.mdx @@ -0,0 +1,38 @@ +--- +id: initiate-transfer +title: "initiateTransfer" +description: "Initiates a data transfer for the given request. The transfer will be performed asynchronously." +sidebar_label: "initiateTransfer" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Data Plane control API"],"description":"Initiates a data transfer for the given request. The transfer will be performed asynchronously.","operationId":"initiateTransfer","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"callbackAddress":{"type":"string","format":"url","example":null},"destinationDataAddress":{"type":"object","properties":{"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/DataAddress"},"type":{"type":"string","example":null}},"example":null},"id":{"type":"string","example":null},"processId":{"type":"string","example":null},"properties":{"type":"object","additionalProperties":{"type":"string","example":null},"example":null},"sourceDataAddress":{"type":"object","properties":{"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/DataAddress"},"type":{"type":"string","example":null}},"example":null},"traceContext":{"type":"object","additionalProperties":{"type":"string","example":null},"example":null},"trackable":{"type":"boolean","example":null}},"example":null}}}},"responses":{"200":{"description":"Data transfer initiated"},"400":{"description":"Failed to validate request"}},"method":"post","path":"/transfer","servers":[{"url":"/"}],"jsonRequestBodyExample":null,"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"initiate Transfer","description":{"content":"Initiates a data transfer for the given request. The transfer will be performed asynchronously.","type":"text/plain"},"url":{"path":["transfer"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## initiateTransfer + + + +Initiates a data transfer for the given request. The transfer will be performed asynchronously. + +
      Request Body
        destinationDataAddress object
        properties object
      • property name* string
      • sourceDataAddress object
        traceContext object
      • property name* string
      + +Data transfer initiated + +
      + +Failed to validate request + +
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/patch.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/patch.api.mdx new file mode 100644 index 00000000000..eaeed3a15c9 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/patch.api.mdx @@ -0,0 +1,42 @@ +--- +id: patch +title: "patch" +description: "Send `PATCH` data query to the Data Plane." +sidebar_label: "patch" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Data Plane public API"],"description":"Send `PATCH` data query to the Data Plane.","operationId":"patch","responses":{"400":{"description":"Missing access token"},"403":{"description":"Access token is expired or invalid"},"500":{"description":"Failed to transfer data"}},"method":"patch","path":"/{any}","servers":[{"url":"/"}],"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"patch","description":{"content":"Send `PATCH` data query to the Data Plane.","type":"text/plain"},"url":{"path":[":any"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"method":"PATCH"}} +sidebar_class_name: "patch api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## patch + + + +Send `PATCH` data query to the Data Plane. + +
      + +Missing access token + +
      + +Access token is expired or invalid + +
      + +Failed to transfer data + +
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/post.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/post.api.mdx new file mode 100644 index 00000000000..f5d969c439f --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/post.api.mdx @@ -0,0 +1,42 @@ +--- +id: post +title: "post" +description: "Send `POST` data query to the Data Plane." +sidebar_label: "post" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Data Plane public API"],"description":"Send `POST` data query to the Data Plane.","operationId":"post","responses":{"400":{"description":"Missing access token"},"403":{"description":"Access token is expired or invalid"},"500":{"description":"Failed to transfer data"}},"method":"post","path":"/{any}","servers":[{"url":"/"}],"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"post","description":{"content":"Send `POST` data query to the Data Plane.","type":"text/plain"},"url":{"path":[":any"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"method":"POST"}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## post + + + +Send `POST` data query to the Data Plane. + +
      + +Missing access token + +
      + +Access token is expired or invalid + +
      + +Failed to transfer data + +
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/put.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/put.api.mdx new file mode 100644 index 00000000000..ba74f2859fc --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/put.api.mdx @@ -0,0 +1,42 @@ +--- +id: put +title: "put" +description: "Send `PUT` data query to the Data Plane." +sidebar_label: "put" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Data Plane public API"],"description":"Send `PUT` data query to the Data Plane.","operationId":"put","responses":{"400":{"description":"Missing access token"},"403":{"description":"Access token is expired or invalid"},"500":{"description":"Failed to transfer data"}},"method":"put","path":"/{any}","servers":[{"url":"/"}],"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"put","description":{"content":"Send `PUT` data query to the Data Plane.","type":"text/plain"},"url":{"path":[":any"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"method":"PUT"}} +sidebar_class_name: "put api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## put + + + +Send `PUT` data query to the Data Plane. + +
      + +Missing access token + +
      + +Access token is expired or invalid + +
      + +Failed to transfer data + +
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/query-all-agreements.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/query-all-agreements.api.mdx new file mode 100644 index 00000000000..410d6313adb --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/query-all-agreements.api.mdx @@ -0,0 +1,38 @@ +--- +id: query-all-agreements +title: "queryAllAgreements" +description: "Gets all contract agreements according to a particular query" +sidebar_label: "queryAllAgreements" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Contract Agreement"],"description":"Gets all contract agreements according to a particular query","operationId":"queryAllAgreements","requestBody":{"content":{"*/*":{"schema":{"type":"object","properties":{"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/QuerySpec"},"filterExpression":{"type":"array","example":null,"items":{"type":"object","properties":{"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/Criterion"},"operandLeft":{"type":"object","example":null},"operandRight":{"type":"object","example":null},"operator":{"type":"string","example":null}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@type":"Criterion","operandLeft":"fieldName","operator":"=","operandRight":"some value"}}},"limit":{"type":"integer","format":"int32","example":null},"offset":{"type":"integer","format":"int32","example":null},"sortField":{"type":"string","example":null},"sortOrder":{"type":"string","example":null,"enum":["ASC","DESC"]}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@type":"QuerySpec","offset":5,"limit":10,"sortOrder":"DESC","sortField":"fieldName","filterExpression":[]}}}}},"responses":{"200":{"description":"The contract agreements matching the query","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"@id":{"type":"string","example":null},"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/ContractAgreement"},"assetId":{"type":"string","example":null},"consumerId":{"type":"string","example":null},"contractSigningDate":{"type":"integer","format":"int64","example":null},"policy":{"type":"object","properties":{"@type":{"type":"string","example":null,"enum":["SET","OFFER","CONTRACT"]},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"extensibleProperties":{"type":"object","additionalProperties":{"type":"object","example":null},"example":null},"inheritsFrom":{"type":"string","example":null},"obligations":{"type":"array","example":null,"items":{"type":"object","properties":{"action":{"type":"object","properties":{"constraint":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}},"includedIn":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"consequence":"circular()","constraints":{"type":"array","example":null,"items":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}}},"parentPermission":{"type":"object","properties":{"action":{"type":"object","properties":{"constraint":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}},"includedIn":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"constraints":{"type":"array","example":null,"items":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}}},"duties":{"type":"array","example":null,"items":"circular()"},"target":{"type":"string","example":null}},"example":null},"target":{"type":"string","example":null}},"example":null}},"permissions":{"type":"array","example":null,"items":{"type":"object","properties":{"action":{"type":"object","properties":{"constraint":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}},"includedIn":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"constraints":{"type":"array","example":null,"items":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}}},"duties":{"type":"array","example":null,"items":{"type":"object","properties":{"action":{"type":"object","properties":{"constraint":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}},"includedIn":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"consequence":"circular()","constraints":{"type":"array","example":null,"items":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}}},"parentPermission":"circular()","target":{"type":"string","example":null}},"example":null}},"target":{"type":"string","example":null}},"example":null}},"prohibitions":{"type":"array","example":null,"items":{"type":"object","properties":{"action":{"type":"object","properties":{"constraint":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}},"includedIn":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"constraints":{"type":"array","example":null,"items":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}}},"target":{"type":"string","example":null}},"example":null}},"target":{"type":"string","example":null}},"example":null},"providerId":{"type":"string","example":null}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@type":"https://w3id.org/edc/v0.0.1/ns/ContractAgreement","@id":"negotiation-id","providerId":"provider-id","consumerId":"consumer-id","assetId":"asset-id","contractSigningDate":1688465655,"policy":{"@context":"http://www.w3.org/ns/odrl.jsonld","@type":"Set","@id":"offer-id","permission":[{"target":"asset-id","action":"display"}]}}}}}}},"400":{"description":"Request body was malformed","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}}},"method":"post","path":"/v2/contractagreements/request","servers":[{"url":"/"}],"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"query All Agreements","description":{"content":"Gets all contract agreements according to a particular query","type":"text/plain"},"url":{"path":["v2","contractagreements","request"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"*/*"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\""}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## queryAllAgreements + + + +Gets all contract agreements according to a particular query + +
      Request Body
        filterExpression object[]
      + +The contract agreements matching the query + +
      Schema array
        policy object
        extensibleProperties object
      • property name* object
      • obligations object[]
        action object
        constraint object
        constraints object[]
        parentPermission object
        action object
        constraint object
        constraints object[]
        permissions object[]
        action object
        constraint object
        constraints object[]
        duties object[]
        action object
        constraint object
        constraints object[]
        prohibitions object[]
        action object
        constraint object
        constraints object[]
      + +Request body was malformed + +
      Schema array
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/query-all-contract-definitions.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/query-all-contract-definitions.api.mdx new file mode 100644 index 00000000000..1aed027b0ff --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/query-all-contract-definitions.api.mdx @@ -0,0 +1,38 @@ +--- +id: query-all-contract-definitions +title: "queryAllContractDefinitions" +description: "Returns all contract definitions according to a query" +sidebar_label: "queryAllContractDefinitions" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Contract Definition"],"description":"Returns all contract definitions according to a query","operationId":"queryAllContractDefinitions","requestBody":{"content":{"*/*":{"schema":{"type":"object","properties":{"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/QuerySpec"},"filterExpression":{"type":"array","example":null,"items":{"type":"object","properties":{"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/Criterion"},"operandLeft":{"type":"object","example":null},"operandRight":{"type":"object","example":null},"operator":{"type":"string","example":null}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@type":"Criterion","operandLeft":"fieldName","operator":"=","operandRight":"some value"}}},"limit":{"type":"integer","format":"int32","example":null},"offset":{"type":"integer","format":"int32","example":null},"sortField":{"type":"string","example":null},"sortOrder":{"type":"string","example":null,"enum":["ASC","DESC"]}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@type":"QuerySpec","offset":5,"limit":10,"sortOrder":"DESC","sortField":"fieldName","filterExpression":[]}}}}},"responses":{"200":{"description":"The contract definitions matching the query","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"@id":{"type":"string","example":null},"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/ContractDefinition"},"accessPolicyId":{"type":"string","example":null},"assetsSelector":{"type":"array","example":null,"items":{"type":"object","properties":{"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/Criterion"},"operandLeft":{"type":"object","example":null},"operandRight":{"type":"object","example":null},"operator":{"type":"string","example":null}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@type":"Criterion","operandLeft":"fieldName","operator":"=","operandRight":"some value"}}},"contractPolicyId":{"type":"string","example":null},"createdAt":{"type":"integer","format":"int64","example":null}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@id":"definition-id","edc:accessPolicyId":"asset-policy-id","edc:contractPolicyId":"contract-policy-id","edc:assetsSelector":[],"edc:createdAt":1688465655}}}}}},"400":{"description":"Request was malformed","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}}},"method":"post","path":"/v2/contractdefinitions/request","servers":[{"url":"/"}],"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"query All Contract Definitions","description":{"content":"Returns all contract definitions according to a query","type":"text/plain"},"url":{"path":["v2","contractdefinitions","request"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"*/*"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\""}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## queryAllContractDefinitions + + + +Returns all contract definitions according to a query + +
      Request Body
        filterExpression object[]
      + +The contract definitions matching the query + +
      Schema array
        assetsSelector object[]
      + +Request was malformed + +
      Schema array
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/query-edrs.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/query-edrs.api.mdx new file mode 100644 index 00000000000..3766d192564 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/query-edrs.api.mdx @@ -0,0 +1,34 @@ +--- +id: query-edrs +title: "queryEdrs" +description: "Returns all EndpointDataReference entry according to a query" +sidebar_label: "queryEdrs" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Control Plane EDR Api"],"description":"Returns all EndpointDataReference entry according to a query","operationId":"queryEdrs","parameters":[{"name":"assetId","in":"query","required":false,"style":"form","explode":true,"schema":{"type":"string","example":null}},{"name":"agreementId","in":"query","required":false,"style":"form","explode":true,"schema":{"type":"string","example":null}},{"name":"providerId","in":"query","required":false,"style":"form","explode":true,"schema":{"type":"string","example":null}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"agreementId":{"type":"string","example":null},"assetId":{"type":"string","example":null},"createdAt":{"type":"integer","format":"int64","example":null},"errorDetail":{"type":"string","example":null},"expirationTimestamp":{"type":"integer","format":"int64","example":null},"id":{"type":"string","example":null},"providerId":{"type":"string","example":null},"state":{"type":"integer","format":"int32","example":null},"stateCount":{"type":"integer","format":"int32","example":null},"stateTimestamp":{"type":"integer","format":"int64","example":null},"traceContext":{"type":"object","additionalProperties":{"type":"string","example":null},"example":null},"transferProcessId":{"type":"string","example":null},"updatedAt":{"type":"integer","format":"int64","example":null}},"example":null}}}}},"400":{"description":"Request was malformed","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}}},"method":"get","path":"/edrs","servers":[{"url":"/"}],"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"query Edrs","description":{"content":"Returns all EndpointDataReference entry according to a query","type":"text/plain"},"url":{"path":["edrs"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"key":"assetId","value":""},{"disabled":false,"key":"agreementId","value":""},{"disabled":false,"key":"providerId","value":""}],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## queryEdrs + + + +Returns all EndpointDataReference entry according to a query + +
      Query Parameters
      Schema array
        traceContext object
      • property name* string
      + +Request was malformed + +
      Schema array
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/query-negotiations.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/query-negotiations.api.mdx new file mode 100644 index 00000000000..ff1ba8aba03 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/query-negotiations.api.mdx @@ -0,0 +1,38 @@ +--- +id: query-negotiations +title: "queryNegotiations" +description: "Returns all contract negotiations according to a query" +sidebar_label: "queryNegotiations" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Contract Negotiation"],"description":"Returns all contract negotiations according to a query","operationId":"queryNegotiations","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/QuerySpec"},"filterExpression":{"type":"array","example":null,"items":{"type":"object","properties":{"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/Criterion"},"operandLeft":{"type":"object","example":null},"operandRight":{"type":"object","example":null},"operator":{"type":"string","example":null}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@type":"Criterion","operandLeft":"fieldName","operator":"=","operandRight":"some value"}}},"limit":{"type":"integer","format":"int32","example":null},"offset":{"type":"integer","format":"int32","example":null},"sortField":{"type":"string","example":null},"sortOrder":{"type":"string","example":null,"enum":["ASC","DESC"]}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@type":"QuerySpec","offset":5,"limit":10,"sortOrder":"DESC","sortField":"fieldName","filterExpression":[]}}}}},"responses":{"200":{"description":"The contract negotiations that match the query","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"@id":{"type":"string","example":null},"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/ContractNegotiation"},"callbackAddresses":{"type":"array","example":null,"items":{"type":"object","properties":{"authCodeId":{"type":"string","example":null},"authKey":{"type":"string","example":null},"events":{"uniqueItems":true,"type":"array","example":null,"items":{"type":"string","example":null}},"transactional":{"type":"boolean","example":null},"uri":{"type":"string","example":null}},"example":null}},"contractAgreementId":{"type":"string","example":null},"counterPartyAddress":{"type":"string","example":null},"counterPartyId":{"type":"string","example":null},"errorDetail":{"type":"string","example":null},"protocol":{"type":"string","example":null},"state":{"type":"string","example":null},"type":{"type":"string","example":null,"enum":["CONSUMER","PROVIDER"]}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@type":"https://w3id.org/edc/v0.0.1/ns/ContractNegotiation","@id":"negotiation-id","type":"PROVIDER","protocol":"dataspace-protocol-http","counterPartyId":"counter-party-id","counterPartyAddress":"http://counter/party/address","state":"VERIFIED","contractAgreementId":"contract:agreement:id","errorDetail":"eventual-error-detail","createdAt":1688465655,"callbackAddresses":[{"transactional":false,"uri":"http://callback/url","events":["contract.negotiation","transfer.process"],"authKey":"auth-key","authCodeId":"auth-code-id"}]}}}}}},"400":{"description":"Request was malformed","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}}},"method":"post","path":"/v2/contractnegotiations/request","servers":[{"url":"/"}],"jsonRequestBodyExample":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@type":"QuerySpec","offset":5,"limit":10,"sortOrder":"DESC","sortField":"fieldName","filterExpression":[]},"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"query Negotiations","description":{"content":"Returns all contract negotiations according to a query","type":"text/plain"},"url":{"path":["v2","contractnegotiations","request"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## queryNegotiations + + + +Returns all contract negotiations according to a query + +
      Request Body
        filterExpression object[]
      + +The contract negotiations that match the query + +
      Schema array
        callbackAddresses object[]
      + +Request was malformed + +
      Schema array
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/query-policy-definitions.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/query-policy-definitions.api.mdx new file mode 100644 index 00000000000..d6f9b2ba231 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/query-policy-definitions.api.mdx @@ -0,0 +1,38 @@ +--- +id: query-policy-definitions +title: "queryPolicyDefinitions" +description: "Returns all policy definitions according to a query" +sidebar_label: "queryPolicyDefinitions" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Policy Definition"],"description":"Returns all policy definitions according to a query","operationId":"queryPolicyDefinitions","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/QuerySpec"},"filterExpression":{"type":"array","example":null,"items":{"type":"object","properties":{"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/Criterion"},"operandLeft":{"type":"object","example":null},"operandRight":{"type":"object","example":null},"operator":{"type":"string","example":null}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@type":"Criterion","operandLeft":"fieldName","operator":"=","operandRight":"some value"}}},"limit":{"type":"integer","format":"int32","example":null},"offset":{"type":"integer","format":"int32","example":null},"sortField":{"type":"string","example":null},"sortOrder":{"type":"string","example":null,"enum":["ASC","DESC"]}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@type":"QuerySpec","offset":5,"limit":10,"sortOrder":"DESC","sortField":"fieldName","filterExpression":[]}}}}},"responses":{"200":{"description":"The policy definitions matching the query","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"@id":{"type":"string","example":null},"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/PolicyDefinition"},"policy":{"type":"object","properties":{"@type":{"type":"string","example":null,"enum":["SET","OFFER","CONTRACT"]},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"extensibleProperties":{"type":"object","additionalProperties":{"type":"object","example":null},"example":null},"inheritsFrom":{"type":"string","example":null},"obligations":{"type":"array","example":null,"items":{"type":"object","properties":{"action":{"type":"object","properties":{"constraint":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}},"includedIn":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"consequence":"circular()","constraints":{"type":"array","example":null,"items":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}}},"parentPermission":{"type":"object","properties":{"action":{"type":"object","properties":{"constraint":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}},"includedIn":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"constraints":{"type":"array","example":null,"items":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}}},"duties":{"type":"array","example":null,"items":"circular()"},"target":{"type":"string","example":null}},"example":null},"target":{"type":"string","example":null}},"example":null}},"permissions":{"type":"array","example":null,"items":{"type":"object","properties":{"action":{"type":"object","properties":{"constraint":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}},"includedIn":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"constraints":{"type":"array","example":null,"items":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}}},"duties":{"type":"array","example":null,"items":{"type":"object","properties":{"action":{"type":"object","properties":{"constraint":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}},"includedIn":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"consequence":"circular()","constraints":{"type":"array","example":null,"items":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}}},"parentPermission":"circular()","target":{"type":"string","example":null}},"example":null}},"target":{"type":"string","example":null}},"example":null}},"prohibitions":{"type":"array","example":null,"items":{"type":"object","properties":{"action":{"type":"object","properties":{"constraint":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}},"includedIn":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"constraints":{"type":"array","example":null,"items":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}}},"target":{"type":"string","example":null}},"example":null}},"target":{"type":"string","example":null}},"example":null}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@id":"definition-id","policy":{"@context":"http://www.w3.org/ns/odrl.jsonld","@type":"Set","uid":"http://example.com/policy:1010","permission":[{"target":"http://example.com/asset:9898.movie","action":"display","constraint":[{"leftOperand":"spatial","operator":"eq","rightOperand":"https://www.wikidata.org/wiki/Q183","comment":"i.e Germany"}]}]},"createdAt":1688465655}}}}}},"400":{"description":"Request was malformed","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}}},"method":"post","path":"/v2/policydefinitions/request","servers":[{"url":"/"}],"jsonRequestBodyExample":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@type":"QuerySpec","offset":5,"limit":10,"sortOrder":"DESC","sortField":"fieldName","filterExpression":[]},"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"query Policy Definitions","description":{"content":"Returns all policy definitions according to a query","type":"text/plain"},"url":{"path":["v2","policydefinitions","request"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## queryPolicyDefinitions + + + +Returns all policy definitions according to a query + +
      Request Body
        filterExpression object[]
      + +The policy definitions matching the query + +
      Schema array
        policy object
        extensibleProperties object
      • property name* object
      • obligations object[]
        action object
        constraint object
        constraints object[]
        parentPermission object
        action object
        constraint object
        constraints object[]
        permissions object[]
        action object
        constraint object
        constraints object[]
        duties object[]
        action object
        constraint object
        constraints object[]
        prohibitions object[]
        action object
        constraint object
        constraints object[]
      + +Request was malformed + +
      Schema array
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/query-transfer-processes.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/query-transfer-processes.api.mdx new file mode 100644 index 00000000000..dca70e5e594 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/query-transfer-processes.api.mdx @@ -0,0 +1,38 @@ +--- +id: query-transfer-processes +title: "queryTransferProcesses" +description: "Returns all transfer process according to a query" +sidebar_label: "queryTransferProcesses" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Transfer Process"],"description":"Returns all transfer process according to a query","operationId":"queryTransferProcesses","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/QuerySpec"},"filterExpression":{"type":"array","example":null,"items":{"type":"object","properties":{"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/Criterion"},"operandLeft":{"type":"object","example":null},"operandRight":{"type":"object","example":null},"operator":{"type":"string","example":null}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@type":"Criterion","operandLeft":"fieldName","operator":"=","operandRight":"some value"}}},"limit":{"type":"integer","format":"int32","example":null},"offset":{"type":"integer","format":"int32","example":null},"sortField":{"type":"string","example":null},"sortOrder":{"type":"string","example":null,"enum":["ASC","DESC"]}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@type":"QuerySpec","offset":5,"limit":10,"sortOrder":"DESC","sortField":"fieldName","filterExpression":[]}}}}},"responses":{"200":{"description":"The transfer processes matching the query","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"@id":{"type":"string","example":null},"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/TransferProcess"},"callbackAddresses":{"type":"array","example":null,"items":{"type":"object","properties":{"authCodeId":{"type":"string","example":null},"authKey":{"type":"string","example":null},"events":{"uniqueItems":true,"type":"array","example":null,"items":{"type":"string","example":null}},"transactional":{"type":"boolean","example":null},"uri":{"type":"string","example":null}},"example":null}},"contractAgreementId":{"type":"string","example":null},"counterPartyAddress":{"type":"string","example":null},"counterPartyId":{"type":"string","example":null},"errorDetail":{"type":"string","example":null},"protocol":{"type":"string","example":null},"state":{"type":"string","example":null},"type":{"type":"string","example":null,"enum":["CONSUMER","PROVIDER"]}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@type":"https://w3id.org/edc/v0.0.1/ns/TransferProcess","@id":"process-id","correlationId":"correlation-id","type":"PROVIDER","state":"STARTED","stateTimestamp":1688465655,"assetId":"asset-id","connectorId":"connectorId","contractId":"contractId","dataDestination":{"type":"data-destination-type"},"properties":{"key":"value"},"privateProperties":{"private-key":"private-value"},"errorDetail":"eventual-error-detail","createdAt":1688465655,"callbackAddresses":[{"transactional":false,"uri":"http://callback/url","events":["contract.negotiation","transfer.process"],"authKey":"auth-key","authCodeId":"auth-code-id"}]}}}}}},"400":{"description":"Request was malformed","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}}},"method":"post","path":"/v2/transferprocesses/request","servers":[{"url":"/"}],"jsonRequestBodyExample":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@type":"QuerySpec","offset":5,"limit":10,"sortOrder":"DESC","sortField":"fieldName","filterExpression":[]},"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"query Transfer Processes","description":{"content":"Returns all transfer process according to a query","type":"text/plain"},"url":{"path":["v2","transferprocesses","request"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## queryTransferProcesses + + + +Returns all transfer process according to a query + +
      Request Body
        filterExpression object[]
      + +The transfer processes matching the query + +
      Schema array
        callbackAddresses object[]
      + +Request was malformed + +
      Schema array
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/remove-asset-1.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/remove-asset-1.api.mdx new file mode 100644 index 00000000000..a4d76c36760 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/remove-asset-1.api.mdx @@ -0,0 +1,46 @@ +--- +id: remove-asset-1 +title: "removeAsset_1" +description: "Removes an asset with the given ID if possible. Deleting an asset is only possible if that asset is not yet referenced by a contract agreement, in which case an error is returned. DANGER ZONE: Note that deleting assets can have unexpected results, especially for contract offers that have been sent out or ongoing or contract negotiations." +sidebar_label: "removeAsset_1" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Asset"],"description":"Removes an asset with the given ID if possible. Deleting an asset is only possible if that asset is not yet referenced by a contract agreement, in which case an error is returned. DANGER ZONE: Note that deleting assets can have unexpected results, especially for contract offers that have been sent out or ongoing or contract negotiations.","operationId":"removeAsset_1","parameters":[{"name":"id","in":"path","required":true,"style":"simple","explode":false,"schema":{"type":"string","example":null}}],"responses":{"200":{"description":"Asset was deleted successfully"},"400":{"description":"Request was malformed, e.g. id was null","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}},"404":{"description":"An asset with the given ID does not exist","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}},"409":{"description":"The asset cannot be deleted, because it is referenced by a contract agreement","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}}},"method":"delete","path":"/v3/assets/{id}","servers":[{"url":"/"}],"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"remove Asset 1","description":{"content":"Removes an asset with the given ID if possible. Deleting an asset is only possible if that asset is not yet referenced by a contract agreement, in which case an error is returned. DANGER ZONE: Note that deleting assets can have unexpected results, especially for contract offers that have been sent out or ongoing or contract negotiations.","type":"text/plain"},"url":{"path":["v3","assets",":id"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"","key":"id"}]},"header":[{"key":"Accept","value":"application/json"}],"method":"DELETE"}} +sidebar_class_name: "delete api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## removeAsset_1 + + + +Removes an asset with the given ID if possible. Deleting an asset is only possible if that asset is not yet referenced by a contract agreement, in which case an error is returned. DANGER ZONE: Note that deleting assets can have unexpected results, especially for contract offers that have been sent out or ongoing or contract negotiations. + +
      Path Parameters
      + +Asset was deleted successfully + +
      + +Request was malformed, e.g. id was null + +
      Schema array
      + +An asset with the given ID does not exist + +
      Schema array
      + +The asset cannot be deleted, because it is referenced by a contract agreement + +
      Schema array
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/remove-asset.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/remove-asset.api.mdx new file mode 100644 index 00000000000..1ae7e07115e --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/remove-asset.api.mdx @@ -0,0 +1,50 @@ +--- +id: remove-asset +title: "removeAsset" +description: "Removes an asset with the given ID if possible. Deleting an asset is only possible if that asset is not yet referenced by a contract agreement, in which case an error is returned. DANGER ZONE: Note that deleting assets can have unexpected results, especially for contract offers that have been sent out or ongoing or contract negotiations." +sidebar_label: "removeAsset" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Asset"],"description":"Removes an asset with the given ID if possible. Deleting an asset is only possible if that asset is not yet referenced by a contract agreement, in which case an error is returned. DANGER ZONE: Note that deleting assets can have unexpected results, especially for contract offers that have been sent out or ongoing or contract negotiations.","operationId":"removeAsset","parameters":[{"name":"id","in":"path","required":true,"style":"simple","explode":false,"schema":{"type":"string","example":null}}],"responses":{"200":{"description":"Asset was deleted successfully"},"400":{"description":"Request was malformed, e.g. id was null","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}},"404":{"description":"An asset with the given ID does not exist","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}},"409":{"description":"The asset cannot be deleted, because it is referenced by a contract agreement","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}}},"deprecated":true,"method":"delete","path":"/v2/assets/{id}","servers":[{"url":"/"}],"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"remove Asset","description":{"content":"Removes an asset with the given ID if possible. Deleting an asset is only possible if that asset is not yet referenced by a contract agreement, in which case an error is returned. DANGER ZONE: Note that deleting assets can have unexpected results, especially for contract offers that have been sent out or ongoing or contract negotiations.","type":"text/plain"},"url":{"path":["v2","assets",":id"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"","key":"id"}]},"header":[{"key":"Accept","value":"application/json"}],"method":"DELETE"}} +sidebar_class_name: "delete api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## removeAsset + +:::caution deprecated + +This endpoint has been deprecated and may be removed in future versions of the API. + +::: + +Removes an asset with the given ID if possible. Deleting an asset is only possible if that asset is not yet referenced by a contract agreement, in which case an error is returned. DANGER ZONE: Note that deleting assets can have unexpected results, especially for contract offers that have been sent out or ongoing or contract negotiations. + +
      Path Parameters
      + +Asset was deleted successfully + +
      + +Request was malformed, e.g. id was null + +
      Schema array
      + +An asset with the given ID does not exist + +
      Schema array
      + +The asset cannot be deleted, because it is referenced by a contract agreement + +
      Schema array
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/request-asset.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/request-asset.api.mdx new file mode 100644 index 00000000000..baa335693c5 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/request-asset.api.mdx @@ -0,0 +1,34 @@ +--- +id: request-asset +title: "requestAsset" +description: "requestAsset" +sidebar_label: "requestAsset" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Data Plane Proxy API"],"operationId":"requestAsset","requestBody":{"content":{"*/*":{"schema":{"type":"object","properties":{"assetId":{"type":"string","example":null},"endpointUrl":{"type":"string","example":null},"pathSegments":{"type":"string","example":null},"providerId":{"type":"string","example":null},"queryParams":{"type":"string","example":null},"transferProcessId":{"type":"string","example":null}},"example":null}}}},"responses":{"default":{"description":"Requests asset data","content":{"application/json":{"schema":{"type":"object","properties":{"assetId":{"type":"string","example":null},"endpointUrl":{"type":"string","example":null},"pathSegments":{"type":"string","example":null},"providerId":{"type":"string","example":null},"queryParams":{"type":"string","example":null},"transferProcessId":{"type":"string","example":null}},"example":null}}}}},"description":"requestAsset","method":"post","path":"/aas/request","servers":[{"url":"/"}],"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"request Asset","description":{"type":"text/plain"},"url":{"path":["aas","request"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"*/*"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\""}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## requestAsset + + + +requestAsset + +
      Request Body
      + +Requests asset data + +
      Schema
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/request-assets-1.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/request-assets-1.api.mdx new file mode 100644 index 00000000000..bcd9cedf2ac --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/request-assets-1.api.mdx @@ -0,0 +1,38 @@ +--- +id: request-assets-1 +title: "requestAssets_1" +description: " all assets according to a particular query" +sidebar_label: "requestAssets_1" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Asset"],"description":" all assets according to a particular query","operationId":"requestAssets_1","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/QuerySpec"},"filterExpression":{"type":"array","example":null,"items":{"type":"object","properties":{"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/Criterion"},"operandLeft":{"type":"object","example":null},"operandRight":{"type":"object","example":null},"operator":{"type":"string","example":null}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@type":"Criterion","operandLeft":"fieldName","operator":"=","operandRight":"some value"}}},"limit":{"type":"integer","format":"int32","example":null},"offset":{"type":"integer","format":"int32","example":null},"sortField":{"type":"string","example":null},"sortOrder":{"type":"string","example":null,"enum":["ASC","DESC"]}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@type":"QuerySpec","offset":5,"limit":10,"sortOrder":"DESC","sortField":"fieldName","filterExpression":[]}}}}},"responses":{"200":{"description":"The assets matching the query","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"@id":{"type":"string","example":null},"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/Asset"},"createdAt":{"type":"integer","format":"int64","example":null},"dataAddress":{"type":"object","properties":{"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/DataAddress"},"type":{"type":"string","example":null}},"example":null},"privateProperties":{"type":"object","additionalProperties":{"type":"object","example":null},"example":null},"properties":{"type":"object","additionalProperties":{"type":"object","example":null},"example":null}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@id":"definition-id","edc:properties":{"edc:key":"value"},"edc:privateProperties":{"edc:privateKey":"privateValue"},"edc:dataAddress":{"edc:type":"HttpData"},"edc:createdAt":1688465655}}}}}},"400":{"description":"Request body was malformed","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}}},"method":"post","path":"/v3/assets/request","servers":[{"url":"/"}],"jsonRequestBodyExample":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@type":"QuerySpec","offset":5,"limit":10,"sortOrder":"DESC","sortField":"fieldName","filterExpression":[]},"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"request Assets 1","description":{"content":" all assets according to a particular query","type":"text/plain"},"url":{"path":["v3","assets","request"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## requestAssets_1 + + + + all assets according to a particular query + +
      Request Body
        filterExpression object[]
      + +The assets matching the query + +
      Schema array
        dataAddress object
        privateProperties object
      • property name* object
      • properties object
      • property name* object
      + +Request body was malformed + +
      Schema array
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/request-assets.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/request-assets.api.mdx new file mode 100644 index 00000000000..52cfd8f6ca3 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/request-assets.api.mdx @@ -0,0 +1,42 @@ +--- +id: request-assets +title: "requestAssets" +description: " all assets according to a particular query" +sidebar_label: "requestAssets" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Asset"],"description":" all assets according to a particular query","operationId":"requestAssets","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/QuerySpec"},"filterExpression":{"type":"array","example":null,"items":{"type":"object","properties":{"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/Criterion"},"operandLeft":{"type":"object","example":null},"operandRight":{"type":"object","example":null},"operator":{"type":"string","example":null}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@type":"Criterion","operandLeft":"fieldName","operator":"=","operandRight":"some value"}}},"limit":{"type":"integer","format":"int32","example":null},"offset":{"type":"integer","format":"int32","example":null},"sortField":{"type":"string","example":null},"sortOrder":{"type":"string","example":null,"enum":["ASC","DESC"]}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@type":"QuerySpec","offset":5,"limit":10,"sortOrder":"DESC","sortField":"fieldName","filterExpression":[]}}}}},"responses":{"200":{"description":"The assets matching the query","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"createdAt":{"type":"integer","format":"int64","example":null},"dataAddress":{"type":"object","properties":{"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/DataAddress"},"type":{"type":"string","example":null}},"example":null},"id":{"type":"string","example":null},"privateProperties":{"type":"object","additionalProperties":{"type":"object","example":null},"example":null},"properties":{"type":"object","additionalProperties":{"type":"object","example":null},"example":null}},"example":null}}}}},"400":{"description":"Request body was malformed","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}}},"deprecated":true,"method":"post","path":"/v2/assets/request","servers":[{"url":"/"}],"jsonRequestBodyExample":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@type":"QuerySpec","offset":5,"limit":10,"sortOrder":"DESC","sortField":"fieldName","filterExpression":[]},"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"request Assets","description":{"content":" all assets according to a particular query","type":"text/plain"},"url":{"path":["v2","assets","request"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## requestAssets + +:::caution deprecated + +This endpoint has been deprecated and may be removed in future versions of the API. + +::: + + all assets according to a particular query + +
      Request Body
        filterExpression object[]
      + +The assets matching the query + +
      Schema array
        dataAddress object
        privateProperties object
      • property name* object
      • properties object
      • property name* object
      + +Request body was malformed + +
      Schema array
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/request-catalog.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/request-catalog.api.mdx new file mode 100644 index 00000000000..3b6bc2afc40 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/request-catalog.api.mdx @@ -0,0 +1,38 @@ +--- +id: request-catalog +title: "requestCatalog" +description: "requestCatalog" +sidebar_label: "requestCatalog" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Catalog"],"operationId":"requestCatalog","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/CatalogRequest"},"protocol":{"type":"string","example":null},"querySpec":{"type":"object","properties":{"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/QuerySpec"},"filterExpression":{"type":"array","example":null,"items":{"type":"object","properties":{"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/Criterion"},"operandLeft":{"type":"object","example":null},"operandRight":{"type":"object","example":null},"operator":{"type":"string","example":null}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@type":"Criterion","operandLeft":"fieldName","operator":"=","operandRight":"some value"}}},"limit":{"type":"integer","format":"int32","example":null},"offset":{"type":"integer","format":"int32","example":null},"sortField":{"type":"string","example":null},"sortOrder":{"type":"string","example":null,"enum":["ASC","DESC"]}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@type":"QuerySpec","offset":5,"limit":10,"sortOrder":"DESC","sortField":"fieldName","filterExpression":[]}}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@type":"CatalogRequest","providerUrl":"http://provider-address","protocol":"dataspace-protocol-http","querySpec":{"offset":0,"limit":50,"sortOrder":"DESC","sortField":"fieldName","filterExpression":[]}}}}}},"responses":{"default":{"description":"Gets contract offers (=catalog) of a single connector","content":{"application/json":{"schema":{"type":"object","description":"DCAT catalog","example":{"@id":"7df65569-8c59-4013-b1c0-fa14f6641bf2","@type":"dcat:Catalog","dcat:dataset":{"@id":"bcca61be-e82e-4da6-bfec-9716a56cef35","@type":"dcat:Dataset","odrl:hasPolicy":{"@id":"OGU0ZTMzMGMtODQ2ZS00ZWMxLThmOGQtNWQxNWM0NmI2NmY4:YmNjYTYxYmUtZTgyZS00ZGE2LWJmZWMtOTcxNmE1NmNlZjM1:NDY2ZTZhMmEtNjQ1Yy00ZGQ0LWFlZDktMjdjNGJkZTU4MDNj","@type":"odrl:Set","odrl:permission":{"odrl:target":"bcca61be-e82e-4da6-bfec-9716a56cef35","odrl:action":{"odrl:type":"http://www.w3.org/ns/odrl/2/use"},"odrl:constraint":{"odrl:and":[{"odrl:leftOperand":"https://w3id.org/edc/v0.0.1/ns/inForceDate","odrl:operator":{"@id":"odrl:gteq"},"odrl:rightOperand":"2023-07-07T07:19:58.585601395Z"},{"odrl:leftOperand":"https://w3id.org/edc/v0.0.1/ns/inForceDate","odrl:operator":{"@id":"odrl:lteq"},"odrl:rightOperand":"2023-07-12T07:19:58.585601395Z"}]}},"odrl:prohibition":[],"odrl:obligation":[],"odrl:target":"bcca61be-e82e-4da6-bfec-9716a56cef35"},"dcat:distribution":[{"@type":"dcat:Distribution","dct:format":{"@id":"HttpData"},"dcat:accessService":"5e839777-d93e-4785-8972-1005f51cf367"}],"edc:description":"description","edc:id":"bcca61be-e82e-4da6-bfec-9716a56cef35"},"dcat:service":{"@id":"5e839777-d93e-4785-8972-1005f51cf367","@type":"dcat:DataService","dct:terms":"connector","dct:endpointUrl":"http://localhost:16806/protocol"},"edc:participantId":"urn:connector:provider","@context":{"dct":"https://purl.org/dc/terms/","edc":"https://w3id.org/edc/v0.0.1/ns/","dcat":"https://www.w3.org/ns/dcat/","odrl":"http://www.w3.org/ns/odrl/2/","dspace":"https://w3id.org/dspace/v0.8/"}}}}}}},"description":"requestCatalog","method":"post","path":"/v2/catalog/request","servers":[{"url":"/"}],"jsonRequestBodyExample":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@type":"CatalogRequest","providerUrl":"http://provider-address","protocol":"dataspace-protocol-http","querySpec":{"offset":0,"limit":50,"sortOrder":"DESC","sortField":"fieldName","filterExpression":[]}},"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"request Catalog","description":{"type":"text/plain"},"url":{"path":["v2","catalog","request"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## requestCatalog + + + +requestCatalog + +
      Request Body
        querySpec object
        filterExpression object[]
      + +Gets contract offers (=catalog) of a single connector + +
      Schema
      • object
        + +DCAT catalog + +
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/resolve.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/resolve.api.mdx new file mode 100644 index 00000000000..3f9b88d2db3 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/resolve.api.mdx @@ -0,0 +1,42 @@ +--- +id: resolve +title: "resolve" +description: "Resolves all groups for a particular BPN" +sidebar_label: "resolve" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Business Partner Group"],"description":"Resolves all groups for a particular BPN","operationId":"resolve","parameters":[{"name":"bpn","in":"path","description":"The business partner number","required":true,"style":"simple","explode":false,"schema":{"type":"string","example":null}}],"responses":{"200":{"description":"An object containing an array with the assigned groups"},"400":{"description":"Request body was malformed","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}},"404":{"description":"No entry for the given BPN was found"}},"method":"get","path":"/business-partner-groups/{bpn}","servers":[{"url":"/"}],"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"resolve","description":{"content":"Resolves all groups for a particular BPN","type":"text/plain"},"url":{"path":["business-partner-groups",":bpn"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) The business partner number","type":"text/plain"},"type":"any","value":"","key":"bpn"}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## resolve + + + +Resolves all groups for a particular BPN + +
      Path Parameters
      + +An object containing an array with the assigned groups + +
      + +Request body was malformed + +
      Schema array
      + +No entry for the given BPN was found + +
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/sidebar.js b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/sidebar.js new file mode 100644 index 00000000000..21e2fbb7dc8 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/sidebar.js @@ -0,0 +1 @@ +module.exports = [{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api"},{"type":"category","label":"Data Plane control API","link":{"type":"generated-index","title":"Data Plane control API","slug":"/category/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/data-plane-control-api"},"items":[{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/initiate-transfer","label":"initiateTransfer","className":"api-method post"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-transfer-state","label":"getTransferState","className":"api-method get"}]},{"type":"category","label":"Data Plane public API","link":{"type":"generated-index","title":"Data Plane public API","slug":"/category/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/data-plane-public-api"},"items":[{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get","label":"get","className":"api-method get"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/put","label":"put","className":"api-method put"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/post","label":"post","className":"api-method post"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/delete","label":"delete","className":"api-method delete"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/patch","label":"patch","className":"api-method patch"}]},{"type":"category","label":"Data Plane Proxy API","link":{"type":"generated-index","title":"Data Plane Proxy API","slug":"/category/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/data-plane-proxy-api"},"items":[{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/request-asset","label":"requestAsset","className":"api-method post"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/request-asset","label":"requestAsset","className":"api-method get"}]},{"type":"category","label":"Business Partner Group","link":{"type":"generated-index","title":"Business Partner Group","slug":"/category/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/business-partner-group"},"items":[{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/update-entry","label":"updateEntry","className":"api-method put"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/create-entry","label":"createEntry","className":"api-method post"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/resolve","label":"resolve","className":"api-method get"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/delete-entry","label":"deleteEntry","className":"api-method delete"}]},{"type":"category","label":"HTTP Provisioner Webhook","link":{"type":"generated-index","title":"HTTP Provisioner Webhook","slug":"/category/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/http-provisioner-webhook"},"items":[{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/call-deprovision-webhook","label":"callDeprovisionWebhook","className":"api-method post"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/call-provision-webhook","label":"callProvisionWebhook","className":"api-method post"}]},{"type":"category","label":"Application Observability","link":{"type":"generated-index","title":"Application Observability","slug":"/category/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/application-observability"},"items":[{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/check-health","label":"checkHealth","className":"api-method get"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-liveness","label":"getLiveness","className":"api-method get"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-readiness","label":"getReadiness","className":"api-method get"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-startup","label":"getStartup","className":"api-method get"}]},{"type":"category","label":"Control Plane EDR Api","link":{"type":"generated-index","title":"Control Plane EDR Api","slug":"/category/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/control-plane-edr-api"},"items":[{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/query-edrs","label":"queryEdrs","className":"api-method get"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/initiate-edr-negotiation","label":"initiateEdrNegotiation","className":"api-method post"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-edr","label":"getEdr","className":"api-method get"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/delete-edr","label":"deleteEdr","className":"api-method delete"}]},{"type":"category","label":"Dataplane Selector","link":{"type":"generated-index","title":"Dataplane Selector","slug":"/category/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/dataplane-selector"},"items":[{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/find","label":"find","className":"api-method post"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-all","label":"getAll","className":"api-method get"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/add-entry","label":"addEntry","className":"api-method post"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/find-1","label":"find_1","className":"api-method post"}]},{"type":"category","label":"Consumer Pull Token Validation","link":{"type":"generated-index","title":"Consumer Pull Token Validation","slug":"/category/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/consumer-pull-token-validation"},"items":[{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/validate","label":"validate","className":"api-method get"}]},{"type":"category","label":"Transfer Process Control Api","link":{"type":"generated-index","title":"Transfer Process Control Api","slug":"/category/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/transfer-process-control-api"},"items":[{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/complete","label":"complete","className":"api-method post"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/fail","label":"fail","className":"api-method post"}]},{"type":"category","label":"Asset","link":{"type":"generated-index","title":"Asset","slug":"/category/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/asset"},"items":[{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/update-asset","label":"updateAsset","className":"menu__list-item--deprecated api-method put"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/create-asset","label":"createAsset","className":"menu__list-item--deprecated api-method post"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/request-assets","label":"requestAssets","className":"menu__list-item--deprecated api-method post"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/update-data-address","label":"updateDataAddress","className":"menu__list-item--deprecated api-method put"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-asset","label":"getAsset","className":"menu__list-item--deprecated api-method get"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/remove-asset","label":"removeAsset","className":"menu__list-item--deprecated api-method delete"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-asset-data-address","label":"getAssetDataAddress","className":"menu__list-item--deprecated api-method get"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/update-asset-1","label":"updateAsset_1","className":"api-method put"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/create-asset-1","label":"createAsset_1","className":"api-method post"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/request-assets-1","label":"requestAssets_1","className":"api-method post"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-asset-1","label":"getAsset_1","className":"api-method get"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/remove-asset-1","label":"removeAsset_1","className":"api-method delete"}]},{"type":"category","label":"Catalog","link":{"type":"generated-index","title":"Catalog","slug":"/category/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/catalog"},"items":[{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/request-catalog","label":"requestCatalog","className":"api-method post"}]},{"type":"category","label":"Contract Agreement","link":{"type":"generated-index","title":"Contract Agreement","slug":"/category/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/contract-agreement"},"items":[{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/query-all-agreements","label":"queryAllAgreements","className":"api-method post"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-agreement-by-id","label":"getAgreementById","className":"api-method get"}]},{"type":"category","label":"Contract Definition","link":{"type":"generated-index","title":"Contract Definition","slug":"/category/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/contract-definition"},"items":[{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/update-contract-definition","label":"updateContractDefinition","className":"api-method put"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/create-contract-definition","label":"createContractDefinition","className":"api-method post"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/query-all-contract-definitions","label":"queryAllContractDefinitions","className":"api-method post"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-contract-definition","label":"getContractDefinition","className":"api-method get"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/delete-contract-definition","label":"deleteContractDefinition","className":"api-method delete"}]},{"type":"category","label":"Contract Negotiation","link":{"type":"generated-index","title":"Contract Negotiation","slug":"/category/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/contract-negotiation"},"items":[{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/initiate-contract-negotiation","label":"initiateContractNegotiation","className":"api-method post"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/query-negotiations","label":"queryNegotiations","className":"api-method post"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-negotiation","label":"getNegotiation","className":"api-method get"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-agreement-for-negotiation","label":"getAgreementForNegotiation","className":"api-method get"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/cancel-negotiation","label":"cancelNegotiation","className":"menu__list-item--deprecated api-method post"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/decline-negotiation","label":"declineNegotiation","className":"menu__list-item--deprecated api-method post"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-negotiation-state","label":"getNegotiationState","className":"api-method get"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/terminate-negotiation","label":"terminateNegotiation","className":"api-method post"}]},{"type":"category","label":"Policy Definition","link":{"type":"generated-index","title":"Policy Definition","slug":"/category/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/policy-definition"},"items":[{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/create-policy-definition","label":"createPolicyDefinition","className":"api-method post"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/query-policy-definitions","label":"queryPolicyDefinitions","className":"api-method post"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-policy-definition","label":"getPolicyDefinition","className":"api-method get"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/update-policy-definition","label":"updatePolicyDefinition","className":"api-method put"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/delete-policy-definition","label":"deletePolicyDefinition","className":"api-method delete"}]},{"type":"category","label":"Transfer Process","link":{"type":"generated-index","title":"Transfer Process","slug":"/category/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/transfer-process"},"items":[{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/initiate-transfer-process","label":"initiateTransferProcess","className":"api-method post"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/query-transfer-processes","label":"queryTransferProcesses","className":"api-method post"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-transfer-process","label":"getTransferProcess","className":"api-method get"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/deprovision-transfer-process","label":"deprovisionTransferProcess","className":"api-method post"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/get-transfer-process-state","label":"getTransferProcessState","className":"api-method get"},{"type":"doc","id":"kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/terminate-transfer-process","label":"terminateTransferProcess","className":"api-method post"}]}]; \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/terminate-negotiation.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/terminate-negotiation.api.mdx new file mode 100644 index 00000000000..46ec1b225a3 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/terminate-negotiation.api.mdx @@ -0,0 +1,42 @@ +--- +id: terminate-negotiation +title: "terminateNegotiation" +description: "Terminates the contract negotiation." +sidebar_label: "terminateNegotiation" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Contract Negotiation"],"description":"Terminates the contract negotiation.","operationId":"terminateNegotiation","parameters":[{"name":"id","in":"path","required":true,"style":"simple","explode":false,"schema":{"type":"string","example":null}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"@id":{"type":"string","example":null},"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/TerminateNegotiation"},"reason":{"type":"string","example":null}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@type":"https://w3id.org/edc/v0.0.1/ns/TerminateNegotiation","@id":"negotiation-id","reason":"a reason to terminate"}}}}},"responses":{"200":{"description":"ContractNegotiation is terminating","links":{"poll-state":{"operationId":"getNegotiationState"}}},"400":{"description":"Request was malformed","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}},"404":{"description":"A contract negotiation with the given ID does not exist","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}}},"method":"post","path":"/v2/contractnegotiations/{id}/terminate","servers":[{"url":"/"}],"jsonRequestBodyExample":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@type":"https://w3id.org/edc/v0.0.1/ns/TerminateNegotiation","@id":"negotiation-id","reason":"a reason to terminate"},"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"terminate Negotiation","description":{"content":"Terminates the contract negotiation.","type":"text/plain"},"url":{"path":["v2","contractnegotiations",":id","terminate"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## terminateNegotiation + + + +Terminates the contract negotiation. + +
      Path Parameters
      Request Body
      + +ContractNegotiation is terminating + +
      + +Request was malformed + +
      Schema array
      + +A contract negotiation with the given ID does not exist + +
      Schema array
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/terminate-transfer-process.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/terminate-transfer-process.api.mdx new file mode 100644 index 00000000000..4d65cf3480b --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/terminate-transfer-process.api.mdx @@ -0,0 +1,46 @@ +--- +id: terminate-transfer-process +title: "terminateTransferProcess" +description: "Requests the termination of a transfer process. Due to the asynchronous nature of transfers, a successful response only indicates that the request was successfully received. Clients must poll the /{id}/state endpoint to track the state." +sidebar_label: "terminateTransferProcess" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Transfer Process"],"description":"Requests the termination of a transfer process. Due to the asynchronous nature of transfers, a successful response only indicates that the request was successfully received. Clients must poll the /{id}/state endpoint to track the state.","operationId":"terminateTransferProcess","parameters":[{"name":"id","in":"path","required":true,"style":"simple","explode":false,"schema":{"type":"string","example":null}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/TransferState"},"state":{"type":"string","example":null}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@type":"https://w3id.org/edc/v0.0.1/ns/TerminateTransfer","reason":"a reason to terminate"}}}}},"responses":{"200":{"description":"Request to cancel the transfer process was successfully received","links":{"poll-state":{"operationId":"getTransferProcessState"}}},"400":{"description":"Request was malformed, e.g. id was null","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}},"404":{"description":"A contract negotiation with the given ID does not exist","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}},"409":{"description":"Could not terminate transfer process, because it is already completed or terminated.","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}}},"method":"post","path":"/v2/transferprocesses/{id}/terminate","servers":[{"url":"/"}],"jsonRequestBodyExample":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@type":"https://w3id.org/edc/v0.0.1/ns/TerminateTransfer","reason":"a reason to terminate"},"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"terminate Transfer Process","description":{"content":"Requests the termination of a transfer process. Due to the asynchronous nature of transfers, a successful response only indicates that the request was successfully received. Clients must poll the /{id}/state endpoint to track the state.","type":"text/plain"},"url":{"path":["v2","transferprocesses",":id","terminate"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "post api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## terminateTransferProcess + + + +Requests the termination of a transfer process. Due to the asynchronous nature of transfers, a successful response only indicates that the request was successfully received. Clients must poll the /{id}/state endpoint to track the state. + +
      Path Parameters
      Request Body
      + +Request to cancel the transfer process was successfully received + +
      + +Request was malformed, e.g. id was null + +
      Schema array
      + +A contract negotiation with the given ID does not exist + +
      Schema array
      + +Could not terminate transfer process, because it is already completed or terminated. + +
      Schema array
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api.info.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api.info.mdx new file mode 100644 index 00000000000..973f74e000e --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api.info.mdx @@ -0,0 +1,25 @@ +--- +id: tractus-x-edc-rest-api +title: "Tractus-X EDC REST API" +description: "Tractus-X EDC API Documentation" +sidebar_label: Introduction +sidebar_position: 0 +hide_title: true +custom_edit_url: null +--- + +import ApiLogo from "@theme/ApiLogo"; +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; +import Export from "@theme/ApiDemoPanel/Export"; + +Version: 0.5.1-SNAPSHOT + +# Tractus-X EDC REST API + + + +Tractus-X EDC API Documentation + + + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/update-asset-1.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/update-asset-1.api.mdx new file mode 100644 index 00000000000..100dbc6d916 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/update-asset-1.api.mdx @@ -0,0 +1,42 @@ +--- +id: update-asset-1 +title: "updateAsset_1" +description: "Updates an asset with the given ID if it exists. If the asset is not found, no further action is taken. DANGER ZONE: Note that updating assets can have unexpected results, especially for contract offers that have been sent out or are ongoing in contract negotiations." +sidebar_label: "updateAsset_1" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Asset"],"description":"Updates an asset with the given ID if it exists. If the asset is not found, no further action is taken. DANGER ZONE: Note that updating assets can have unexpected results, especially for contract offers that have been sent out or are ongoing in contract negotiations.","operationId":"updateAsset_1","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"@id":{"type":"string","example":null},"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/Asset"},"dataAddress":{"type":"object","properties":{"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/DataAddress"},"type":{"type":"string","example":null}},"example":null},"privateProperties":{"type":"object","additionalProperties":{"type":"object","example":null},"example":null},"properties":{"type":"object","additionalProperties":{"type":"object","example":null},"example":null}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@id":"definition-id","properties":{"key":"value"},"privateProperties":{"privateKey":"privateValue"},"dataAddress":{"type":"HttpData"}}}}}},"responses":{"200":{"description":"Asset was updated successfully"},"400":{"description":"Request was malformed, e.g. id was null","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}},"404":{"description":"Asset could not be updated, because it does not exist."}},"method":"put","path":"/v3/assets","servers":[{"url":"/"}],"jsonRequestBodyExample":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@id":"definition-id","properties":{"key":"value"},"privateProperties":{"privateKey":"privateValue"},"dataAddress":{"type":"HttpData"}},"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"update Asset 1","description":{"content":"Updates an asset with the given ID if it exists. If the asset is not found, no further action is taken. DANGER ZONE: Note that updating assets can have unexpected results, especially for contract offers that have been sent out or are ongoing in contract negotiations.","type":"text/plain"},"url":{"path":["v3","assets"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"PUT","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "put api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## updateAsset_1 + + + +Updates an asset with the given ID if it exists. If the asset is not found, no further action is taken. DANGER ZONE: Note that updating assets can have unexpected results, especially for contract offers that have been sent out or are ongoing in contract negotiations. + +
      Request Body
        dataAddress object
        privateProperties object
      • property name* object
      • properties object
      • property name* object
      + +Asset was updated successfully + +
      + +Request was malformed, e.g. id was null + +
      Schema array
      + +Asset could not be updated, because it does not exist. + +
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/update-asset.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/update-asset.api.mdx new file mode 100644 index 00000000000..0ad98ee6dd9 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/update-asset.api.mdx @@ -0,0 +1,46 @@ +--- +id: update-asset +title: "updateAsset" +description: "Updates an asset with the given ID if it exists. If the asset is not found, no further action is taken. DANGER ZONE: Note that updating assets can have unexpected results, especially for contract offers that have been sent out or are ongoing in contract negotiations." +sidebar_label: "updateAsset" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Asset"],"description":"Updates an asset with the given ID if it exists. If the asset is not found, no further action is taken. DANGER ZONE: Note that updating assets can have unexpected results, especially for contract offers that have been sent out or are ongoing in contract negotiations.","operationId":"updateAsset","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"createdAt":{"type":"integer","format":"int64","example":null},"dataAddress":{"type":"object","properties":{"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/DataAddress"},"type":{"type":"string","example":null}},"example":null},"id":{"type":"string","example":null},"privateProperties":{"type":"object","additionalProperties":{"type":"object","example":null},"example":null},"properties":{"type":"object","additionalProperties":{"type":"object","example":null},"example":null}},"example":null}}}},"responses":{"200":{"description":"Asset was updated successfully"},"400":{"description":"Request was malformed, e.g. id was null","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}},"404":{"description":"Asset could not be updated, because it does not exist."}},"deprecated":true,"method":"put","path":"/v2/assets","servers":[{"url":"/"}],"jsonRequestBodyExample":null,"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"update Asset","description":{"content":"Updates an asset with the given ID if it exists. If the asset is not found, no further action is taken. DANGER ZONE: Note that updating assets can have unexpected results, especially for contract offers that have been sent out or are ongoing in contract negotiations.","type":"text/plain"},"url":{"path":["v2","assets"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"PUT","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "put api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## updateAsset + +:::caution deprecated + +This endpoint has been deprecated and may be removed in future versions of the API. + +::: + +Updates an asset with the given ID if it exists. If the asset is not found, no further action is taken. DANGER ZONE: Note that updating assets can have unexpected results, especially for contract offers that have been sent out or are ongoing in contract negotiations. + +
      Request Body
        dataAddress object
        privateProperties object
      • property name* object
      • properties object
      • property name* object
      + +Asset was updated successfully + +
      + +Request was malformed, e.g. id was null + +
      Schema array
      + +Asset could not be updated, because it does not exist. + +
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/update-contract-definition.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/update-contract-definition.api.mdx new file mode 100644 index 00000000000..0671f324ae0 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/update-contract-definition.api.mdx @@ -0,0 +1,42 @@ +--- +id: update-contract-definition +title: "updateContractDefinition" +description: "Updated a contract definition with the given ID. The supplied JSON structure must be a valid JSON-LD object" +sidebar_label: "updateContractDefinition" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Contract Definition"],"description":"Updated a contract definition with the given ID. The supplied JSON structure must be a valid JSON-LD object","operationId":"updateContractDefinition","requestBody":{"content":{"*/*":{"schema":{"type":"object","properties":{"@id":{"type":"string","example":null},"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/ContractDefinition"},"accessPolicyId":{"type":"string","example":null},"assetsSelector":{"type":"array","example":null,"items":{"type":"object","properties":{"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/Criterion"},"operandLeft":{"type":"object","example":null},"operandRight":{"type":"object","example":null},"operator":{"type":"string","example":null}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@type":"Criterion","operandLeft":"fieldName","operator":"=","operandRight":"some value"}}},"contractPolicyId":{"type":"string","example":null}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@id":"definition-id","accessPolicyId":"asset-policy-id","contractPolicyId":"contract-policy-id","assetsSelector":[]}}}}},"responses":{"204":{"description":"Contract definition was updated successfully"},"400":{"description":"Request was malformed, e.g. id was null","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}},"404":{"description":"A contract definition with the given ID does not exist","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}}},"method":"put","path":"/v2/contractdefinitions","servers":[{"url":"/"}],"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"update Contract Definition","description":{"content":"Updated a contract definition with the given ID. The supplied JSON structure must be a valid JSON-LD object","type":"text/plain"},"url":{"path":["v2","contractdefinitions"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"*/*"},{"key":"Accept","value":"application/json"}],"method":"PUT","body":{"mode":"raw","raw":"\"\""}}} +sidebar_class_name: "put api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## updateContractDefinition + + + +Updated a contract definition with the given ID. The supplied JSON structure must be a valid JSON-LD object + +
      Request Body
        assetsSelector object[]
      + +Contract definition was updated successfully + +
      + +Request was malformed, e.g. id was null + +
      Schema array
      + +A contract definition with the given ID does not exist + +
      Schema array
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/update-data-address.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/update-data-address.api.mdx new file mode 100644 index 00000000000..5a9e11f663e --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/update-data-address.api.mdx @@ -0,0 +1,46 @@ +--- +id: update-data-address +title: "updateDataAddress" +description: "Updates a DataAddress for an asset with the given ID." +sidebar_label: "updateDataAddress" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Asset"],"description":"Updates a DataAddress for an asset with the given ID.","operationId":"updateDataAddress","parameters":[{"name":"assetId","in":"path","required":true,"style":"simple","explode":false,"schema":{"type":"string","example":null}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"createdAt":{"type":"integer","format":"int64","example":null},"dataAddress":{"type":"object","properties":{"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/DataAddress"},"type":{"type":"string","example":null}},"example":null},"id":{"type":"string","example":null},"privateProperties":{"type":"object","additionalProperties":{"type":"object","example":null},"example":null},"properties":{"type":"object","additionalProperties":{"type":"object","example":null},"example":null}},"example":null}}}},"responses":{"200":{"description":"Asset was updated successfully"},"400":{"description":"Request was malformed, e.g. id was null","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}},"404":{"description":"An asset with the given ID does not exist","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}}},"deprecated":true,"method":"put","path":"/v2/assets/{assetId}/dataaddress","servers":[{"url":"/"}],"jsonRequestBodyExample":null,"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"update Data Address","description":{"content":"Updates a DataAddress for an asset with the given ID.","type":"text/plain"},"url":{"path":["v2","assets",":assetId","dataaddress"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"","key":"assetId"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"PUT","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "put api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## updateDataAddress + +:::caution deprecated + +This endpoint has been deprecated and may be removed in future versions of the API. + +::: + +Updates a DataAddress for an asset with the given ID. + +
      Path Parameters
      Request Body
        dataAddress object
        privateProperties object
      • property name* object
      • properties object
      • property name* object
      + +Asset was updated successfully + +
      + +Request was malformed, e.g. id was null + +
      Schema array
      + +An asset with the given ID does not exist + +
      Schema array
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/update-entry.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/update-entry.api.mdx new file mode 100644 index 00000000000..e5f64864bbd --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/update-entry.api.mdx @@ -0,0 +1,42 @@ +--- +id: update-entry +title: "updateEntry" +description: "Updates the entry for a particular BPN" +sidebar_label: "updateEntry" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Business Partner Group"],"description":"Updates the entry for a particular BPN","operationId":"updateEntry","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"@id":{"type":"string","example":null},"groups":{"uniqueItems":true,"type":"array","example":null,"items":{"type":"string","example":null}}},"example":{"@context":{"tx":"https://w3id.org/tractusx/v0.0.1/ns/"},"@id":"tx:BPN000001234","tx:groups":["group1","group2","group3"]}}}}},"responses":{"204":{"description":"The object was successfully updated"},"400":{"description":"Request body was malformed","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}},"404":{"description":"No entry for the given BPN was found"}},"method":"put","path":"/business-partner-groups","servers":[{"url":"/"}],"jsonRequestBodyExample":{"@context":{"tx":"https://w3id.org/tractusx/v0.0.1/ns/"},"@id":"tx:BPN000001234","tx:groups":["group1","group2","group3"]},"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"update Entry","description":{"content":"Updates the entry for a particular BPN","type":"text/plain"},"url":{"path":["business-partner-groups"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"PUT","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "put api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## updateEntry + + + +Updates the entry for a particular BPN + +
      Request Body
      + +The object was successfully updated + +
      + +Request body was malformed + +
      Schema array
      + +No entry for the given BPN was found + +
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/update-policy-definition.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/update-policy-definition.api.mdx new file mode 100644 index 00000000000..1c0712dd504 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/update-policy-definition.api.mdx @@ -0,0 +1,42 @@ +--- +id: update-policy-definition +title: "updatePolicyDefinition" +description: "Updates an existing Policy, If the Policy is not found, an error is reported" +sidebar_label: "updatePolicyDefinition" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Policy Definition"],"description":"Updates an existing Policy, If the Policy is not found, an error is reported","operationId":"updatePolicyDefinition","parameters":[{"name":"id","in":"path","required":true,"style":"simple","explode":false,"schema":{"type":"string","example":null}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"@id":{"type":"string","example":null},"@type":{"type":"string","example":"https://w3id.org/edc/v0.0.1/ns/PolicyDefinition"},"policy":{"type":"object","properties":{"@type":{"type":"string","example":null,"enum":["SET","OFFER","CONTRACT"]},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"extensibleProperties":{"type":"object","additionalProperties":{"type":"object","example":null},"example":null},"inheritsFrom":{"type":"string","example":null},"obligations":{"type":"array","example":null,"items":{"type":"object","properties":{"action":{"type":"object","properties":{"constraint":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}},"includedIn":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"consequence":"circular()","constraints":{"type":"array","example":null,"items":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}}},"parentPermission":{"type":"object","properties":{"action":{"type":"object","properties":{"constraint":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}},"includedIn":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"constraints":{"type":"array","example":null,"items":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}}},"duties":{"type":"array","example":null,"items":"circular()"},"target":{"type":"string","example":null}},"example":null},"target":{"type":"string","example":null}},"example":null}},"permissions":{"type":"array","example":null,"items":{"type":"object","properties":{"action":{"type":"object","properties":{"constraint":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}},"includedIn":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"constraints":{"type":"array","example":null,"items":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}}},"duties":{"type":"array","example":null,"items":{"type":"object","properties":{"action":{"type":"object","properties":{"constraint":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}},"includedIn":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"consequence":"circular()","constraints":{"type":"array","example":null,"items":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}}},"parentPermission":"circular()","target":{"type":"string","example":null}},"example":null}},"target":{"type":"string","example":null}},"example":null}},"prohibitions":{"type":"array","example":null,"items":{"type":"object","properties":{"action":{"type":"object","properties":{"constraint":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}},"includedIn":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null},"assignee":{"type":"string","example":null},"assigner":{"type":"string","example":null},"constraints":{"type":"array","example":null,"items":{"required":["edctype"],"type":"object","properties":{"edctype":{"type":"string","example":null}},"example":null,"discriminator":{"propertyName":"edctype"}}},"target":{"type":"string","example":null}},"example":null}},"target":{"type":"string","example":null}},"example":null}},"example":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@id":"definition-id","policy":{"@context":"http://www.w3.org/ns/odrl.jsonld","@type":"Set","uid":"http://example.com/policy:1010","permission":[{"target":"http://example.com/asset:9898.movie","action":"display","constraint":[{"leftOperand":"spatial","operator":"eq","rightOperand":"https://www.wikidata.org/wiki/Q183","comment":"i.e Germany"}]}]}}}}}},"responses":{"200":{"description":"policy definition was updated successfully. Returns the Policy Definition Id and updated timestamp"},"400":{"description":"Request body was malformed","content":{"application/json":{"schema":{"type":"array","example":null,"items":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}},"404":{"description":"policy definition could not be updated, because it does not exists","content":{"application/json":{"schema":{"type":"object","properties":{"invalidValue":{"type":"object","example":null},"message":{"type":"string","example":null},"path":{"type":"string","example":null},"type":{"type":"string","example":null}},"example":null}}}}},"method":"put","path":"/v2/policydefinitions/{id}","servers":[{"url":"/"}],"jsonRequestBodyExample":{"@context":{"edc":"https://w3id.org/edc/v0.0.1/ns/"},"@id":"definition-id","policy":{"@context":"http://www.w3.org/ns/odrl.jsonld","@type":"Set","uid":"http://example.com/policy:1010","permission":[{"target":"http://example.com/asset:9898.movie","action":"display","constraint":[{"leftOperand":"spatial","operator":"eq","rightOperand":"https://www.wikidata.org/wiki/Q183","comment":"i.e Germany"}]}]}},"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"update Policy Definition","description":{"content":"Updates an existing Policy, If the Policy is not found, an error is reported","type":"text/plain"},"url":{"path":["v2","policydefinitions",":id"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"PUT","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} +sidebar_class_name: "put api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## updatePolicyDefinition + + + +Updates an existing Policy, If the Policy is not found, an error is reported + +
      Path Parameters
      Request Body
        policy object
        extensibleProperties object
      • property name* object
      • obligations object[]
        action object
        constraint object
        constraints object[]
        parentPermission object
        action object
        constraint object
        constraints object[]
        permissions object[]
        action object
        constraint object
        constraints object[]
        duties object[]
        action object
        constraint object
        constraints object[]
        prohibitions object[]
        action object
        constraint object
        constraints object[]
      + +policy definition was updated successfully. Returns the Policy Definition Id and updated timestamp + +
      + +Request body was malformed + +
      Schema array
      + +policy definition could not be updated, because it does not exists + +
      Schema
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/validate.api.mdx b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/validate.api.mdx new file mode 100644 index 00000000000..1c2806698aa --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/validate.api.mdx @@ -0,0 +1,42 @@ +--- +id: validate +title: "validate" +description: "Checks that the provided token has been signed by the present entity and asserts its validity. If token is valid, then the data address contained in its claims is decrypted and returned back to the caller." +sidebar_label: "validate" +hide_title: true +hide_table_of_contents: true +api: {"tags":["Consumer Pull Token Validation"],"description":"Checks that the provided token has been signed by the present entity and asserts its validity. If token is valid, then the data address contained in its claims is decrypted and returned back to the caller.","operationId":"validate","parameters":[{"name":"Authorization","in":"header","required":false,"style":"simple","explode":false,"schema":{"type":"string","example":null}}],"responses":{"200":{"description":"Token is valid"},"400":{"description":"Request was malformed"},"403":{"description":"Token is invalid"}},"method":"get","path":"/token","servers":[{"url":"/"}],"info":{"title":"Tractus-X EDC REST API","description":"Tractus-X EDC API Documentation","license":{"name":"Apache License v2.0","url":"http://apache.org/v2"},"version":"0.5.1-SNAPSHOT"},"postman":{"name":"validate","description":{"content":"Checks that the provided token has been signed by the present entity and asserts its validity. If token is valid, then the data address contained in its claims is decrypted and returned back to the caller.","type":"text/plain"},"url":{"path":["token"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"method":"GET"}} +sidebar_class_name: "get api-method" +info_path: docs-kits/kits/tractusx-edc/docs/kit/development-view/openAPI/tractusx-edc-api/tractus-x-edc-rest-api +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import TabItem from "@theme/TabItem"; + +## validate + + + +Checks that the provided token has been signed by the present entity and asserts its validity. If token is valid, then the data address contained in its claims is decrypted and returned back to the caller. + +
      Header Parameters
      + +Token is valid + +
      + +Request was malformed + +
      + +Token is invalid + +
      + \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/page00_development_view.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/page00_development_view.md new file mode 100644 index 00000000000..6ed200659c6 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/page00_development_view.md @@ -0,0 +1,28 @@ +# Development View + +![Connector kit banner](@site/static/img/ConnectorKitIcon.png) + +## Connector KIT + +## Project Overview + +Eclipse Tractus-X is an initiative of companies under the umbrella of the Eclipse Foundation. +It is a pilot for the larger initiative of CatenaX. +A broader overview of the project can be found on the initiative's [Github page][tractusx-edc-link] +or the homepage of the [Eclipse Foundation](https://projects.eclipse.org/projects/automotive.tractusx). + +## The EDC + +The Eclipse Dataspace Connector is one of the core components facilitating Tractus-X. + +:::note Tractus-X EDC or Core EDC? + +This documentation is for Tractus-X EDC. +It includes the Core EDC with all of its functionality. +However, this core is supplemented by extensions that allow for the use of additional backends and connection types. +Furthermore, the provided Helm charts, build configuration and tests allow for a smoother deployment. +::: + +You can find the repository for the Tractus-X EDC [here][tractusx-edc-link]. + +[tractusx-edc-link]: https://github.com/eclipse-tractusx/tractusx-edc diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/page01_eclipse_foundation.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/page01_eclipse_foundation.md new file mode 100644 index 00000000000..bf71bd5b9bd --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/page01_eclipse_foundation.md @@ -0,0 +1,35 @@ +# The Eclipse Foundation + +## Eclipse Development Process + +This Eclipse Foundation open project is governed by the Eclipse Foundation +Development Process and operates under the terms of the Eclipse IP Policy. + +* +* + +## Eclipse Contributor Agreement + +In order to be able to contribute to Eclipse Foundation projects you must +electronically sign the Eclipse Contributor Agreement (ECA). + +* + +The ECA provides the Eclipse Foundation with a permanent record that you agree +that each of your contributions will comply with the commitments documented in +the Developer Certificate of Origin (DCO). Having an ECA on file associated with +the email address matching the "Author" field of your contribution's Git commits +fulfills the DCO's requirement that you sign-off on your contributions. + +For more information, please see the Eclipse Committer Handbook: + + +## License + +Code in Tractus-X EDC is published under the [Apache License](https://github.com/eclipse-tractusx/tractusx-edc/blob/main/LICENSE). + +## Contact + +Contact the project developers via the project's "dev" list. + +* diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/page02_repository_structure.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/page02_repository_structure.md new file mode 100644 index 00000000000..11fb7c7c2e1 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/page02_repository_structure.md @@ -0,0 +1,26 @@ +# Repository Structure + +The repository for Tractus-X EDC can be found [here](https://github.com/eclipse-tractusx/tractusx-edc). +It contains the following components: + +## EDC Extensions + +The core EDC is extensible by design. +Tractus-X EDC provides such extensions. +These extensions and their documentation are available +[here](https://github.com/eclipse-tractusx/tractusx-edc/blob/main/edc-extensions/README.md). + +## Gradle Files for EDC Builds + +Builds of Tractus-X EDC are performed via Gradle. +To allow for different configurations, different builds are provided. +For example separate secrets backends are supported, but require separate builds of EDC. +Therefor, different builds are available for both +[data plane](https://github.com/eclipse-tractusx/tractusx-edc/blob/main/edc-dataplane/README.md) +and [control plane](https://github.com/eclipse-tractusx/tractusx-edc/blob/main/edc-controlplane/README.md), + +## Helm Charts for EDC Deployment + +To facilitate deployment of these different builds and their prerequisites, +Helm charts are provided. The charts and their documentation can be found +[here](https://github.com/eclipse-tractusx/tractusx-edc/blob/main/charts/README.md). diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/page03_project_structure.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/page03_project_structure.md new file mode 100644 index 00000000000..9f20c5a3d9c --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/development-view/page03_project_structure.md @@ -0,0 +1,21 @@ +# Project Structure + +## Issue Tracking + +Issues are maintained in [GitHub Issues](https://github.com/eclipse-tractusx/tractusx-edc/issues). + +## Reporting Vulnerabilities + +Vulnerabilities in the Eclipse Tractus-X code base are best reported directly to the +[Eclipse Foundation](https://www.eclipse.org/security/). + +## Git Flow + +The Tractus-X EDC repository uses a Git Flow, with `main` as the development branch and `releases` as the release branch. +Other branches should follow the naming conventions of `feature/x` or `hotfix/x`, though this is not strictly enforced. + +## Tooling + +We use Java 11 with Gradle for dependencies and builds. +We use [Spotless](https://github.com/diffplug/spotless) for code formatting. +Releases are in the form of Docker containers and Helm charts. diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/operation-view/page00_operation_view.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/operation-view/page00_operation_view.md new file mode 100644 index 00000000000..dac79729074 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/operation-view/page00_operation_view.md @@ -0,0 +1,28 @@ +# Software Operation View + +![Connector kit banner](@site/static/img/ConnectorKitIcon.png) + +## Connector KIT + +## Introduction + +The following documentation will guide you through the Tractus-X EDC deployment. +You will be setting up multiple controllers and enabling communication between them. + +:::note Tractus-X EDC or Core EDC? + +The following guide assumes the use of the Tractus-X EDC. +It includes the Core EDC with all of its functionality. +However, this core is supplemented by extensions that allow for the use of additional backends and connection types. +Furthermore, the provided Helm charts, build configuration and tests allow for a smoother deployment. +::: + +## Connector Components + +In a usual EDC environment, each participant would operate at least one connector. +Each of these connectors consists of a control plane and a data plane. +The control plane functions as administration layer and is responsible for resource management, contract negotiation and administering data transfer. +The data plane does the heavy lifting of transferring and receiving data streams. + +Each of these planes comes in several variants, allowing for example secrets to be stored in Azure Vault or a Hashicorp Vault. +The setup on the following pages assumes the use of Hashicorp Vault for secrets and PostgreSQL for data storage. diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/operation-view/page02_technical_prerequisites.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/operation-view/page02_technical_prerequisites.md new file mode 100644 index 00000000000..682da831b00 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/operation-view/page02_technical_prerequisites.md @@ -0,0 +1,43 @@ +# Technical Prerequisites + +## Obtaining Releases + +The most recent release of Tractus-X EDC can be obtained under `https://github.com/eclipse-tractusx/tractusx-edc/releases`. +To create your own build, you can clone the repository at `https://github.com/eclipse-tractusx/tractusx-edc` and consult the provided README.md. +This can be useful if you want to use non-standard extensions or configuration. + +## Container Environment + +Tractus-X releases come in the form of Docker containers and corresponding Helm charts. +As such, recent versions of the following are required. + +- Docker +- Kubernetes +- Helm + +Seeing as these are standard tools, Tractus-X EDC will run on any cloud environment that can accept Helm charts. + +## Backend Dependencies + +The EDC requires backend services for persistence of data and secrets. The following backends are currently supported. + +Data Storage: + +- PostgreSQL database +- In memory database + +Secret Storage: + +- Hashicorp Vault +- Azure Vault + +The default setup assumes data storage via PostgreSQL database. +In memory storage is only recommended for running tests. +Hashicorp Vault is the default secret provider, because it is platform-agnostic. + +Helm charts are provided to set up these services locally. +**These are not suited for production environments.** + +## All-in-one deployment + +An all-in-one deployment is no longer in scope and will not be provided. diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/operation-view/page03_local_setup_controlplane.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/operation-view/page03_local_setup_controlplane.md new file mode 100644 index 00000000000..5e37c0880ea --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/operation-view/page03_local_setup_controlplane.md @@ -0,0 +1,141 @@ +# Setting up a local EDC Control Plane + +## Basics + +The EDC is split into control and data plane. +The data plane handles the actual data transfer between parties. +The control plane manages the following: + +- Resource Management (e.g. Assets, Policies & Contract Definitions CRUD) +- Contract Offering & Contract Negotiation +- Data Transfer Coordination / Management + +The EDC control plane can run as a single container on your local machine. +The following is a short overview of the necessary steps to start up the default configuration. + +## Building + +Tractus-X EDC is build with Gradle. The following command creates the default control plane as a docker container: + +```shell +./gardlew :edc-controlplane:edc-controlplane-postgresql-hashicorp-vault:dockerize +``` + +## Example Configuration + +The following commands can be used to create the necessary configuration files for the EDC container. +They assume sane - but unsafe - defaults. An explanation of the respective parameters can be found [here](https://github.com/eclipse-tractusx/tractusx-edc/blob/main/edc-controlplane/edc-controlplane-postgresql-hashicorp-vault/README.md). + +:::danger +The following configuration is for testing purposes only. Do not use it in production. +::: + +### Example configuration.properties + +```shell +# Create configuration.properties +export CONFIGURATION_PROPERTIES_FILE=$(mktemp /tmp/configuration.properties.XXXXXX) +cat << 'EOF' > ${CONFIGURATION_PROPERTIES_FILE} + +web.http.default.port=8080 +web.http.default.path=/api +web.http.management.port=8181 +web.http.management.path=/data +web.http.control.port=9999 +web.http.control.path=/api/controlplane/control +web.http.protocol.port=8282 +web.http.protocol.path=/api/v1/ids + +edc.receiver.http.dynamic.endpoint=http://backend-service + +edc.ids.title=Eclipse Dataspace Connector +edc.ids.description=Eclipse Dataspace Connector +edc.ids.id=urn:connector:edc +edc.ids.security.profile=base +edc.ids.endpoint=http://localhost:8282/api/v1/ids +edc.ids.maintainer=http://localhost +edc.ids.curator=http://localhost +edc.ids.catalog.id=urn:catalog:default +ids.webhook.address=http://localhost:8282/api/v1/ids + +edc.hostname=localhost + +edc.api.auth.key=password + +# OAuth / DAPS related configuration +edc.oauth.token.url=https://daps.example.net +edc.oauth.certificate.alias=key-to-daps-certificate-in-keyvault +edc.oauth.private.key.alias=key-to-private-key-in-keyvault +edc.oauth.client.id=daps-oauth-client-id + +# HashiCorp vault related configuration +edc.vault.hashicorp.url=http://vault +edc.vault.hashicorp.token=55555555-6666-7777-8888-999999999999 +edc.vault.hashicorp.timeout.seconds=30 + +# Control- / Data- Plane configuration +edc.transfer.proxy.endpoint=http://dataplane-public-endpoint/public +edc.transfer.proxy.token.signer.privatekey.alias=token-signer-private-key + +# Postgresql related configuration +edc.datasource.asset.name=asset +edc.datasource.asset.url=jdbc:postgresql://postgres.svc.cluster.local:5432/edc_asset +edc.datasource.asset.user=user +edc.datasource.asset.password=pass +edc.datasource.contractdefinition.name=contractdefinition +edc.datasource.contractdefinition.url=jdbc:postgresql://postgres.svc.cluster.local:5432/edc_contractdefinition +edc.datasource.contractdefinition.user=user +edc.datasource.contractdefinition.password=pass +edc.datasource.contractnegotiation.name=contractnegotiation +edc.datasource.contractnegotiation.url=jdbc:postgresql://postgres.svc.cluster.local:5432/edc_contractnegotiation +edc.datasource.contractnegotiation.user=user +edc.datasource.contractnegotiation.password=pass +edc.datasource.policy.name=policy +edc.datasource.policy.url=jdbc:postgresql://postgres.svc.cluster.local:5432/edc_policy +edc.datasource.policy.user=user +edc.datasource.policy.password=pass +edc.datasource.transferprocess.name=transferprocess +edc.datasource.transferprocess.url=jdbc:postgresql://postgres.svc.cluster.local:5432/edc_transferprocess +edc.datasource.transferprocess.user=user +edc.datasource.transferprocess.password=pass +EOF +``` + +### Example logging.properties + +```shell +# Create logging.properties +export LOGGING_PROPERTIES_FILE=$(mktemp /tmp/logging.properties.XXXXXX) +cat << 'EOF' > ${LOGGING_PROPERTIES_FILE} +.level=INFO +org.eclipse.edc.level=ALL +handlers=java.util.logging.ConsoleHandler +java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter +java.util.logging.ConsoleHandler.level=ALL +java.util.logging.SimpleFormatter.format=[%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS] [%4$-7s] %5$s%6$s%n +EOF +``` + +### Example opentelemetry.properties + +```shell +# Create opentelemetry.properties +export OPENTELEMETRY_PROPERTIES_FILE=$(mktemp /tmp/opentelemetry.properties.XXXXXX) +cat << 'EOF' > ${OPENTELEMETRY_PROPERTIES_FILE} +otel.javaagent.enabled=false +otel.javaagent.debug=false +EOF +``` + +## Running the Control Plane + +Once the configuration is created, the container can be run directly via docker. + +```shell +docker run \ + -p 8080:8080 -p 8181:8181 -p 8182:8182 -p 8282:8282 -p 9090:9090 -p 9999:9999 \ + -v ${CONFIGURATION_PROPERTIES_FILE:-/dev/null}:/app/configuration.properties \ + -v ${LOGGING_PROPERTIES_FILE:-/dev/null}:/app/logging.properties \ + -v ${OPENTELEMETRY_PROPERTIES_FILE:-/dev/null}:/app/opentelemetry.properties \ + -i edc-controlplane-postgresql-hashicorp-vault:latest +``` diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/operation-view/page04_local_setup_dataplane.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/operation-view/page04_local_setup_dataplane.md new file mode 100644 index 00000000000..d84a6c9f126 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/operation-view/page04_local_setup_dataplane.md @@ -0,0 +1,98 @@ +# Setting up a local EDC Data Plane + +## Basics + +The EDC is split into control and data plane. +The data plane handles the actual data transfer between parties. +The control plane manages the following: + +- Resource Management (e.g. Assets, Policies & Contract Definitions CRUD) +- Contract Offering & Contract Negotiation +- Data Transfer Coordination / Management + +The EDC data plane can run as a single container on your local machine. +The following is a short overview of the necessary steps to start up the default configuration. + +## Building + +Tractus-X EDC is build with Gradle. The following command creates the default data plane as a docker container: + +```shell +./gardlew :edc-dataplane:edc-dataplane-hashicorp-vault:dockerize +``` + +## Example Configuration + +The following commands can be used to create the necessary configuration files for the EDC container. +They assume sane - but unsafe - defaults. An explanation of the respective parameters can be found [here](https://github.com/eclipse-tractusx/tractusx-edc/blob/main/edc-dataplane/edc-dataplane-hashicorp-vault/README.md). + +:::danger + +The following configuration is for testing purposes only. Do not use it in production. +::: + +### Example configuration.properties + +```shell +# Create configuration.properties +export CONFIGURATION_PROPERTIES_FILE=$(mktemp /tmp/configuration.properties.XXXXXX) +cat << 'EOF' > ${CONFIGURATION_PROPERTIES_FILE} + +web.http.default.port=8080 +web.http.default.path=/api +web.http.public.port=8185 +web.http.public.path=/public +web.http.control.port=9999 +web.http.control.path=/api/dataplane/control + +# Validation endpoint of controlplane +edc.dataplane.token.validation.endpoint=http://controlplane:9999/api/controlplane/control/token + +# EDC hostname +edc.hostname=localhost + +# HashiCorp vault related configuration +edc.vault.hashicorp.url=http://vault +edc.vault.hashicorp.token=55555555-6666-7777-8888-999999999999 +edc.vault.hashicorp.timeout.seconds=30 +EOF +``` + +### Example logging.properties + +```shell +# Create logging.properties +export LOGGING_PROPERTIES_FILE=$(mktemp /tmp/logging.properties.XXXXXX) +cat << 'EOF' > ${LOGGING_PROPERTIES_FILE} +.level=INFO +org.eclipse.edc.level=ALL +handlers=java.util.logging.ConsoleHandler +java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter +java.util.logging.ConsoleHandler.level=ALL +java.util.logging.SimpleFormatter.format=[%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS] [%4$-7s] %5$s%6$s%n +EOF +``` + +### Example opentelemetry.properties + +```shell +# Create opentelemetry.properties +export OPENTELEMETRY_PROPERTIES_FILE=$(mktemp /tmp/opentelemetry.properties.XXXXXX) +cat << 'EOF' > ${OPENTELEMETRY_PROPERTIES_FILE} +otel.javaagent.enabled=true +otel.javaagent.debug=false +EOF +``` + +## Running + +Once the configuration is created, the container can be run directly via docker. + +```shell +docker run \ + -p 8080:8080 -p 8185:8185 -p 9999:9999 -p 9090:9090 \ + -v ${CONFIGURATION_PROPERTIES_FILE:-/dev/null}:/app/configuration.properties \ + -v ${LOGGING_PROPERTIES_FILE:-/dev/null}:/app/logging.properties \ + -v ${OPENTELEMETRY_PROPERTIES_FILE:-/dev/null}:/app/opentelemetry.properties \ + -i edc-dataplane-hashicorp-vault:latest +``` diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/operation-view/page08_api.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/operation-view/page08_api.md new file mode 100644 index 00000000000..9f45abe1444 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/operation-view/page08_api.md @@ -0,0 +1,64 @@ +# EDC API Examples + +## API Spec + +The API spec of the EDC is constantly evolving. +The full API documentation for each release can be viewed on [management-api](../development-view/openAPI/management-api/management-api.info.mdx). +The following are some example API calls for common use cases. +They assume the default parameters from the previous local setup. + +## Create an Asset + +All objects in EDC are created by posting their JSON-serialized representation to the respective API input. +Since most EDC objects are rather openly defined, most of the properties provided depend on the need of the individual user. +Assets are no exception here. + +URL + +```http request +POST http://localhost:8080/api/v1/assets/ +``` + +Body + +```json +{ + "asset": { + "id": "asset1", + "properties": { + "exampleProperty": "exampleValue" + } + }, + "dataAddress": { + "properties": { + "baseUrl": "https://path.to/the_asset", + "type": "HttpData" + } + } +} +``` + +## Request an Asset Catalog + +To inspect the assets available to an EDC connector, we request its catalog. + +URL + +```http request +POST http://localhost:8080/api/v1/catalog/request +``` + +Body + +```json +{ + "providerUrl": "www.example.provider", + "querySpec": { + "filter": "AvailableWithPolicyXYZ", + "limit": 0, + "offset": 0, + "sortField": "id", + "sortOrder": "ASC" + } +} +``` diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/operation-view/page09_upgrading.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/operation-view/page09_upgrading.md new file mode 100644 index 00000000000..414d0ab4678 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/operation-view/page09_upgrading.md @@ -0,0 +1,20 @@ +# Upgrading Tractus-X EDC + +Among the goals of Tractus-X EDC is making EDC upgrades as painless as possible. +The changes in each release are documented [here](https://github.com/eclipse-tractusx/tractusx-edc/tree/main/docs/migration). +Usually there are only three steps to each upgrade. + +## Database Migration + +Database migration is simple to accomplish with a PostgreSQL backend. +The [PostgreSQL Migration Extension](https://github.com/eclipse-tractusx/tractusx-edc/tree/main/edc-extensions/postgresql-migration) is the preferred approach. +Alternatively, the `.sql` files therein can be used to manually update the database schema. + +## Updating EDC + +The easy part of the upgrade process is to simply switch the outdated EDC containers with their newer counterparts. + +## Updating Settings + +Check the newest [Migration Documents](https://github.com/eclipse-tractusx/tractusx-edc/tree/develop/docs/migration) +for any changes to the settings structure and apply them to your settings. diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/operation-view/page10_extensions.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/operation-view/page10_extensions.md new file mode 100644 index 00000000000..ce0a72ead17 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/kit/operation-view/page10_extensions.md @@ -0,0 +1,44 @@ +# EDC Extensions + +The following extensions provide additional functionality to the core EDC. +They are currently only available in Tractus-X EDC. + +## Business Partner Validation + +This extension allows for validation of business partners within the access policy. + +## Control Plane EDR APIs + +The goal of this extension is to simplify the process of retrieving data out of EDC. +It returns `EndpointDataReference` object, hiding all the communication details for contract offers, +contract negotiation, transfer process and retrieving the underlying data through the data-planes. + +## CX OAuth2 + +This extension enables OAuth2 authentication between EDC connectors, +instead of the more complex authentication flow used by core EDC. + +## Data Encryption + +The EDC encrypts sensitive information inside a token it sends to other applications (potentially cross-company). +This extension implements the encryption of this data and should be used with secure keys and algorithms at all times. + +## Data Plane Selector + +This control plane extension makes it possible to configure one or more data plane instances. +During a transfer the control plane will look for an instance with matching capabilities to transfer data. + +## Hashicorp Vault + +This extension allows for usage of Hashicorp Vault for secret storage. +It is the default used in Tractus-X EDC. + +## PostrgreSQL Migration + +While the core EDC is able to interact with PostgreSQL databases, +it does not automate migrations between schema versions. +This extension adds that functionality. + +## Transfer Process SFTP + +This extension allows for the use of SFTP backends for the data plane (but is not included in the provided control- and data plane). diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/migration/Version_0.0.x_0.1.x.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/migration/Version_0.0.x_0.1.x.md new file mode 100644 index 00000000000..ee150291a87 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/migration/Version_0.0.x_0.1.x.md @@ -0,0 +1,304 @@ +# Migration Version 0.0.x to 0.1.x + +This document contains a list of breaking changes that are introduced in version 0.1.x. + +## 0. Summary + +1. PostgreSQL Database + 1. Criteria in Policy & Contract Definitions Table + 2. Delete Contract Agreements +2. Data Management API + 1. Policy Path + 2. Policy Payload + 3. Criteria in Payload of Contract Definitions and Policies + 4. Data Address +3. Connector Configuration + 1. Token Validation Endpoint Setting + 2. DataPlane Selector + +## 1. PostgreSQL Database + +The Tractus-X EDC [PostgreSQL Migration Extension](../../edc-extensions/postgresql-migration/README.md) is able to run +normal migrations. But the extension will never cause a data loss automatically, therefore part of this migration must +be done by the user itself. + +### 1.1 Criteria in Policy & Contract Definitions Table + +Criteria in Policies and Contract Definitions are serialized as JSON and put into the database. The Criteria schema +changed and already existing database entries will cause _NullPointerExceptions_. + +#### Example Exception + +```plain +[2022-08-02 09:32:37] [SEVERE ] Could not handle multipart request: null +org.eclipse.dataspaceconnector.spi.EdcException + at org.eclipse.dataspaceconnector.transaction.local.LocalTransactionContext.execute(LocalTransactionContext.java:70) + at org.eclipse.dataspaceconnector.sql.assetindex.SqlAssetIndex.queryAssets(SqlAssetIndex.java:141) + at org.eclipse.dataspaceconnector.sql.assetindex.SqlAssetIndex.queryAssets(SqlAssetIndex.java:134) + at org.eclipse.dataspaceconnector.contract.offer.ContractOfferServiceImpl.lambda$queryContractOffers$2(ContractOfferServiceImpl.java:61) + at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:271) + at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177) + at java.base/java.util.LinkedList$LLSpliterator.forEachRemaining(LinkedList.java:1239) + at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) + at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) + at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913) + at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) + at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578) + at org.eclipse.dataspaceconnector.ids.core.service.CatalogServiceImpl.getDataCatalog(CatalogServiceImpl.java:55) + at org.eclipse.dataspaceconnector.ids.core.service.ConnectorServiceImpl.getConnector(ConnectorServiceImpl.java:51) + at org.eclipse.dataspaceconnector.ids.api.multipart.handler.description.ConnectorDescriptionRequestHandler.handle(ConnectorDescriptionRequestHandler.java:74) + at org.eclipse.dataspaceconnector.ids.api.multipart.handler.DescriptionHandler.handleRequestInternal(DescriptionHandler.java:117) + at org.eclipse.dataspaceconnector.ids.api.multipart.handler.DescriptionHandler.handleRequest(DescriptionHandler.java:82) + at org.eclipse.dataspaceconnector.ids.api.multipart.controller.MultipartController.request(MultipartController.java:146) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:566) + at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:52) + at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:124) + at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:167) + at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:176) + at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:79) + at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:475) + at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:397) + at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:81) + at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:255) + at org.glassfish.jersey.internal.Errors$1.call(Errors.java:248) + at org.glassfish.jersey.internal.Errors$1.call(Errors.java:244) + at org.glassfish.jersey.internal.Errors.process(Errors.java:292) + at org.glassfish.jersey.internal.Errors.process(Errors.java:274) + at org.glassfish.jersey.internal.Errors.process(Errors.java:244) + at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:265) + at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:234) + at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:684) + at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:394) + at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:346) + at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:358) + at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:311) + at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:205) + at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764) + at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:508) + at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221) + at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1375) + at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176) + at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:463) + at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174) + at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1297) + at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129) + at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:192) + at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122) + at org.eclipse.jetty.server.Server.handle(Server.java:562) + at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505) + at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762) + at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497) + at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282) + at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:319) + at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100) + at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53) + at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:412) + at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:381) + at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:268) + at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.produce(AdaptiveExecutionStrategy.java:190) + at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:894) + at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1038) + at java.base/java.lang.Thread.run(Thread.java:829) +Caused by: java.lang.NullPointerException + at org.eclipse.dataspaceconnector.sql.translation.SqlConditionExpression.isValidExpression(SqlConditionExpression.java:53) + at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) + at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655) + at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) + at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) + at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913) + at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) + at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578) + at org.eclipse.dataspaceconnector.sql.assetindex.schema.BaseSqlDialectStatements.createQuery(BaseSqlDialectStatements.java:108) + at org.eclipse.dataspaceconnector.sql.assetindex.SqlAssetIndex.lambda$queryAssets$2(SqlAssetIndex.java:144) + at org.eclipse.dataspaceconnector.transaction.local.LocalTransactionContext.execute(LocalTransactionContext.java:63) + ... 69 more +``` + +#### Solution 1: Update all Criteria manually + +Root of this issue is that the operator, left- and right-operand Criteria field names changed. + +| Old | New | +|:----------|:-------------| +| left | operandLeft | +| right | operandRight | +| op | operator | + +It is possible to resolve this issue by updating the content of the column, that contain JSON serialized constraints, +from + +```json +{"criteria":[{"left":"asset:prop:id","op":"=","right":"asset-1"}]} +``` + +to + +```json +{"criteria":[{"operandLeft":"asset:prop:id","operator":"=","operandRight":"asset-1"}]} +``` + +#### Solution 2: Delete all rows containing Constraints + +Instead of updating each row in the database it's also possible to delete all Contract Definitions and Policies. +Additionally it's necessary to delete all Negotiations, as they might reference existing Contract Definitions and/or +Policies. + +Theoretically it's also necessary to delete Contract Agreements. As their deletion is already described in another +section, we can skip them here. + +##### Required Queries + +```sql +DELETE +FROM edc_contract_negotiation; +``` + +```sql +DELETE +FROM edc_contract_definitions; +``` + +```sql +DELETE +FROM edc_policydefinitins; +``` + +### 1.2 Delete Contract Agreements + +In the new version contract agreement rows contain a serialized policy at the time, the contract was concluded. +With the EDC update all existing Contract Agreements must be deleted. + +#### Required Query + +```sql +DELETE +FROM edc_contract_agreement; +``` + +## 2. Data Management API + +It might be necessary to update applications and scripts that use the Data Management API. This section covers the most +important changes in endpoints and payloads. + +### 2.1 Policy Path + +The Data Management API Path for Policies changes from +`/policies` to `/policydefinitions`. + +#### Get All Policies + +```bash +curl -X GET "${DATA_MGMT_ENDPOINT}/data/policydefinitions" --header "X-Api-Key: " --header "Content-Type: application/json" +``` + +### 2.2 Policy Payload + +The Policy Payload now wraps the policy details in an additional policy object. + +#### New Payload + +```json +{ + "uid": "1", + "policy": { + "prohibitions": [], + "obligations": [], + "permissions": [] + } +} +``` + +#### Old Payload + +```json +{ + "uid": "1", + "prohibitions": [], + "obligations": [], + "permissions": [] +} +``` + +### 2.3 Criteria in Payload of Contract Definitions and Policies + +The payload of a Policy or a Contract Definition may contain one or more Criteria. The format of these serialized Criteria changed. +Please note that there is no input validation, that detects errors when the old Criteria format is used! + +#### Old Criterion Format + +```json +{ "left": "asset:prop:id", "op": "=", "right": "1" } +``` + +#### New Criterion Format + +```json +{ "operandLeft": "asset:prop:id", "operator": "=", "operandRight": "1" } +``` + +#### Example Call + +```bash +curl -X POST "${DATA_MGMT_ENDPOINT}/data/contractdefinitions" --header "X-Api-Key: " --header "Content-Type: application/json" --data "{ \"id\": \"1\", \"criteria\": [ { \"operandLeft\": \"asset:prop:id\", \"operator\": \"=\", \"operandRight\": \"1\" } ], \"accessPolicyId\": \"1\", \"contractPolicyId\": \"1\" }" +``` + +### 2.4 Data Address + +When using a Data Address of type `HttpData` please notice that the property `endpoint` changed to `baseUrl`. This +property is mostly used when creating assets. + +#### Old Asset format + +```json +{ + "asset": { + ... + }, + "dataAddress": { + "properties": { + "endpoint": "http://provider-backend-service:8080/data/asset-1", + "type": "HttpData" + } + } +} +``` + +#### New Asset format + +```json +{ + "asset": { + ... + }, + "dataAddress": { + "properties": { + "baseUrl": "http://provider-backend-service:8080/data/asset-1", + "type": "HttpData" + } + } +} +``` + +#### Example Call + +```bash +curl -X POST "$PLATO_DATAMGMT_URL/data/assets" --header "X-Api-Key: password" --header "Content-Type: application/json" --data "{ \"asset\": { \"properties\": { \"asset:prop:id\": \"1\", \"asset:prop:description\": \"Tractus-X EDC Demo Asset\" } }, \"dataAddress\": { \"properties\": { \"type\": \"HttpData\", \"baseUrl\": \"https://jsonplaceholder.typicode.com/todos/1\" } } }" -s -o /dev/null -w 'Response Code: %{http_code}\n' +``` + +## 3. Connector Configuration + +### 3.1 Token Validation Endpoint Setting + +In the past the token validation endpoint was configured in `edc.controlplane.validation-endpoint`. This setting key +must be renamed to `edc.dataplane.token.validation.endpoint`. + +### 3.2 DataPlane Selector + +With this version a new feature was introduced which allows to have separate DataPlane instances for different +transfer-flows (HttpProxy, S3, etc.). The Tractus-X EDC also has a new extension which allows for a +simpler registration of additional dataplanes. Further documentation can +be found in the extension folder: +[dataplane-selector-configuration](../../edc-extensions/dataplane-selector-configuration/README.md) diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/migration/Version_0.1.0_0.1.1.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/migration/Version_0.1.0_0.1.1.md new file mode 100644 index 00000000000..528dc8c3724 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/migration/Version_0.1.0_0.1.1.md @@ -0,0 +1,82 @@ +# Migration Version 0.1.0 to 0.1.1 + +This document contains a list of breaking changes that are introduced in version 0.1.1. + +--- + +**Please Note**: +Due to a change in the DAPS authentication mechanism this version cannot exchange messages with older EDC versions! + +--- + +## 0. Summary + +1. Data Management API + 1. Policy Payload +2. Connector Configuration + 1. CX OAuth Extension + +## 1. Data Management API + +It might be necessary to update applications and scripts that use the Data Management API. This section covers the most +important changes in endpoints and payloads. + +### 1.1 Policy Payload + +The id field of the PolicyDefinition was renamed from `uid` to `id`. + +#### Old Call + +```json +{ + "uid": "1", + "policy": { + "prohibitions": [], + "obligations": [], + "permissions": [ + { + "edctype": "dataspaceconnector:permission", + "action": { + "type": "USE" + }, + "constraints": [] + } + ] + } +} +``` + +#### New call + +```json +{ + "id": "1", + "policy": { + "prohibitions": [], + "obligations": [], + "permissions": [ + { + "edctype": "dataspaceconnector:permission", + "action": { + "type": "USE" + }, + "constraints": [] + } + ] + } +} +``` + +## 2. Connector Configuration + +### 2.1. CX OAuth Extension + +All connectors are now shipped with a new OAuth extension. This extension has an additional mandatory setting called `edc.ids.endpoint.audience`, that must be set to the IDS path. + +[Documentation](../../edc-extensions/cx-oauth2/README.md) + +#### Example + +```properties +edc.ids.endpoint.audience=http://plato-edc-controlplane:8282/api/v1/ids/data +``` diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/migration/Version_0.1.2_0.1.3.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/migration/Version_0.1.2_0.1.3.md new file mode 100644 index 00000000000..787b04bfe5f --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/migration/Version_0.1.2_0.1.3.md @@ -0,0 +1,23 @@ +# Migration Version 0.1.2 to 0.1.3 + +This document contains a list of breaking changes that are introduced in version 0.1.3. + +## OAuth2 Extension + +As the images now use the official OAuth2 Extension, the audience settings need to the updated. + +Add the following settings: + +- EDC_OAUTH_PROVIDER_AUDIENCE +- EDC_OAUTH_ENDPOINT_AUDIENCE + +Remove the following setting: + +- EDC_IDS_ENDPOINT_AUDIENCE + +Example: + +```yaml +EDC_OAUTH_PROVIDER_AUDIENCE: idsc:IDS_CONNECTORS_ALL +EDC_OAUTH_ENDPOINT_AUDIENCE: http://plato-edc-controlplane:8282/api/v1/ids/data +``` diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/migration/Version_0.1.x_0.3.x.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/migration/Version_0.1.x_0.3.x.md new file mode 100644 index 00000000000..f35d3aa5e26 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/migration/Version_0.1.x_0.3.x.md @@ -0,0 +1,35 @@ +# Migration from 0.1.x to 0.3.x + +## Deprecation + +- the `edc-controlplane` and `edc-dataplane` charts are deprecated, please use `tractusx-connector` which combines the former ones + +## Management API changes + +Details at the [official documentation on swaggerhub](https://app.swaggerhub.com/apis/eclipse-edc-bot/management-api/0.0.1-SNAPSHOT) + +- Management API for creating resources (assets, policydefinitions, contractdefinitions, ...) will return a body containing the id of the created resource +- Added a `POST /request` for every management endpoint (assets, policydefinitions, ...) to query all the resources. The existent `GET /` have been deprecated +- added `id` field in `DataRequestDTO` (`/transferprocess` management api), if not set it will use a randomly generated one. +- Removed field `assetId` from `ContractOffer`. It was always null though, so there should be nothing to do about it. +- on `POST /contractdefinitions` a `duration` field can be added to control the duration of the contract. +- added the `GET /assets/{id}/address` endpoint to being able to retrieve the stored `DataAddress` + +## Settings changes + +- refactored the HTTP server contexts (more details on the [related decision record](https://eclipse-edc.github.io/docs/#/submodule/Connector/docs/developer/decision-records/2022-11-09-api-refactoring/renaming)). They need to be refactored as: + - `web.http.data` becomes `web.http.management` + - `web.http.ids` becomes `web.http.protocol` + - `web.http.validation`, `web.http.controlplane` and `web.http.dataplane` become `web.http.control` +- Healthcheck api now it's exposed under the `management` context. +- Removed default value for setting `edc.transfer.proxy.token.verifier.publickey.alias` so it must be valued accordingly +- made the state machine settings configurable so it will be possible to tune them accordingly. More details in the [related documentation entry](https://eclipse-edc.github.io/docs/#/submodule/Connector/docs/developer/performance-tuning). +- renamed `edc.receiver.http.endpoint` to `edc.receiver.http.dynamic.endpoint` +- renamed `edc.oauth.public.key.alias` setting to `edc.oauth.certificate.alias` + +## Other changes + +- Supported `/public` data plane endpoint without trailing slash, that can be eventually removed from the configuration +- packages name changed from `org.eclipse.dataspaceconnector` to `org.eclipse.edc` +- To specify multiple BPN into Policies the operator `OR` can be used. More details in the [business-partner-validation extension documentation](../../edc-extensions/business-partner-validation) +- HTTP Dynamic Endpoint Data Reference: The URL for Endpoint Data Reference can be also provided via the call for starting the transfer process. More details [Http Dynamic EDR receiver](https://github.com/eclipse-edc/Connector/tree/main/extensions/control-plane/transfer/transfer-pull-http-dynamic-receiver) diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/migration/Version_0.3.0_0.3.1.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/migration/Version_0.3.0_0.3.1.md new file mode 100644 index 00000000000..fab476bd089 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/migration/Version_0.3.0_0.3.1.md @@ -0,0 +1,15 @@ +# Migration from 0.3.0 to 0.3.1 + +## Observability API changes + +All endpoints (`/health`, `/startup`, `/liveness`, `/readiness`) of the Observability API now support unauthenticated access, if configured. That will put the +Observability API under a new context named `"observability"`, which consequently requires proper web context +configuration for it. Note that the name of the context cannot be changed. + +## Settings changes + +- `tractusx.api.observability.allow-insecure`: boolean value that enables (`true`) the unauthenticated access. +- `web.http.observability.port`: integer value that specifies the port of the `observability` context. **Mandatory if + unauthenticated access is enabled!** +- `web.http.observability.path`: string value that specifies the path of the `observability` context. **Mandatory if + unauthenticated access is enabled!** diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/migration/Version_0.3.1_0.3.2.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/migration/Version_0.3.1_0.3.2.md new file mode 100644 index 00000000000..4099e8c4b67 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/migration/Version_0.3.1_0.3.2.md @@ -0,0 +1,9 @@ +# Migration from 0.3.0 to 0.3.1 + +## Configuration of Azure KeyVault + +When using Helm Charts that use the Azure KeyVault (`edc-runtime-memory`, `edc-controlplane-postgres`) +it is now possible to select _either_ authentication via Client Secret (`azure.vault.secret`) or via +certificate (`azure.vault.certificate`). + +If neither of the two is configured, the runtime will fail to start issuing an error. diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/migration/Version_0.3.3_0.3.4.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/migration/Version_0.3.3_0.3.4.md new file mode 100644 index 00000000000..a93de960061 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/migration/Version_0.3.3_0.3.4.md @@ -0,0 +1,21 @@ +# Migration from 0.3.3 to 0.3.4 + +## Refactoring of Helm Charts + +In issue [#136](https://github.com/eclipse-tractusx/tractusx-edc/issues/136) work has begun to split the Helm charts up +into several technology-focused charts: + +- In-memory: for testing and development +- PostgreSQL+Hashicorp: this is the **recommended** distribution of Tractus-X EDC +- (Azure KeyVault: uses Azure KeyVault instead of Hashicorp Vault.) - Work in Progress + +Unfortunately, due to time constraints, we had to release 0.3.4 **without** the Azure KeyVault chart, it will be +included in one of the subsequent releases in the future. + +**Please note that the Azure KeyVault variant is not included in the 0.3.4 Release! If you rely on AZKV please do NOT +upgrade to 0.3.4 yet!** + +## Change in Docker image publishing + +Starting with the 0.3.3 release we switched over to publish our Docker images +to [Docker Hub](https://hub.docker.com/search?q=tractusx) instead of GHCR. diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/migration/Version_0.3.4_0.4.0.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/migration/Version_0.3.4_0.4.0.md new file mode 100644 index 00000000000..5090fc1371e --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/migration/Version_0.3.4_0.4.0.md @@ -0,0 +1,98 @@ +# Migration from 0.3.4 to 0.4.0 + +## Switching to DSP + +The Eclipse Dataspace Connector protocol recently moved its protocol implementation from IDS to DSP as of +version `0.0.1-milestone-9`. +From the Tractus-X EDC perspective this causes breaking changes in the following areas: + +- the Management API: because DSP uses JSON-LD, all Management API endpoints had to be adapted as well to reflect that. + The old Management API is now deprecated and is **not** tested for compliance. Please upgrade using the `/v2/` path + for every endpoint, e.g. `/management/v2/assets`. Please also refer to + the [EDC OpenAPI spec](https://app.swaggerhub.com/apis/eclipse-edc-bot/management-api/0.0.1-SNAPSHOT#/). + An updated postman collection with the `v2` flow is available [here](../development/postman/collection.json) + +- modules: all `*ids*` modules are deprecated and cannot be used anymore. Please migrate over + to `org.eclipse.edc:dsp:0.0.1-milestone-9`. + +- path: the default protocol path is now `/api/v1/dsp` instead of `/api/v1/ids` + +- `edc.participant.id`: new mandatory configuration for the participant id in the dataspace (BPN number). + It's configured via mandatory property in the charts with object ```yaml participant: id: "id"```. + +**Please note that this is not a complete documentation of the DSP Protocol, please refer to +the [official documentation](https://docs.internationaldataspaces.org/dataspace-protocol/overview/readme)** + +## Removal of the Business Tests + +The business tests were removed from the code base, because all the ever tested is already by other tests, specifically +the JUnit-based tests, deployment tests, or other tests that are already done upstream in EDC. + +The Business tests were brittle, consumed a lot of resources and were quite cumbersome to run and debug locally. + +## New implementation for the Control Plane Adapter + +Since the old Control-Plane-Adapter is incompatible with DSP, a new iteration was created. +**Due to time constraints with this release documentation for this feature will to be published subsequently** + +## New Policies for expressing validity of the agreement + +The dates in `ContractOffer` and `ContractAgreement` has been removed in favour of a policy based contract validity check, see [here](https://github.com/eclipse-edc/Connector/issues/2758) + +## Other changes + +- When using the EDR [HttpDynamicReceiverExtension](https://github.com/eclipse-edc/Connector/tree/main/extensions/control-plane/transfer/transfer-pull-http-dynamic-receiver) in the transfer process initiation + the properties for configuring the receiver on single transfer process has been changed to: + + ```json + "privateProperties": { + "receiverHttpEndpoint": "{{BACKEND_SERVICE}}" + } + ``` + + instead of: + + ```json + "properties": { + "receiver.http.endpoint": "{{BACKEND_SERVICE}}" + } + ``` + +## New Catalog + +The DSP catalog is expressed as [DCat Catalog](https://www.w3.org/TR/vocab-dcat-3/), when querying the catalog a response like this will return: + +```json +{ + "@id": "5a3207ae-bd0d-4a3b-bc8a-05adfbe75d95", + "@type": "dcat:Catalog", + "dcat:dataset": { + "@id": "e6279569-17a9-4ba3-9401-a8ae4100e4eb", + "@type": "dcat:Dataset", + "odrl:hasPolicy": { + "@id": "2:1:535def6e-8321-4c0e-a595-aabdd9c18eed", + "@type": "odrl:Set", + "odrl:permission": [], + "odrl:prohibition": [], + "odrl:obligation": [], + "odrl:target": "1" + }, + "dcat:distribution": [ + ... + ], + "edc:description": "Product EDC Demo Asset", + "edc:id": "1" + }, + "dcat:service": { + ... + }, + "edc:participantId": "participantId", + "@context": { + } +} +``` + +When starting a new contract negotiation for an asset: + +- the `@id` of `odrl:hasPolicy` object should be passed in the `offerId` field +- the `edc:participantId` should be passed in the `providerId` and `connectorId` fields. `connectorId` it's still needed for backward compatibility and it will probably be removed in the next versions. diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/migration/Version_0.4.x_0.5.x.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/migration/Version_0.4.x_0.5.x.md new file mode 100644 index 00000000000..0c41ac39065 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/migration/Version_0.4.x_0.5.x.md @@ -0,0 +1,130 @@ +# Migration from 0.4.x to 0.5.x + +## Replacing DAPS with SSI + +DAPS was deprecated as identity provider, and was replaced with an Self-Sovereign-Identity solution based on a +centralized Managed Identity Wallet (MIW) using VerifiableCredentials. Initially, there will be one SummaryCredential, +which conflates all relevant information. This is intended as interim solution and will later be replaced with a more +appropriate structure. + +### Relevant terminology + +Please make sure to be at least somewhat familiar with the following terms before you read on: + +- VerifiableCredential +- VerifiablePresentation +- JWT - JSON Web Token +- DSP - the DataSpace Protocol + +### Preconditions + +All of these preconditions must be met before Tractus-X EDC `v0.5.x` is usable in a production use case. Please read +them carefully and make sure you understand the implications. + +- every connector instance must have a + signed [SummaryCredential](https://github.com/eclipse-tractusx/ssi-docu/tree/main/docs/credentials/summary) sitting in + the MIW. This is typically done by the Portal during participant onboarding. +- the connector must have an account with KeyCloak and be able to obtain access tokens. +- the connector must be able to reach both MIW and KeyCloak via HTTP + +### Authentication flow - quick intro + +The basic workflow for a connector runtime to authenticate an incoming request is described in this section. Please note +that this procedure is limited to connector-to-connector communication via the Dataspace Protocol (DSP), it does not +relate to other APIs such as the Management API. + +When a request is made by the Consumer, it obtains an access token from KeyCloak, which it uses to authenticate to MIW. +It then requests its SummaryCredential from MIW, which is returned in the form of a signed JWT that contains a +VerifiablePresentation (VP). That JWT is attached to the outgoing request as authorization header. +The Provider then decodes the JWT, validates its claims, and then uploads the VP to MIW for verification. Upon +successful verification, the Provider proceeds to process the request. + +Please also check +out [this flow diagram](https://github.com/eclipse-tractusx/ssi-docu/blob/main/docs/architecture/cx-3-2/flow.svg) and +the associated [documentation](https://github.com/eclipse-tractusx/ssi-docu/tree/main/docs/architecture/cx-3-2). + +### Connecting to MIW + +For connector onboarding, please contact the Portal Team. After that, you should receive: + +- the issuer BPN: this is the BPN of the MIW +- your client id: this is the KeyCloak Client ID +- your client secret: this the KeyCloak Client Secret. Please store this in a secure vault and remember the `alias`. + *Do not leak or publish this!* + +In order to establish a connection to MIW, and you are using EDC on code level, please be sure to +follow [this documentation](https://github.com/eclipse-tractusx/tractusx-edc/tree/main/edc-extensions/ssi/ssi-miw-credential-client). +If you are using the official Helm charts, please check +out [this documentation](https://github.com/eclipse-tractusx/tractusx-edc/blob/main/charts/tractusx-connector/README.md). + +If you are using the MIW and KeyCloak instances deployed to `INT`, the following values apply: + +- MIW Url: +- KeyCloak Token URL: +- Authority BPN: `BPNL00000003CRHK` + +> Please be aware that the above values are *only* valid for the Catena-X INT environment and *will* change on other +> environments! For instructions on how to set up a local MIW + KeyCloak, please take a look +> at [this documentation](https://github.com/catenax-ng/tx-managed-identity-wallets/blob/features/java-did-web/README.md). + +### Further documentation on SSI + +Please find more information in +the [SSI Documentation Repository](https://github.com/eclipse-tractusx/ssi-docu/tree/main/docs/architecture/cx-3-2). + +### Noteworthy things and Caveats + +- the MIWs REST API is secured with a token that can be obtained from a KeyCloak instance. This KeyCloak instance must + be configured appropriately ahead of time. +- connectors have to be able to obtain a token from KeyCloak, so it must have an account with that KeyCloak instance +- we do **not** ship either MIW or KeyCloak nor do we provide support for either of them. Please contact the respective + Tractus-X projects for instructions how to set them up. +- our official Helm charts now use SSI instead of DAPS. However, the charts do **not** include a dependency onto MIW of + KeyCloak, nor do they contain configuration for them. They do, however, contain a configuration section (titled `ssi`) + that configures EDC. +- our Helm charts can be installed, and the connector application will boot up, but unless MIW and KeyCloak are + configured properly and both can be reached over network by the connector, every DSP request to another connector will + fail. However, the ManagementAPI can still be used to create Assets, Policies and ContractDefinitions. +- At the time of releasing Tractus-X EDC `0.5.0`, a couple of critical issues regarding MIW are + still [in progress](https://jira.catena-x.net/projects/CGD/issues/CGD-291), and the code base is still on a feature + branch. For those reasons we recommend to use *non-production data only*! +- the centralized MIW is an interim solution, and is bound to be replaced with a decentralized/distributed architecture + in upcoming Catena-X releases. + +## The Observability API changes + +The following settings are removed because the `observability-api-customization` extension will be no longer used. +The `Observability API` extension will be used instead + +- `observability.port` +- `observability.path` +- `observability.insecure` + +The status (`/health`, `/startup`, `/liveness`, `/readiness`) of the EDC can be checked by using the default endpoint. + +## The Consumer Pull flow changes + +Starting from `0.5.0-rc5` which incorporates `EDC` 0.1.3, the consumer pull has been simplified in upstream, and it +can cause some breaking changes on users usage. The change is reflected in +this [diagram](https://github.com/eclipse-edc/Connector/blob/main/docs/developer/architecture/data-transfer/diagrams/transfer-data-plane-consumer-pull.png). + +The main difference is that in the previous iteration of the pull flow there were two EDRs involved. One created by the +provider while serving +a transfer request, and one created by the consumer (wrapping the provider one). The consumer one then was dispatched to +the EDR receivers for requesting +the data via consumer dataplane. + +In the current iteration the receivers now receive directly the provider EDR without the double "wrapping" and can be +used directly to fetch data +from the provider dataplane, without passing thought to the consumer dataplane. + +The shape of the EDR has not been changed so, if in the backend systems the EDR#endpoint was used as url for fetching +data, it should not cause any +breaking changes. + +If the backend system manually forward the EDR to the consumer dataplane or tries to decode it via consumer validate +token APIs, +this will not work with signature check errors, as the EDR is the one signed by the provider. + +> Note the custom property `cid` in the EDR, it's not available anymore. The property it's still available inside the +> JWT `authCode` diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/README.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/README.md new file mode 100644 index 00000000000..f14e5863aa9 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/README.md @@ -0,0 +1,7 @@ +# Samples + +In this folder are listed some documents that will help you setting up a connector execute some use cases. + +- [Local setup](./example-dataspace/README.md) +- [Transfer data](./Transfer%20Data.md) +- [Data Plane HTTP OAuth2](./data-plane-http-oauth2.md) diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/Transfer Data.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/Transfer Data.md new file mode 100644 index 00000000000..10c32b0f23b --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/Transfer Data.md @@ -0,0 +1,371 @@ +# Transfer Data + +This document will showcase a data transfer between two connectors. + +For this transfer connector **Bob** will act as data provider, and connector **Alice** will act as data +consumer. But the roles could be inverse as well. + +> Please note: Before running the examples the corresponding environment variables must be set. +> How such an environment can be setup locally is documented in [chapter 1](#1-optional---local-setup). + +## Table of Content + +- [Transfer Data](#transfer-data) + - [Table of Content](#table-of-content) + - [1. Optional - Local Setup](#1-optional---local-setup) + - [See Node Ports using Minikube](#see-node-ports-using-minikube) + - [See Node Ports using Kubernetes](#see-node-ports-using-kubernetes) + - [Set Environment Variables, used by this example](#set-environment-variables-used-by-this-example) + - [2. Setup Data Offer](#2-setup-data-offer) + - [3. Request Contract Offer Catalog](#3-request-contract-offer-catalog) + - [4. Negotiate Contract](#4-negotiate-contract) + - [5. Transfer Data](#5-transfer-data) + - [6. Verify Data Transfer](#6-verify-data-transfer) + - [Delete All Data](#delete-all-data) + +## 1. Optional - Local Setup + +To create a local setup with two connectors have a look at +the [Local TXDC Setup Documentation](Local%20TXDC%20Setup.md). +It creates two connectors (Plato & Sokrates) with exposed Node Ports. + +### See Node Ports using Minikube + +Run the following command. + +```shell +minkube service list +``` + +Minikube will then print out something like this: + +```plain +|-------------|-----------------------|-----------------|---------------------------| +| NAMESPACE | NAME | TARGET PORT | URL | +|-------------|-----------------------|-----------------|---------------------------| +| cx | backend | frontend/8080 | http://192.168.49.2:31918 | +| | | backend/8081 | http://192.168.49.2:30193 | < Transfer Backend API +| cx | ids-daps | No node port | +| cx | plato-controlplane | default/8080 | http://192.168.49.2:31016 | +| | | control/8083 | http://192.168.49.2:32510 | +| | | data/8081 | http://192.168.49.2:30423 | < Plato Data Management API +| | | validation/8082 | http://192.168.49.2:30997 | +| | | ids/8084 | http://192.168.49.2:32709 | < Plato IDS API +| | | metrics/8085 | http://192.168.49.2:31124 | +| cx | plato-dataplane | No node port | +| cx | sokrates-controlplane | default/8080 | http://192.168.49.2:32297 | +| | | control/8083 | http://192.168.49.2:32671 | +| | | data/8081 | http://192.168.49.2:31772 | < Sokrates Data Management API +| | | validation/8082 | http://192.168.49.2:30540 | +| | | ids/8084 | http://192.168.49.2:32543 | < Sokrates IDS API +| | | metrics/8085 | http://192.168.49.2:30247 | +| cx | sokrates-dataplane | No node port | +| cx | vault | No node port | +| cx | vault-internal | No node port | +| cx | vault-ui | No node port | +| default | kubernetes | No node port | +| kube-system | kube-dns | No node port | +|-------------|-----------------------|-----------------|---------------------------| +``` + +The most important APIs, used by this example, are highlighted. How they are used is described in subchapter ['Set +Environment Variables](#set-environment-variables-used-by-this-example), used by this example below. + +### See Node Ports using Kubernetes + +Using Kubernetes only the Node Ports of each Service must be checked separately. + +Run + +```shell +kubectl describe service -n cx plato-controlplane +``` + +or + +```shell +kubectl describe service -n cx sokrates-controlplane +``` + +Kubernetes will then print out something like this. + +```plain +Name: plato-controlplane +Namespace: cx +Labels: app.kubernetes.io/component=edc-controlplane + app.kubernetes.io/instance=plato-controlplane + app.kubernetes.io/managed-by=Helm + app.kubernetes.io/name=tractusx-connector-controlplane + app.kubernetes.io/part-of=edc + app.kubernetes.io/version=0.2.0 + helm.sh/chart=tractusx-connector-0.2.0 +Annotations: meta.helm.sh/release-name: plato + meta.helm.sh/release-namespace: cx +Selector: app.kubernetes.io/instance=plato-controlplane,app.kubernetes.io/name=tractusx-connector-controlplane +Type: NodePort +IP Family Policy: SingleStack +IP Families: IPv4 +IP: 10.110.180.57 +IPs: 10.110.180.57 +Port: default 8080/TCP +TargetPort: default/TCP +NodePort: default 31016/TCP +Endpoints: 172.17.0.6:8080 +Port: control 8083/TCP +TargetPort: control/TCP +NodePort: control 32510/TCP +Endpoints: 172.17.0.6:8083 +Port: data 8081/TCP +TargetPort: data/TCP +NodePort: data 30423/TCP < Plato Data Manamgent API +Endpoints: 172.17.0.6:8081 +Port: validation 8082/TCP +TargetPort: validation/TCP +NodePort: validation 30997/TCP +Endpoints: 172.17.0.6:8082 +Port: ids 8084/TCP +TargetPort: ids/TCP +NodePort: ids 32709/TCP < Plato IDS API +Endpoints: 172.17.0.6:8084 +Port: metrics 8085/TCP +TargetPort: metrics/TCP +NodePort: metrics 31124/TCP +Endpoints: 172.17.0.6:8085 +Session Affinity: None +External Traffic Policy: Cluster +Events: +``` + +The most important APIs, used by this example, are highlighted. How they are used is described in subchapter ['Set +Environment Variables](#set-environment-variables-used-by-this-example), used by this example below. +In comparison to the Minikube example this call shows only the ports. To call the ports the Kubernetes Node IP / URL is +required. Where to get the IP may vary depending on how Kubernetes is deployed. + +### Set Environment Variables, used by this example + +Environment Variables, containing a URL, used by this example are + +- BOB_DATAMGMT_URL +- ALICE_DATAMGMT_URL +- BOB_IDS_URL +- ALICE_BACKEND_URL + +Let's assume we will use Sokrates as Bob, and Plato as Alice. + +**BOB_DATAMGMT_URL** must be the Node URL. In this local setup it would be `http://192.168.49.2:31772` + +**ALICE_DATAMGMT_URL** must be the Node URL. In this local setup it would be `http://192.168.49.2:30423` + +**BOB_IDS_URL** must be internal Kubernetes URL. In this local setup `http://sokrates-controlplane:8084` + +**ALICE_BACKEND_URL** must the Node URL. In this local setup it would be `http://192.168.49.2:30193` + +## 2. Setup Data Offer + +Set up a data offer in **Bob**, so that **Alice** has something to consume. + +In case you are unfamiliar with the EDC terms `Asset`, `Policy` or `ContractDefinition` please have a look at the +official open source documentation ([link](https://github.com/eclipse-edc/Connector/blob/main/docs/developer/architecture/domain-model.md)). + +![Sequence 1](diagrams/transfer_sequence_1.png) + +The following commands will create an Asset, a Policy and a Contract Definition. +For simplicity `https://jsonplaceholder.typicode.com/todos/1` is used as data source of the asset, but could be any +other API, that is reachable from the Provider Data Plane. + +```bash +curl -X POST "${BOB_DATAMGMT_URL}/data/assets" \ + --header 'X-Api-Key: password' \ + --header 'Content-Type: application/json' \ + --data '{ + "asset": { + "properties": { + "asset:prop:id": "1", + "asset:prop:description": "Tractus-X EDC Demo Asset" + } + }, + "dataAddress": { + "properties": { + "type": "HttpData", + "baseUrl": "https://jsonplaceholder.typicode.com/todos/1" + } + } + }' \ + -s -o /dev/null -w 'Response Code: %{http_code}\n' +``` + +```bash +curl -X POST "${BOB_DATAMGMT_URL}/data/policydefinitions" \ + --header 'X-Api-Key: password' \ + --header 'Content-Type: application/json' \ + --data '{ + "id": "1", + "policy": { + "prohibitions": [], + "obligations": [], + "permissions": [ + { + "edctype": "dataspaceconnector:permission", + "action": { "type": "USE" }, + "constraints": [] + } + ] + } + }' \ + -s -o /dev/null -w 'Response Code: %{http_code}\n' +``` + +```bash +curl -X POST "${BOB_DATAMGMT_URL}/data/contractdefinitions" \ + --header 'X-Api-Key: password' \ + --header 'Content-Type: application/json' \ + --data '{ + "id": "1", + "criteria": [ + { + "operandLeft": "asset:prop:id", + "operator": "=", + "operandRight": "1" + } + ], + "accessPolicyId": "1", + "contractPolicyId": "1" + }' \ + -s -o /dev/null -w 'Response Code: %{http_code}\n' +``` + +## 3. Request Contract Offer Catalog + +In this step Alice gets told to request contract offers from another connector (in this case Bob). Alice will +then request the catalog over IDS messaging. + +For IDS messaging connectors will identify each other using the configured IDS DAPS. Therefore, it is important that +connectors, that intent to send messages to each other, have the same DAPS instance configured. + +![Sequence 1](diagrams/transfer_sequence_2.png) + +Run: + +```bash +curl -G -X GET "${ALICE_DATAMGMT_URL}/data/catalog" \ + --data-urlencode "providerUrl=${BOB_IDS_URL}/api/v1/ids/data" \ + --header 'X-Api-Key: password' \ + --header 'Content-Type: application/json' \ + -s | jq +``` + +## 4. Negotiate Contract + +Initiate a contract negotiation for the asset (from step 1). Part of the negotiation payload is the contract +offer (received in step 2). + +In the diagram the IDS contract negotiation is marked as simplified, because the EDC is exchanging multiple messages +during contract negotiation. But the inter-controlplane communication is not in the scope of this document. + +After the negotiation is initiated ensure that is has concluded. This is done by requesting the negotiation from the API +and checking whether the `contractAgreementId` is set. This might take a few seconds. + +![Sequence 1](diagrams/transfer_sequence_3.png) + +Run: + +```bash +export NEGOTIATION_ID=$( \ + curl -X POST "${ALICE_DATAMGMT_URL}/data/contractnegotiations" \ + --header "X-Api-Key: password" \ + --header "Content-Type: application/json" \ + --data "{ + \"connectorId\": \"foo\", + \"connectorAddress\": \"${BOB_IDS_URL}/api/v1/ids/data\", + \"offer\": { + \"offerId\": \"1:foo\", + \"assetId\": \"1\", + \"policy\": { + \"uid\": \"1\", + \"prohibitions\": [], + \"obligations\": [], + \"permissions\": [ + { + \"edctype\": \"dataspaceconnector:permission\", + \"action\": { \"type\": \"USE\" }, + \"target\": \"1\", + \"constraints\": [] + } + ] + } + } + }" \ + -s | jq -r '.id') +``` + +```bash +curl -X GET "${ALICE_DATAMGMT_URL}/data/contractnegotiations/${NEGOTIATION_ID}" \ + --header 'X-Api-Key: password' \ + --header 'Content-Type: application/json' \ + -s | jq +``` + +## 5. Transfer Data + +Initiate a data transfer using the contract agreement from the negotiation (from step 3). Then wait until the state of +the transfer process is `COMPLETED`. + +![Sequence 1](diagrams/transfer_sequence_4.png) + +Run: + +```bash +export CONTRACT_AGREEMENT_ID=$( \ + curl -X GET "$ALICE_DATAMGMT_URL/data/contractnegotiations/$NEGOTIATION_ID" \ + --header 'X-Api-Key: password' \ + --header 'Content-Type: application/json' \ + -s | jq -r '.contractAgreementId') +``` + +```bash +export TRANSFER_PROCESS_ID=$(tr -dc '[:alnum:]' < /dev/urandom | head -c20) +export TRANSFER_ID=$( \ + curl -X POST "${ALICE_DATAMGMT_URL}/data/transferprocess" \ + --header "X-Api-Key: password" \ + --header "Content-Type: application/json" \ + --data "{ + \"id\": \"${TRANSFER_PROCESS_ID}\", + \"connectorId\": \"foo\", + \"connectorAddress\": \"${BOB_IDS_URL}/api/v1/ids/data\", + \"contractId\": \"${CONTRACT_AGREEMENT_ID}\", + \"assetId\": \"1\", + \"managedResources\": \"false\", + \"dataDestination\": { \"type\": \"HttpProxy\" } + }" \ + -s | jq -r '.id') +``` + +```bash +curl -X GET "${ALICE_DATAMGMT_URL}/data/transferprocess/${TRANSFER_ID}" \ + --header 'X-Api-Key: password' \ + --header 'Content-Type: application/json' \ + -s | jq +``` + +## 6. Verify Data Transfer + +After the transfer is complete the Backend Application has downloaded the data. The Backend Application stores the data +locally. In this demo the transfer can be verified by executing a simple `cat` call in the Pod. + +![Sequence 1](diagrams/transfer_sequence_5.png) + +```bash +curl -X GET "${ALICE_BACKEND_URL}/${TRANSFER_PROCESS_ID}" \ + --header 'Accept: application/octet-stream' \ + -s | jq +``` + +## Delete All Data + +```bash +minikube kubectl -- delete pvc -n edc-all-in-one --all +``` + +```bash +minikube kubectl -- delete pv -n edc-all-in-one --all +``` diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/data-plane-http-oauth2.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/data-plane-http-oauth2.md new file mode 100644 index 00000000000..63b99319fbc --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/data-plane-http-oauth2.md @@ -0,0 +1,7 @@ +# Data Plane HTTP OAuth2 + +The Data Plane HTTP OAuth2 extension permits the data-plane to fetch the data requested from a consumer from an HTTP server +with an OAuth2 authentication layer. + +For further documentation, please refer to the extension README: + diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/diagrams/transfer_sequence_1.png b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/diagrams/transfer_sequence_1.png new file mode 100644 index 00000000000..22500abc3cf Binary files /dev/null and b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/diagrams/transfer_sequence_1.png differ diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/diagrams/transfer_sequence_1.puml b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/diagrams/transfer_sequence_1.puml new file mode 100644 index 00000000000..b49733a0197 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/diagrams/transfer_sequence_1.puml @@ -0,0 +1,34 @@ +@startuml + +!define aliceColor 66CCFF +!define bobColor CCFF99 +!define dapsColor FFFF99 +!define noteColor 9999FF + +actor User as "User" + +box Alice + participant AliceControlPlane as "Control Plane" #aliceColor + participant AliceBackendService as "Backend Application" #aliceColor + participant AliceDataPlane as "Data Plane" #aliceColor +end box + +box Bob + participant BobControlPlane as "Control Plane" #bobColor + participant BobDataPlane as "Data Plane" #bobColor +end box + +participant JsonPlaceHolder as "JsonPlaceHolder" + + +User -> BobControlPlane ++ : Create Asset +return 204 + +User -> BobControlPlane ++ : Create Policy +return 204 + +User -> BobControlPlane ++ : Create Contract Definition +return 204 + + +@enduml diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/diagrams/transfer_sequence_2.png b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/diagrams/transfer_sequence_2.png new file mode 100644 index 00000000000..95b6eeced3a Binary files /dev/null and b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/diagrams/transfer_sequence_2.png differ diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/diagrams/transfer_sequence_2.puml b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/diagrams/transfer_sequence_2.puml new file mode 100644 index 00000000000..2d078607d02 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/diagrams/transfer_sequence_2.puml @@ -0,0 +1,28 @@ +@startuml + +!define aliceColor 66CCFF +!define bobColor CCFF99 +!define dapsColor FFFF99 +!define noteColor 9999FF + +actor User as "User" + +box Alice + participant AliceControlPlane as "Control Plane" #aliceColor + participant AliceBackendService as "Backend Application" #aliceColor + participant AliceDataPlane as "Data Plane" #aliceColor +end box + +box Bob + participant BobControlPlane as "Control Plane" #bobColor + participant BobDataPlane as "Data Plane" #bobColor +end box + +participant JsonPlaceHolder as "JsonPlaceHolder" + +User -> AliceControlPlane ++ : Request Contract Offers from Bob + AliceControlPlane -> BobControlPlane ++ : IDS Description Request Message + return Description +return Contract Offers + +@enduml diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/diagrams/transfer_sequence_3.png b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/diagrams/transfer_sequence_3.png new file mode 100644 index 00000000000..14a30c9a915 Binary files /dev/null and b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/diagrams/transfer_sequence_3.png differ diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/diagrams/transfer_sequence_3.puml b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/diagrams/transfer_sequence_3.puml new file mode 100644 index 00000000000..7bec9eadb87 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/diagrams/transfer_sequence_3.puml @@ -0,0 +1,33 @@ +@startuml + +!define aliceColor 66CCFF +!define bobColor CCFF99 +!define dapsColor FFFF99 +!define noteColor 9999FF + +actor User as "User" + +box Alice + participant AliceControlPlane as "Control Plane" #aliceColor + participant AliceBackendService as "Backend Application" #aliceColor + participant AliceDataPlane as "Data Plane" #aliceColor +end box + +box Bob + participant BobControlPlane as "Control Plane" #bobColor + participant BobDataPlane as "Data Plane" #bobColor +end box + +participant JsonPlaceHolder as "JsonPlaceHolder" + + +User -> AliceControlPlane ++ : Negotiate Contract for Offer X +AliceControlPlane --> User: Negotiation ID + AliceControlPlane -> BobControlPlane ++ : IDS Contract Negotiation (simplified) + return Contract Agreement +deactivate AliceControlPlane + +User -> AliceControlPlane ++ : Request Negotiation by ID +return Contract Negotiation + +@enduml diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/diagrams/transfer_sequence_4.png b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/diagrams/transfer_sequence_4.png new file mode 100644 index 00000000000..e3630e70aff Binary files /dev/null and b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/diagrams/transfer_sequence_4.png differ diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/diagrams/transfer_sequence_4.puml b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/diagrams/transfer_sequence_4.puml new file mode 100644 index 00000000000..6d4e936ed78 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/diagrams/transfer_sequence_4.puml @@ -0,0 +1,44 @@ +@startuml + +!define aliceColor 66CCFF +!define bobColor CCFF99 +!define dapsColor FFFF99 +!define noteColor 9999FF + +actor User as "User" + +box Alice + participant AliceControlPlane as "Control Plane" #aliceColor + participant AliceBackendService as "Backend Application" #aliceColor + participant AliceDataPlane as "Data Plane" #aliceColor +end box + +box Bob + participant BobControlPlane as "Control Plane" #bobColor + participant BobDataPlane as "Data Plane" #bobColor +end box + +participant JsonPlaceHolder as "JsonPlaceHolder" + +User -> AliceControlPlane ++ : Request Negotiation by ID +return Contract Negotiation\n(containing Contract Agreement ID) + +User -> AliceControlPlane ++ : Initiate Transfer with Agreement ID +AliceControlPlane --> User : Transfer Process ID + AliceControlPlane -> BobControlPlane ++ : IDS Data Transfer (simplified) +return +AliceControlPlane -> AliceBackendService ++ : Data Plane Endpoint + Token + AliceBackendService -> AliceDataPlane ++ : Request Data with Token + AliceDataPlane -> BobDataPlane ++ : Request Data + BobDataPlane -> JsonPlaceHolder ++ : Request Data + return data + return data + return data + AliceBackendService -> AliceBackendService : Write Data to File +return ok +deactivate AliceControlPlane + +User -> AliceControlPlane ++ : Request Transfer Process by ID +return Transfer Process + +@enduml diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/diagrams/transfer_sequence_5.png b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/diagrams/transfer_sequence_5.png new file mode 100644 index 00000000000..1a18b5be2d9 Binary files /dev/null and b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/diagrams/transfer_sequence_5.png differ diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/diagrams/transfer_sequence_5.puml b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/diagrams/transfer_sequence_5.puml new file mode 100644 index 00000000000..598b747b6fa --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/diagrams/transfer_sequence_5.puml @@ -0,0 +1,27 @@ +@startuml + +!define aliceColor 66CCFF +!define bobColor CCFF99 +!define dapsColor FFFF99 +!define noteColor 9999FF + +actor User as "User" + +box Alice + participant AliceControlPlane as "Control Plane" #aliceColor + participant AliceBackendService as "Backend Application" #aliceColor + participant AliceDataPlane as "Data Plane" #aliceColor +end box + +box Bob + participant BobControlPlane as "Control Plane" #bobColor + participant BobDataPlane as "Data Plane" #bobColor +end box + +participant JsonPlaceHolder as "JsonPlaceHolder" + +User -> AliceBackendService ++ : Get File Content +return data + + +@enduml diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/edr-api-overview/edr-api-overview.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/edr-api-overview/edr-api-overview.md new file mode 100644 index 00000000000..578cc6ecd2c --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/edr-api-overview/edr-api-overview.md @@ -0,0 +1,135 @@ +# Endpoint Data Reference API Overview + +## Introduction + +The **Endpoint Data Reference** serves the purpose of streamlining the consumer connector operators' interactions. Through its API, acts as a facade for two fundamental processes involved in Asset consumption: **contract negotiation** and **transfer process** initialization and additionally, it enables the management of **EDR**s (Endpoint Data References). + +## Configuration + +The new API is seamlessly deployed under the well-known management API context, requiring no additional configuration. However, this is not the case for the EDR Cache storage. The EDR Cache provides two implementations: `InMemory` and `SQL`. The `edc-runtime-memory` bundle utilizes the `InMemory` implementation for the EDR Cache without any extra setup. On the other hand, the SQL Cache, found in the `edc-controlplane-postgresql-*` bundles, utilizes the SQL implementation and requires database access for schema migration and data management. + +| property | description | required | default value | +|-----------------------------------------------------------|------------------------------------------------------|----------|---------------| +| edc.datasource.edr.name | Defines the name associated with the EDR data source | false | edr | +| edc.datasource.edr.url | Defines the database address to access the EDR data | true | | +| edc.datasource.edr.user | Defines EDR database username | true | | +| edc.datasource.edr.password | Defines EDR database password | true | | + +## Features + +### EDR Negotiation | Contract Negotiation and Transfer Process in a single request + +This endpoint will perform the contract negotiation, transfer process and EDR storage respectively. + +> Please note that the `data destination` will always be `HttpProxy`, requiring a request against the provider's `data-plane` to fetch the asset data. + +| Path | Method | Query Params | +|---------------------------------|--------|--------------------------| +| `/edrs` | POST | none | + +#### Payload + +```json +{ + "@context": { + "@vocab": "https://w3id.org/edc/v0.0.1/ns/", + "odrl": "http://www.w3.org/ns/odrl/2/" + }, + "@type": "NegotiationInitiateRequestDto", + "connectorAddress": "", + "protocol": "dataspace-protocol-http", + "connectorId": "", + "providerId": "", + "offer": { + "offerId": "", + "assetId": "", + "policy": { + "@type": "odrl:Set", + "odrl:permission": { + "odrl:target": "", + "odrl:action": { + "odrl:type": "USE" + } + }, + "odrl:target": "" + } + } +} +``` + +#### EDR Negotiation Response + +```json +{ + "@type": "edc:IdResponseDto", + "@id": "contract-negotiation-id", + "edc:createdAt": 1687405819736, + "@context": { + "dct": "https://purl.org/dc/terms/", + "tx": "https://w3id.org/tractusx/v0.0.1/ns/", + "edc": "https://w3id.org/edc/v0.0.1/ns/", + "dcat": "https://www.w3.org/ns/dcat/", + "odrl": "http://www.w3.org/ns/odrl/2/", + "dspace": "https://w3id.org/dspace/v0.8/" + } +} +``` + +### EDR Management | Fetch cached EDRs + +This endpoint will retrieve all EDR entries by their `assetId` or `agreementId` references, which are passed as `query parameters`. + +| Path | Method | Query Params | +|----------------------------------------------|--------|----------------------| +| `/edrs` | GET | assetId, agreementId | + +#### EDR Entry Response + +```json +[ + { + "@type": "tx:EndpointDataReferenceEntry", + "edc:agreementId": "contract-agreement-id", + "edc:transferProcessId": "transfer-process-id", + "edc:assetId": "asset-id", + "@context": { + "dct": "https://purl.org/dc/terms/", + "tx": "https://w3id.org/tractusx/v0.0.1/ns/", + "edc": "https://w3id.org/edc/v0.0.1/ns/", + "dcat": "https://www.w3.org/ns/dcat/", + "odrl": "http://www.w3.org/ns/odrl/2/", + "dspace": "https://w3id.org/dspace/v0.8/" + } + } +] +``` + +This endpoint, through the `transfer-process-id` passed as `path variable`, will retrieve the actual EDR. + +| Path | Method | Query Params | +|-----------------------------------------------|--------|--------------------------| +| `/edrs/{transfer-process-id}` | GET | none | + +#### EDR Response + +```json +{ + "@type": "edc:DataAddress", + "edc:cid": "cid", + "edc:type": "EDR", + "edc:authCode": "authcode", + "edc:endpoint": "http://provider-data-plane/public-url", + "edc:id": "transfer-process-id", + "edc:authKey": "Authorization", + "@context": { + "dct": "https://purl.org/dc/terms/", + "tx": "https://w3id.org/tractusx/v0.0.1/ns/", + "edc": "https://w3id.org/edc/v0.0.1/ns/", + "dcat": "https://www.w3.org/ns/dcat/", + "odrl": "http://www.w3.org/ns/odrl/2/", + "dspace": "https://w3id.org/dspace/v0.8/" + } +} +``` + +> Please note that now with the EDR you are able to request the `Asset` data from provider's `data-plane`. diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/example-dataspace/README.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/example-dataspace/README.md new file mode 100644 index 00000000000..11038e86ba5 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/example-dataspace/README.md @@ -0,0 +1,128 @@ +# How-To run two connectors and a DAPS + +## 1. Prepare environment + +This guide will bring up two connectors named "Sokrates" and "Plato", each alongside their dependencies (Hashicorp +Vault, PostgreSQL) and a DAPS instance that both share. + +We've tested this setup with [KinD](https://kind.sigs.k8s.io/), but other runtimes such +as [Minikube](https://minikube.sigs.k8s.io/docs/start/) may work as well, we just haven't tested them. + +This version of Tractus-X EDC _requires_ a running instance of the Managed Identity Wallet and KeyCloak, a connector +will not be able to communicate to another connector without it. + +Installation instructions for those are beyond the scope of this document, please refer to the respective manuals and +guides for information on how to set them up. + +Furthermore, this guide assumes: + +- the Tractus-X EDC repository is checked out, the working directory for this guide is `docs/samples/example-dataspace` +- a Kubernetes runtime (e.g. KinD) is already installed and ready-to-use +- basic knowledge about `helm` and Kubernetes +- the following tools are available: `yq`, `openssl`, `base64` +- a POSIX-compliant shell, e.g. `bash` or `zsh` unless stated otherwise + +### 1.1 Create secrets for both runtimes + +We'll need a x509 certificate in order to communicate with DAPS, as well as a private key and a Data Encryption signing +key. + +```shell +# SOKRATES aes encryption key +echo "aes_enckey_test" | base64 > sokrates.aes.key + +# PLATO aes encryption key +echo "aes_enckey_test" | base64 > plato.aes.key +``` + +Any arbitrary string can be used for the AES key, but it has to be 16, 24, or 32 characters in length, assuming UTF-8 +encoding. + +### 1.2 Obtain configuration for MiW and KeyCloak + +> The following information is _required_, your connectors will **not** work properly unless you +> modify the `ssi:` section of `sokrates-values.yaml` and `plato-values.yaml` accordingly! + +For communication with KeyCloak we need the following information + +- the `tokenurl`: URL where access tokens can be obtained +- the `client.id`: KeyCloak identifier of the connector + +Note that the OAuth2 client secret will be stored in the vault under the alias `client-secret`. + +In order to use MiW as credential backend we need the following information: + +- `url`: a URL where MiW is reachable +- `authorityId`: this is the `issuerIdentifier` for MiW REST requests, please refer to the respective documentation. + +Furthermore, we need the `endpoint.audience`, which is used to verify the `aud` claim of incoming requests. This does **not** have to be set explicitly, it defaults to each connector's callback address. + +## 2. Prepare Connectors + +Next, the certificates and private keys we created previously must be stored in each connector's vault by injecting +a `postStart` element to the chart's configuration file: + +```shell +# for sokrates +VALUES_FILE=sokrates-values.yaml +CLIENT_SECRET= +AES_KEY=$(cat sokrates.aes.key) +yq -i ".vault.server.postStart |= [\"sh\",\"-c\",\"{\nsleep 5\n +/bin/vault kv put secret/client-secret content=$CLIENT_SECRET\n +/bin/vault kv put secret/aes-keys content=$AES_KEY\n}\"]" "$VALUES_FILE" + +# for plato +VALUES_FILE=plato-values.yaml +CLIENT_SECRET= +AES_KEY=$(cat plato.aes.key) +yq -i ".vault.server.postStart |= [\"sh\",\"-c\",\"{\nsleep 5\n +/bin/vault kv put secret/client-secret content=$CLIENT_SECRET\n +/bin/vault kv put secret/aes-keys content=$AES_KEY\n}\"]" "$VALUES_FILE" +``` + +## 3 Install the connectors + +Use `helm` to install the Tractus-X EDC Helm charts. In this example we are using the _local_ charts, assuming you have +Tractus-X EDC checked out in your local filesystem at ``. + +```shell +# install sokrates +helm install tx-sokrates /charts/tractusx-connector \ + -f sokrates-values.yaml \ + --dependency-update + +# install plato +helm install tx-plato /charts/tractusx-connector \ + -f plato-values.yaml \ + --dependency-update +``` + +_Note: if you prefer to use the published version of the `tractusx-connector` chart, please add the Tractus-X Helm repo +first:_ + +```shell +helm repo add tractusx-edc https://eclipse-tractusx.github.io/charts/dev +helm install tx-[sokrates|plato] tractusx-edc/tractusx-connector \ + -f [sokrates|plato]-values.yaml \ + --dependency-update +``` + +## 3.1 [Optional] Verify the correct installation + +There is several ways of making sure everything worked out well: + +- simply look at the logs of the Helm releases, e.g. with a tool + like [stern](https://kubernetes.io/blog/2016/10/tail-kubernetes-with-stern/) and look out for a log line similar to: + + ```shell + stern tx-sokrates + ``` + + then look out for something similar to: + + ```shell + tx-sokrates-controlplane-b9456f97b-s5jts tractusx-connector INFO 2023-05-31T07:24:53.020975888 tx-sokrates-controlplane ready + ``` + +- wait for the Kubernetes rollout to be successful, e.g. `kubectl rollout status deployment tx-plato-controlplane` +- use `helm test` to execute tests: `helm test tx-plato` diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/management-api-v2-walkthrough/1-management-api-overview.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/management-api-v2-walkthrough/1-management-api-overview.md new file mode 100644 index 00000000000..5f241750d24 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/management-api-v2-walkthrough/1-management-api-overview.md @@ -0,0 +1,60 @@ +# Management API Overview + +## Introduction + +With the introduction of the new [Dataspace Protocol](https://docs.internationaldataspaces.org/dataspace-protocol/overview/readme), now using JSON-LD, all Management API endpoints had to be adapted as well to reflect that. +JSON-LD (JSON for Linked Data) is an extension of JSON that introduces a set of principles and mechanisms to enable interoperability. + +This document will showcase how this change impacts the management API usage. + +## 1. Modified Endpoints + +The `MANAGEMENT_URL` specifies the URL of the management API and the prefixes `v2` and `v3` allows access to the most recent functionalities of the management API. + +| Resource | Endpoint | +|-----------------------|--------------------------------------------| +| Asset | `/v3/assets` | +| Policy Definition | `/v2/policydefinitions` | +| Contract Definition | `/v2/contractdefinitions` | +| Catalog | `/v2/catalog` | +| Contract Negotiation | `/v2/contractnegotiations` | +| Contract Agreement | `/v2/contractagreements` | +| Transfer Process | `/v2/transferprocesses` | + +## 2. Brief JSON-LD Introduction + +JSON-LD includes several important keywords that play a crucial role in defining the structure, semantics, and relationships within a JSON-LD document. Since some keys which are required in requests for the new management API aren't self-explanatory when you first see them, here are some of the most commonly used and important keywords in JSON-LD. +These keys are generally part of the JSON-LD spec and serve as identification on a larger scope. Please also refer to the [JSON-LD spec](https://www.w3.org/TR/json-ld11/). + +### Keywords + +| Key | Description | +|-----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| @context | Specifies the context for interpreting the meaning of terms and properties within a JSON-LD document. It associates terms with namespaces, vocabularies, or URLs. | +| @vocab | Sets a default namespace or vocabulary for expanding terms within a JSON-LD document. It allows for a more concise representation of properties by omitting the namespace prefix for commonly used terms. | +| @id | Represents the unique identifier (URI or IRI) for a node or resource within a JSON-LD document. It allows for linking and referencing resources. | +| @type | Indicates the type(s) of a node or resource. It is used to specify the class or classes that the resource belongs to, typically using terms from a vocabulary or ontology. | + +### Namespaces + +A namespace is defined by associating a prefix with a URI or IRI in the @context of a JSON-LD document. The prefix is typically a short string, while the URI or IRI represents a namespace or vocabulary where the terms or properties are defined. + +| Key | Description | +|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| dct | Defines the prefix "dct" and associates it with the URI "". The prefix "dct" can now be used in the JSON-LD document to represent terms from the Dublin Core Metadata Terms vocabulary. | +| edc | Defines the prefix "edc" and associates it with the URI "". The prefix "edc" can now be used to represent terms from the EDC (Eclipse Dataspace Connect) vocabulary. | +| dcat | Defines the prefix "dcat" and associates it with the URI "". The prefix "dcat" can now be used to represent terms from the DCAT (Data Catalog Vocabulary) vocabulary. | +| odrl | Defines the prefix "odrl" and associates it with the URI "". The prefix "odrl" can now be used to represent terms from the ODRL (Open Digital Rights Language) vocabulary. | +| dspace | Defines the prefix "dspace" and associates it with the URI "". The prefix "dspace" can now be used to represent terms from the DSpace vocabulary. | + +> Please note: The namespace `edc` currently is only a placeholder and does not lead to any JSON-LD context definition or vocabulary. +> This will change at a later date. + +## 3. Walkthrough + +1. [Create an Asset](2-assets.md) +2. [Create a Policy Definition](3-policy-definitions.md) +3. [Create Contract Definition](4-contract-definitions.md) +4. [Fetch provider's Catalog](5-catalog.md) +5. [Initiate Contract Negotiation](6-contract-negotiation.md) +6. [Initiate Transfer Process](7-transfer-process.md) diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/management-api-v2-walkthrough/2-assets.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/management-api-v2-walkthrough/2-assets.md new file mode 100644 index 00000000000..68c4bd0c452 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/management-api-v2-walkthrough/2-assets.md @@ -0,0 +1,80 @@ +# Creating an Asset + +## Old plain JSON Schema + +```json +{ + "asset": { + "id": "", + "properties": { + "name": "", + "description": "", + "version": "", + "contenttype": "" + } + }, + "dataAddress": { + "properties": { + "type": "" + } + } +} +``` + +## New JSON-LD Document + +> Please note: In our samples, properties **WILL NOT** be explicitly namespaced, and internal nodes **WILL NOT** be typed, relying on `@vocab` prefixing and root schema type inheritance respectively. + +```json +{ + "@context": { + "@vocab": "https://w3id.org/edc/v0.0.1/ns/" + }, + "@type": "Asset", + "@id": "", + "properties": { + "name": "", + "description": "", + "version": "", + "contenttype": "" + }, + "privateProperties": { + "private-property": "" + }, + "dataAddress": { + "type": "" + } +} +``` + +A new addition are the `privateProperties`. +Private properties will not be sent through the dataplane and are only accessible via the management API. +This enables the storage of additional information pertaining the asset, that is not relevant for the consumer, but is nonetheless useful for the provider. +Private properties are stores inside the `privateProperties` field. + +> Please note: +> `privateProperties` are entirely optional and the field is not required for creating or updating an asset. +> `dataAddress` should correspond to one of the supported types by the connector, e.g. HttpData and AmazonS3, and it should include all the necessary properties associated with the chosen type. + +## Request + +In this case we generate a very simple asset, that only contains the minimum in terms of information. +For this we need both an asset and a data address, which together form an asset entry. + +```bash +curl -X POST "${MANAGEMENT_URL}/v3/assets" \ + --header 'X-Api-Key: password' \ + --header 'Content-Type: application/json' \ + --data '{ + "@context": { + "@vocab": "https://w3id.org/edc/v0.0.1/ns/" + }, + "@type": "Asset", + "@id": "asset-id" + "dataAddress": { + "type": "HttpData", + "baseUrl": "https://jsonplaceholder.typicode.com/todos" + } + }' \ + -s -o /dev/null -w 'Response Code: %{http_code}\n' +``` diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/management-api-v2-walkthrough/3-policy-definitions.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/management-api-v2-walkthrough/3-policy-definitions.md new file mode 100644 index 00000000000..7acf439ff6a --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/management-api-v2-walkthrough/3-policy-definitions.md @@ -0,0 +1,98 @@ +# Creating a Policy Definition + +## Old plain JSON Schema + +```json +{ + "id": "", + "policy": { + "permissions": [ + { + "action": { + "type": "USE" + }, + "constraints": [ + { + "leftExpression": { + "value": "" + }, + "rightExpression": { + "value": "" + }, + "operator": "" + } + ] + } + ], + "prohibition": [], + "obligation": [] + } +} +``` + +## New JSON-LD Document + +Policy model is now pure [ODRL (Open Digital Rights Language)](https://www.w3.org/TR/odrl-model/) and going through it would help get a more complete picture. + +> Please note: In our samples, except from `odrl` vocabulary terms that must override `edc` default prefixing, properties **WILL NOT** be explicitly namespaced, and internal nodes **WILL NOT** be typed, relying on `@vocab` prefixing and root schema type inheritance respectively. + +```json +{ + "@context": { + "@vocab": "https://w3id.org/edc/v0.0.1/ns/", + "odrl": "http://www.w3.org/ns/odrl/2/" + }, + "@type":"PolicyDefinition", + "@id": "", + "policy": { + "odrl:permission": [ + { + "odrl:action": "USE", + "odrl:constraint": [ + { + "odrl:leftOperand": "", + "odrl:operator": "", + "odrl:rightOperand": "" + }] + } + ], + "odrl:prohibition": [], + "odrl:obligation": [] + } +} +``` + +## Request + +In this case we generate a very simple policy definition, that only contains the minimum in terms of information. +A Policy MUST have at least one permission, prohibition, or obligation property value of type Rule and in our case it will hold a permission defining our well-known `BusinessPartnerNumber` validation `Constraint`. + +```bash +curl -X POST "${MANAGEMENT_URL}/v2/policydefinitions" \ + --header 'X-Api-Key: password' \ + --header 'Content-Type: application/json' \ + --data '{ + "@context": { + "@vocab": "https://w3id.org/edc/v0.0.1/ns/", + "odrl": "http://www.w3.org/ns/odrl/2/" + }, + "@type":"PolicyDefinition", + "@id": "policy-definition-id", + "policy": { + "odrl:permission": [ + { + "odrl:action": "USE", + "odrl:constraint": [ + { + "odrl:leftOperand": "BusinessPartnerNumber", + "odrl:operator": "eq", + "odrl:rightOperand": "BPN" + }] + } + ], + "odrl:prohibition": [], + "odrl:obligation": [] + } + }' \ + -s -o /dev/null -w 'Response Code: %{http_code}\n' +``` diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/management-api-v2-walkthrough/4-contract-definitions.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/management-api-v2-walkthrough/4-contract-definitions.md new file mode 100644 index 00000000000..2b308e39bbb --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/management-api-v2-walkthrough/4-contract-definitions.md @@ -0,0 +1,70 @@ +# Creating a Contract Definition + +## Old plain JSON Schema + +```json +{ + "id": "", + "accessPolicyId": "", + "contractPolicyId": "", + "assetsSelector": [ + { + "operandLeft": "", + "operator": "", + "operandRight": "" + } + ] +} +``` + +## New JSON-LD Document + +> Please note: In our samples, properties **WILL NOT** be explicitly namespaced, and internal nodes **WILL NOT** be typed, relying on `@vocab` prefixing and root schema type inheritance respectively. + +```json +{ + "@context": { + "@vocab": "https://w3id.org/edc/v0.0.1/ns/" + }, + "@type": "ContractDefinition", + "@id": "", + "accessPolicyId": "", + "contractPolicyId": "", + "assetsSelector": [ + { + "operandLeft": "", + "operator": "", + "operandRight": "" + } + ] +} +``` + +## Request + +In this case we generate a very simple contract definition, that only contains the minimum in terms of information. +A Contract Definition MUST have `accessPolicy`, `contractPolicy` identifiers and `assetsSelector`property values. +The `operandLeft` property value MUST contain the asset property full qualified term `/`, in our case `https://w3id.org/edc/v0.0.1/ns/id`. + +```bash +curl -X POST "${MANAGEMENT_URL}/v2/contractdefinitions" \ + --header 'X-Api-Key: password' \ + --header 'Content-Type: application/json' \ + --data '{ + "@context": { + "@vocab": "https://w3id.org/edc/v0.0.1/ns/" + }, + "@type": "ContractDefinition", + "@id": "contract-definition-id", + "accessPolicyId": "policy-id, + "contractPolicyId": "policy-id", + "assetsSelector": [ + { + "operandLeft": "https://w3id.org/edc/v0.0.1/ns/id", + "operator": "=", + "operandRight": "asset-id" + } + ] + }' \ + -s -o /dev/null -w 'Response Code: %{http_code}\n' +``` diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/management-api-v2-walkthrough/5-catalog.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/management-api-v2-walkthrough/5-catalog.md new file mode 100644 index 00000000000..e865f93507b --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/management-api-v2-walkthrough/5-catalog.md @@ -0,0 +1,66 @@ +# Fetching provider's Catalog + +## Old plain JSON Schema + +```json +{ + "protocol" : "ids-protocol-http", + "providerUrl": "", + "querySpec": { + "offset": 0, + "limit": 100, + "filter": "", + "range": { + "from": 0, + "to": 100 + }, + "sortField": "", + "criterion": "" + } +} +``` + +## New JSON-LD Document + +> Please note: In our samples, properties **WILL NOT** be explicitly namespaced, and internal nodes **WILL NOT** be typed, relying on `@vocab` prefixing and root schema type inheritance respectively. + +```json +{ + "@context": { + "@vocab": "https://w3id.org/edc/v0.0.1/ns/" + }, + "protocol" : "dataspace-protocol-http", + "providerUrl": "", + "querySpec": { + "offset": 0, + "limit": 100, + "filterExpression": { + "operandLeft": "", + "operator": "", + "operandRight": "" + } + } +} +``` + +## Request + +In this case we fetch a provider catalog. + +```bash +curl -X POST "${MANAGEMENT_URL}/v2/catalog/request" \ + --header 'X-Api-Key: password' \ + --header 'Content-Type: application/json' \ + --data '{ + "@context": { + "vocab": "https://w3id.org/edc/v0.0.1/ns/" + }, + "protocol" : "dataspace-protocol-http", + "providerUrl": "http://provider-control-plane:8282/api/v1/dsp", + "querySpec": { + "offset": 0, + "limit": 100 + } + }' \ + -s -o /dev/null -w 'Response Code: %{http_code}\n' +``` diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/management-api-v2-walkthrough/6-contract-negotiation.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/management-api-v2-walkthrough/6-contract-negotiation.md new file mode 100644 index 00000000000..c1b5db05065 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/management-api-v2-walkthrough/6-contract-negotiation.md @@ -0,0 +1,97 @@ +# Initiation a Contract Negotiation + +## Old plain JSON Schema + +```json +{ + "connectorAddress": "provider-dsp-url", + "protocol": "dataspace-protocol-http", + "connectorId": "", + "providerId": "", + "offer": { + "offerId": "", + "assetId": "", + "policy": { + "permissions": [], + "prohibition": [], + "obligation": [] + } + } +} +``` + +## New JSON-LD Document + +> Please note: In our samples, properties **WILL NOT** be explicitly namespaced, and internal nodes **WILL NOT** be typed, relying on `@vocab` prefixing and root schema type inheritance respectively. + +```json +{ + "@context": { + "@vocab": "https://w3id.org/edc/v0.0.1/ns/", + "odrl": "http://www.w3.org/ns/odrl/2/" + }, + "@type": "NegotiationInitiateRequestDto", + "connectorAddress": "provider-dsp-url", + "protocol": "dataspace-protocol-http", + "connectorId": "", + "providerId": "", + "offer": { + "offerId": "", + "assetId": "", + "policy": { + "@type": "odrl:Set", + "odrl:permission": [], + "odrl:prohibition": [], + "odrl:obligation": [], + "odrl:target": "" + } + } +} +``` + +The `offerId` and `policy` must be the `odrl:Set` `@id` and content, respectively, of the one you chose to agree with from the `dcat:dataset` in the `dcat:catalog`. + +## Request + +In this case we initiate a contract negotiation with the provider. + +```bash +curl -X POST "${MANAGEMENT_URL}/v2/contractnegotiations" \ + --header 'X-Api-Key: password' \ + --header 'Content-Type: application/json' \ + --data '{ + "@context": { + "@vocab": "https://w3id.org/edc/v0.0.1/ns/", + "odrl": "http://www.w3.org/ns/odrl/2/" + }, + "@type": "NegotiationInitiateRequestDto", + "connectorAddress": "provider-dsp-url", + "protocol": "dataspace-protocol-http", + "connectorId": "provider-id", + "providerId": "provider-id", + "offer": { + "offerId": "offer-id", + "assetId": "asset-id", + "policy": { + "@type": "odrl:Set", + "odrl:permission": { + "odrl:target": "asset-id", + "odrl:action": { + "odrl:type": "USE" + }, + "odrl:constraint": { + "odrl:or": { + "odrl:leftOperand": "BusinessPartnerNumber", + "odrl:operator": "EQ", + "odrl:rightOperand": "ANY-BPN" + } + } + }, + "odrl:prohibition": [], + "odrl:obligation": [], + "odrl:target": "asset-id" + } + } + }' \ + -s -o /dev/null -w 'Response Code: %{http_code}\n' +``` diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/management-api-v2-walkthrough/7-transfer-process.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/management-api-v2-walkthrough/7-transfer-process.md new file mode 100644 index 00000000000..19fe00ba08c --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/docs/samples/management-api-v2-walkthrough/7-transfer-process.md @@ -0,0 +1,79 @@ +# Initiation a Transfer Process + +## Old plain JSON Schema + +```json +{ + "assetId": "", + "connectorAddress": "", + "contractId": "", + "dataDestination": { + "properties": { + "type": "" + } + }, + "managedResources": false, + "privateProperties": { + "receiverHttpEndpoint": "" + }, + "protocol": "ids-protocol-http", + "transferType": { + "contentType": "application/octet-stream", + "isFinite": true + } +} +``` + +## New JSON-LD Document + +> Please note: In our samples, properties **WILL NOT** be explicitly namespaced, and internal nodes **WILL NOT** be typed, relying on `@vocab` prefixing and root schema type inheritance respectively. + +```json +{ + "@context": { + "@vocab": "https://w3id.org/edc/v0.0.1/ns/", + "odrl": "http://www.w3.org/ns/odrl/2/" + }, + "assetId": "", + "connectorAddress": "", + "contractId": "", + "dataDestination": { + "type": "" + }, + "managedResources": false, + "privateProperties": { + "receiverHttpEndpoint": "" + }, + "protocol": "dataspace-protocol-http" +} +``` + +`dataDestination` should correspond to one of the supported types listed in the provider's catalog `dcat:distribution`, and it should include all the necessary properties associated with the chosen type. + +## Request + +In this case we initiate a transfer process with the provider. + +```bash +curl -X POST "${MANAGEMENT_URL}/v2/transferprocesses" \ + --header 'X-Api-Key: password' \ + --header 'Content-Type: application/json' \ + --data '{ + "@context": { + "@vocab": "https://w3id.org/edc/v0.0.1/ns/", + "odrl": "http://www.w3.org/ns/odrl/2/" + }, + "assetId": "asset-id", + "connectorAddress": "provider-dsp-url", + "contractId": "contract-agreement-id", + "dataDestination": { + "type": "HttpProxy" + }, + "managedResources": false, + "privateProperties": { + "receiverHttpEndpoint": "http://receiver/endpoint" + }, + "protocol": "dataspace-protocol-http" + }' \ + -s -o /dev/null -w 'Response Code: %{http_code}\n' +``` diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-controlplane/README.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-controlplane/README.md new file mode 100644 index 00000000000..3f59218d5d2 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-controlplane/README.md @@ -0,0 +1,53 @@ +# Control Plane + +The Eclipse Dataspace Connector consists of a **Control Plan** and a **Data Plane** Application. +While the **Data Plane** handles the actual Data Transfer, the **Control Plane** is responsible for: + +- Resource Management (e.g. Assets, Policies & Contract Definitions CRUD) +- Contract Offering & Contract Negotiation +- Data Transfer Coordination / Management + +The only API that is protected by some kind of security mechanism is the Data Management API. At the time of writing this is done by a simple API key. +The key value must be configured in `edc.api.auth.key`. All requests to the Data Management API must have `X-Api-Key` header with the key value. + +Example: + +```bash +curl -X GET --header "X-Api-Key: " +``` + +## Security + +### Confidential Settings + +Please be aware that there are several confidential settings, that should not be part of the actual EDC configuration file. + +Some of these confidential settings are + +- Vault credentials +- Data Management API key +- Database credentials + +As it is possible to configure EDC settings via environment variables, one way to do it would be via Kubernetes Secrets. For other deployment scenarios than Kubernetes equivalent measures should be taken. + +## Known Control Plane Issues + +Please have a look at the open issues in the open source repository. The list below might not be maintained well and +only contains the most important issues. +EDC GitHub Repository + +--- + +**Please note** that some of these issues might already be fixed on the EDC main branch, but are not part of the specific +EDC commit the Tractus-X-EDC uses. + +--- + +### Persistence + +- ContractDefinition-AssetSelector of InMemory Connector selects 50 Asset max.([issue](https://github.com/eclipse-edc/Connector/issues/1779)) + +### Other + +- Non-IDS-Transformable-ContractDefinition causes connector to be unable to send out self-descriptions/catalogs([issue](https://github.com/eclipse-edc/Connector/issues/1265)) + - **Workaround:** Delete non-transformable ContractDefinition or Policy. diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-controlplane/edc-controlplane-base/README.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-controlplane/edc-controlplane-base/README.md new file mode 100644 index 00000000000..269de27ca36 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-controlplane/edc-controlplane-base/README.md @@ -0,0 +1,7 @@ +# EDC Control-Plane Base Module + +## Building + +```shell +./gradlew edc-controlplane:edc-controlplane-base:build +``` diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-controlplane/edc-controlplane-memory-hashicorp-vault/notice.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-controlplane/edc-controlplane-memory-hashicorp-vault/notice.md new file mode 100644 index 00000000000..989bb709602 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-controlplane/edc-controlplane-memory-hashicorp-vault/notice.md @@ -0,0 +1,28 @@ +# Notice for Docker image + +An EDC Control Plane using memory-based storage, and HashiCorp Vault as secret store. + +DockerHub: + +Eclipse Tractus-X product(s) installed within the image: + +## Tractus-X-EDC Control Plane + +- GitHub: +- Project home: +- Dockerfile: +- Project license: [Apache License, Version 2.0](https://github.com/eclipse-tractusx/tractusx-edc/blob/main/LICENSE) + +## Used base image + +- [eclipse-temurin:17.0.6_10-jre-alpine](https://github.com/adoptium/containers) +- Official Eclipse Temurin DockerHub page: +- Eclipse Temurin Project: +- Additional information about the Eclipse Temurin + images: + +As with all Docker images, these likely also contain other software which may be under other licenses (such as Bash, etc +from the base distribution, along with any direct or indirect dependencies of the primary software being contained). + +As for any pre-built image usage, it is the image user's responsibility to ensure that any use of this image complies +with any relevant licenses for all software contained within. diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-controlplane/edc-controlplane-postgresql-azure-vault/README.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-controlplane/edc-controlplane-postgresql-azure-vault/README.md new file mode 100644 index 00000000000..cd8f605ef13 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-controlplane/edc-controlplane-postgresql-azure-vault/README.md @@ -0,0 +1,181 @@ +# EDC Control-Plane backed by Postgresql + +## Building + +```shell +./gradlew :edc-controlplane:edc-controlplane-postgresql-azure-vault:dockerize +``` + +## Configuration + +Listed below are configuration keys needed to get the `edc-controlplane-postgresql-azure-vault` up and running. +Details regarding each configuration property can be found at the [documentary section of the EDC](https://github.com/eclipse-edc/Connector/tree/main/docs). + +| Key | Required | Example | Description | +|--------------------------------------------------|----------|------------------------------------------------------------------------------|----------------------------| +| edc.api.auth.key | | password | default value: random UUID | +| web.http.default.port | X | 8080 | | +| web.http.default.path | X | /api | | +| web.http.data.port | X | 8181 | | +| web.http.data.path | X | | | +| web.http.validation.port | X | 8182 | | +| web.http.validation.path | X | /validation | | +| web.http.control.port | X | 9999 | | +| web.http.control.path | X | /api/controlplane/control | | +| web.http.ids.port | X | 8282 | | +| web.http.ids.path | X | /api/v1/ids | | +| edc.receiver.http.endpoint | X | | | +| edc.ids.title | | Eclipse Dataspace Connector | | +| edc.ids.description | | Eclipse Dataspace Connector | | +| edc.ids.id | | urn:connector:edc | | +| edc.ids.security.profile | | base | | +| edc.ids.endpoint | | | | +| edc.ids.maintainer | | | | +| edc.ids.curator | | | | +| edc.ids.catalog.id | | urn:catalog:default | | +| ids.webhook.address | | | | +| edc.hostname | | localhost | | +| edc.oauth.token.url | X | | | +| edc.oauth.public.key.alias | X | key-to-daps-certificate-in-keyvault | | +| edc.oauth.private.key.alias | X | key-to-private-key-in-keyvault | | +| edc.oauth.client.id | X | daps-oauth-client-id | | +| edc.vault.clientid | X | 00000000-1111-2222-3333-444444444444 | | +| edc.vault.tenantid | X | 55555555-6666-7777-8888-999999999999 | | +| edc.vault.name | X | my-vault-name | | +| edc.vault.clientsecret | X | 34-chars-secret | | +| edc.datasource.asset.name | X | asset | | +| edc.datasource.asset.url | X | jdbc:postgresql://postgres.svc.cluster.local:5432/edc_asset_db | | +| edc.datasource.asset.user | X | username | | +| edc.datasource.asset.password | X | password | | +| edc.datasource.contractdefinition.name | X | contractdefinition | | +| edc.datasource.contractdefinition.url | X | jdbc:postgresql://postgres.svc.cluster.local:5432/edc_contractdefinition_db | | +| edc.datasource.contractdefinition.user | X | username | | +| edc.datasource.contractdefinition.password | X | password | | +| edc.datasource.contractnegotiation.name | X | contractnegotiation | | +| edc.datasource.contractnegotiation.url | X | jdbc:postgresql://postgres.svc.cluster.local:5432/edc_contractnegotiation_db | | +| edc.datasource.contractnegotiation.user | X | username | | +| edc.datasource.contractnegotiation.password | X | password | | +| edc.datasource.policy.name | X | policy | | +| edc.datasource.policy.url | X | jdbc:postgresql://postgres.svc.cluster.local:5432/edc_policy_db | | +| edc.datasource.policy.user | X | username | | +| edc.datasource.policy.password | X | password | | +| edc.datasource.transferprocess.name | X | transferprocess | | +| edc.datasource.transferprocess.url | X | jdbc:postgresql://postgres.svc.cluster.local:5432/edc_transferprocess_db | | +| edc.datasource.transferprocess.user | X | username | | +| edc.datasource.transferprocess.password | X | password | | +| edc.transfer.proxy.endpoint | X | | | +| edc.transfer.proxy.token.signer.privatekey.alias | X | | | + +### Example configuration.properties + +JDK properties-style configuration of the EDC Control-Plane is expected to be mounted to `/app/configuration.properties` within the container. + +```shell +# Create configuration.properties +export CONFIGURATION_PROPERTIES_FILE=$(mktemp /tmp/configuration.properties.XXXXXX) +cat << 'EOF' > ${CONFIGURATION_PROPERTIES_FILE} + +web.http.default.port=8080 +web.http.default.path=/api +web.http.data.port=8181 +web.http.data.path=/data +web.http.validation.port=8182 +web.http.validation.path=/validation +web.http.control.port=9999 +web.http.control.path=/api/controlplane/control +web.http.ids.port=8282 +web.http.ids.path=/api/v1/ids + +edc.receiver.http.endpoint=http://backend-service + +edc.ids.title=Eclipse Dataspace Connector +edc.ids.description=Eclipse Dataspace Connector +edc.ids.id=urn:connector:edc +edc.ids.security.profile=base +edc.ids.endpoint=http://localhost:8282/api/v1/ids +edc.ids.maintainer=http://localhost +edc.ids.curator=http://localhost +edc.ids.catalog.id=urn:catalog:default +ids.webhook.address=http://localhost:8282/api/v1/ids + +edc.hostname=localhost + +edc.api.auth.key=password + +# OAuth / DAPS related configuration +edc.oauth.token.url=https://daps.example.net +edc.oauth.public.key.alias=key-to-daps-certificate-in-keyvault +edc.oauth.private.key.alias=key-to-private-key-in-keyvault +edc.oauth.client.id=daps-oauth-client-id + +# Azure vault related configuration +edc.vault.clientid=00000000-1111-2222-3333-444444444444 +edc.vault.tenantid=55555555-6666-7777-8888-999999999999 +edc.vault.name=my-vault-name +edc.vault.clientsecret=34-chars-secret + +# Control- / Data- Plane configuration +edc.transfer.proxy.endpoint=http://dataplane-public-endpoint/public +edc.transfer.proxy.token.signer.privatekey.alias=azure-vault-token-signer-private-key + +# Postgresql related configuration +edc.datasource.asset.name=asset +edc.datasource.asset.url=jdbc:postgresql://postgres.svc.cluster.local:5432/edc_asset +edc.datasource.asset.user=user +edc.datasource.asset.password=pass +edc.datasource.contractdefinition.name=contractdefinition +edc.datasource.contractdefinition.url=jdbc:postgresql://postgres.svc.cluster.local:5432/edc_contractdefinition +edc.datasource.contractdefinition.user=user +edc.datasource.contractdefinition.password=pass +edc.datasource.contractnegotiation.name=contractnegotiation +edc.datasource.contractnegotiation.url=jdbc:postgresql://postgres.svc.cluster.local:5432/edc_contractnegotiation +edc.datasource.contractnegotiation.user=user +edc.datasource.contractnegotiation.password=pass +edc.datasource.policy.name=policy +edc.datasource.policy.url=jdbc:postgresql://postgres.svc.cluster.local:5432/edc_policy +edc.datasource.policy.user=user +edc.datasource.policy.password=pass +edc.datasource.transferprocess.name=transferprocess +edc.datasource.transferprocess.url=jdbc:postgresql://postgres.svc.cluster.local:5432/edc_transferprocess +edc.datasource.transferprocess.user=user +edc.datasource.transferprocess.password=pass + +EOF +``` + +### Example logging.properties + +```shell +# Create logging.properties +export LOGGING_PROPERTIES_FILE=$(mktemp /tmp/logging.properties.XXXXXX) +cat << 'EOF' > ${LOGGING_PROPERTIES_FILE} +.level=INFO +org.eclipse.edc.level=ALL +handlers=java.util.logging.ConsoleHandler +java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter +java.util.logging.ConsoleHandler.level=ALL +java.util.logging.SimpleFormatter.format=[%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS] [%4$-7s] %5$s%6$s%n +EOF +``` + +### Example opentelemetry.properties + +```shell +# Create opentelemetry.properties +export OPENTELEMETRY_PROPERTIES_FILE=$(mktemp /tmp/opentelemetry.properties.XXXXXX) +cat << 'EOF' > ${OPENTELEMETRY_PROPERTIES_FILE} +otel.javaagent.enabled=true +otel.javaagent.debug=false +EOF +``` + +## Running + +```shell +docker run \ + -p 8080:8080 -p 8181:8181 -p 8182:8182 -p 8282:8282 -p 9090:9090 -p 9999:9999 \ + -v ${CONFIGURATION_PROPERTIES_FILE:-/dev/null}:/app/configuration.properties \ + -v ${LOGGING_PROPERTIES_FILE:-/dev/null}:/app/logging.properties \ + -v ${OPENTELEMETRY_PROPERTIES_FILE:-/dev/null}:/app/opentelemetry.properties \ + -i edc-controlplane-postgresql-azure-vault:latest +``` diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-controlplane/edc-controlplane-postgresql-azure-vault/notice.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-controlplane/edc-controlplane-postgresql-azure-vault/notice.md new file mode 100644 index 00000000000..7ada1443a75 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-controlplane/edc-controlplane-postgresql-azure-vault/notice.md @@ -0,0 +1,28 @@ +# Notice for Docker image + +An EDC Control Plane using PostgreSQL as persistence backend, and Azure KeyVault as secret store. + +DockerHub: + +Eclipse Tractus-X product(s) installed within the image: + +## Tractus-X EDC Control Plane + +- GitHub: +- Project home: +- Dockerfile: +- Project license: [Apache License, Version 2.0](https://github.com/eclipse-tractusx/tractusx-edc/blob/main/LICENSE) + +## Used base image + +- [eclipse-temurin:17.0.6_10-jre-alpine](https://github.com/adoptium/containers) +- Official Eclipse Temurin DockerHub page: +- Eclipse Temurin Project: +- Additional information about the Eclipse Temurin + images: + +As with all Docker images, these likely also contain other software which may be under other licenses (such as Bash, etc +from the base distribution, along with any direct or indirect dependencies of the primary software being contained). + +As for any pre-built image usage, it is the image user's responsibility to ensure that any use of this image complies +with any relevant licenses for all software contained within. diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-controlplane/edc-controlplane-postgresql-hashicorp-vault-legacy/README.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-controlplane/edc-controlplane-postgresql-hashicorp-vault-legacy/README.md new file mode 100644 index 00000000000..1617b9ba862 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-controlplane/edc-controlplane-postgresql-hashicorp-vault-legacy/README.md @@ -0,0 +1,178 @@ +# EDC Control-Plane backed by Postgresql and HashiCorp vault + +## Building + +```shell +./gardlew :edc-controlplane:edc-controlplane-postgresql-hashicorp-vault:dockerize +``` + +## Configuration + +Listed below are configuration keys needed to get the `edc-controlplane-postgresql-hashicorp-vault` up and running. +Details regarding each configuration property can be found at the [documentary section of the EDC](https://github.com/eclipse-edc/Connector/tree/main/docs). + +| Key | Required | Example | Description | +|--------------------------------------------------|----------|------------------------------------------------------------------------------|----------------------------| +| edc.api.auth.key | | password | default value: random UUID | +| web.http.default.port | X | 8080 | | +| web.http.default.path | X | /api | | +| web.http.data.port | X | 8181 | | +| web.http.data.path | X | /data | | +| web.http.validation.port | X | 8182 | | +| web.http.validation.path | X | /validation | | +| web.http.control.port | X | 9999 | | +| web.http.control.path | X | /api/controlplane/control | | +| web.http.ids.port | X | 8282 | | +| web.http.ids.path | X | /api/v1/ids | | +| edc.receiver.http.endpoint | X | | | +| edc.ids.title | | Eclipse Dataspace Connector | | +| edc.ids.description | | Eclipse Dataspace Connector | | +| edc.ids.id | | urn:connector:edc | | +| edc.ids.security.profile | | base | | +| edc.ids.endpoint | | | | +| edc.ids.maintainer | | | | +| edc.ids.curator | | | | +| edc.ids.catalog.id | | urn:catalog:default | | +| ids.webhook.address | | | | +| edc.hostname | | localhost | | +| edc.oauth.token.url | X | | | +| edc.oauth.public.key.alias | X | key-to-daps-certificate-in-keyvault | | +| edc.oauth.private.key.alias | X | key-to-private-key-in-keyvault | | +| edc.oauth.client.id | X | daps-oauth-client-id | | +| edc.vault.hashicorp.url | X | | | +| edc.vault.hashicorp.token | X | 55555555-6666-7777-8888-999999999999 | | +| edc.vault.hashicorp.timeout.seconds | | 30 | | +| edc.datasource.asset.name | X | asset | | +| edc.datasource.asset.url | X | jdbc:postgresql://postgres.svc.cluster.local:5432/edc_asset_db | | +| edc.datasource.asset.user | X | username | | +| edc.datasource.asset.password | X | password | | +| edc.datasource.contractdefinition.name | X | contractdefinition | | +| edc.datasource.contractdefinition.url | X | jdbc:postgresql://postgres.svc.cluster.local:5432/edc_contractdefinition_db | | +| edc.datasource.contractdefinition.user | X | username | | +| edc.datasource.contractdefinition.password | X | password | | +| edc.datasource.contractnegotiation.name | X | contractnegotiation | | +| edc.datasource.contractnegotiation.url | X | jdbc:postgresql://postgres.svc.cluster.local:5432/edc_contractnegotiation_db | | +| edc.datasource.contractnegotiation.user | X | username | | +| edc.datasource.contractnegotiation.password | X | password | | +| edc.datasource.policy.name | X | policy | | +| edc.datasource.policy.url | X | jdbc:postgresql://postgres.svc.cluster.local:5432/edc_policy_db | | +| edc.datasource.policy.user | X | username | | +| edc.datasource.policy.password | X | password | | +| edc.datasource.transferprocess.name | X | transferprocess | | +| edc.datasource.transferprocess.url | X | jdbc:postgresql://postgres.svc.cluster.local:5432/edc_transferprocess_db | | +| edc.datasource.transferprocess.user | X | username | | +| edc.datasource.transferprocess.password | X | password | | +| edc.transfer.proxy.endpoint | X | | | +| edc.transfer.proxy.token.signer.privatekey.alias | X | | | + +### Example configuration.properties + +JDK properties-style configuration of the EDC Control-Plane is expected to be mounted to `/app/configuration.properties` within the container. + +```shell +# Create configuration.properties +export CONFIGURATION_PROPERTIES_FILE=$(mktemp /tmp/configuration.properties.XXXXXX) +cat << 'EOF' > ${CONFIGURATION_PROPERTIES_FILE} + +web.http.default.port=8080 +web.http.default.path=/api +web.http.data.port=8181 +web.http.data.path=/data +web.http.validation.port=8182 +web.http.validation.path=/validation +web.http.control.port=9999 +web.http.control.path=/api/controlplane/control +web.http.ids.port=8282 +web.http.ids.path=/api/v1/ids + +edc.receiver.http.endpoint=http://backend-service + +edc.ids.title=Eclipse Dataspace Connector +edc.ids.description=Eclipse Dataspace Connector +edc.ids.id=urn:connector:edc +edc.ids.security.profile=base +edc.ids.endpoint=http://localhost:8282/api/v1/ids +edc.ids.maintainer=http://localhost +edc.ids.curator=http://localhost +edc.ids.catalog.id=urn:catalog:default +ids.webhook.address=http://localhost:8282/api/v1/ids + +edc.hostname=localhost + +edc.api.auth.key=password + +# OAuth / DAPS related configuration +edc.oauth.token.url=https://daps.example.net +edc.oauth.public.key.alias=key-to-daps-certificate-in-keyvault +edc.oauth.private.key.alias=key-to-private-key-in-keyvault +edc.oauth.client.id=daps-oauth-client-id + +# HashiCorp vault related configuration +edc.vault.hashicorp.url=http://vault +edc.vault.hashicorp.token=55555555-6666-7777-8888-999999999999 +edc.vault.hashicorp.timeout.seconds=30 + +# Control- / Data- Plane configuration +edc.transfer.proxy.endpoint=http://dataplane-public-endpoint/public +edc.transfer.proxy.token.signer.privatekey.alias=token-signer-private-key + +# Postgresql related configuration +edc.datasource.asset.name=asset +edc.datasource.asset.url=jdbc:postgresql://postgres.svc.cluster.local:5432/edc_asset +edc.datasource.asset.user=user +edc.datasource.asset.password=pass +edc.datasource.contractdefinition.name=contractdefinition +edc.datasource.contractdefinition.url=jdbc:postgresql://postgres.svc.cluster.local:5432/edc_contractdefinition +edc.datasource.contractdefinition.user=user +edc.datasource.contractdefinition.password=pass +edc.datasource.contractnegotiation.name=contractnegotiation +edc.datasource.contractnegotiation.url=jdbc:postgresql://postgres.svc.cluster.local:5432/edc_contractnegotiation +edc.datasource.contractnegotiation.user=user +edc.datasource.contractnegotiation.password=pass +edc.datasource.policy.name=policy +edc.datasource.policy.url=jdbc:postgresql://postgres.svc.cluster.local:5432/edc_policy +edc.datasource.policy.user=user +edc.datasource.policy.password=pass +edc.datasource.transferprocess.name=transferprocess +edc.datasource.transferprocess.url=jdbc:postgresql://postgres.svc.cluster.local:5432/edc_transferprocess +edc.datasource.transferprocess.user=user +edc.datasource.transferprocess.password=pass +EOF +``` + +### Example logging.properties + +```shell +# Create logging.properties +export LOGGING_PROPERTIES_FILE=$(mktemp /tmp/logging.properties.XXXXXX) +cat << 'EOF' > ${LOGGING_PROPERTIES_FILE} +.level=INFO +org.eclipse.edc.level=ALL +handlers=java.util.logging.ConsoleHandler +java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter +java.util.logging.ConsoleHandler.level=ALL +java.util.logging.SimpleFormatter.format=[%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS] [%4$-7s] %5$s%6$s%n +EOF +``` + +### Example opentelemetry.properties + +```shell +# Create opentelemetry.properties +export OPENTELEMETRY_PROPERTIES_FILE=$(mktemp /tmp/opentelemetry.properties.XXXXXX) +cat << 'EOF' > ${OPENTELEMETRY_PROPERTIES_FILE} +otel.javaagent.enabled=false +otel.javaagent.debug=false +EOF +``` + +## Running + +```shell +docker run \ + -p 8080:8080 -p 8181:8181 -p 8182:8182 -p 8282:8282 -p 9090:9090 -p 9999:9999 \ + -v ${CONFIGURATION_PROPERTIES_FILE:-/dev/null}:/app/configuration.properties \ + -v ${LOGGING_PROPERTIES_FILE:-/dev/null}:/app/logging.properties \ + -v ${OPENTELEMETRY_PROPERTIES_FILE:-/dev/null}:/app/opentelemetry.properties \ + -i edc-controlplane-postgresql-hashicorp-vault:latest +``` diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-controlplane/edc-controlplane-postgresql-hashicorp-vault-legacy/notice.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-controlplane/edc-controlplane-postgresql-hashicorp-vault-legacy/notice.md new file mode 100644 index 00000000000..f8b66e8c2cc --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-controlplane/edc-controlplane-postgresql-hashicorp-vault-legacy/notice.md @@ -0,0 +1,28 @@ +# Notice for Docker image + +An EDC Control Plane using PostgreSQL as persistence backend, and HashiCorp Vault as secret store. + +DockerHub: + +Eclipse Tractus-X product(s) installed within the image: + +## Tractus-X EDC Control Plane + +- GitHub: +- Project home: +- Dockerfile: +- Project license: [Apache License, Version 2.0](https://github.com/eclipse-tractusx/tractusx-edc/blob/main/LICENSE) + +## Used base image + +- [eclipse-temurin:17.0.6_10-jre-alpine](https://github.com/adoptium/containers) +- Official Eclipse Temurin DockerHub page: +- Eclipse Temurin Project: +- Additional information about the Eclipse Temurin + images: + +As with all Docker images, these likely also contain other software which may be under other licenses (such as Bash, etc +from the base distribution, along with any direct or indirect dependencies of the primary software being contained). + +As for any pre-built image usage, it is the image user's responsibility to ensure that any use of this image complies +with any relevant licenses for all software contained within. diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-controlplane/edc-controlplane-postgresql-hashicorp-vault/README.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-controlplane/edc-controlplane-postgresql-hashicorp-vault/README.md new file mode 100644 index 00000000000..1617b9ba862 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-controlplane/edc-controlplane-postgresql-hashicorp-vault/README.md @@ -0,0 +1,178 @@ +# EDC Control-Plane backed by Postgresql and HashiCorp vault + +## Building + +```shell +./gardlew :edc-controlplane:edc-controlplane-postgresql-hashicorp-vault:dockerize +``` + +## Configuration + +Listed below are configuration keys needed to get the `edc-controlplane-postgresql-hashicorp-vault` up and running. +Details regarding each configuration property can be found at the [documentary section of the EDC](https://github.com/eclipse-edc/Connector/tree/main/docs). + +| Key | Required | Example | Description | +|--------------------------------------------------|----------|------------------------------------------------------------------------------|----------------------------| +| edc.api.auth.key | | password | default value: random UUID | +| web.http.default.port | X | 8080 | | +| web.http.default.path | X | /api | | +| web.http.data.port | X | 8181 | | +| web.http.data.path | X | /data | | +| web.http.validation.port | X | 8182 | | +| web.http.validation.path | X | /validation | | +| web.http.control.port | X | 9999 | | +| web.http.control.path | X | /api/controlplane/control | | +| web.http.ids.port | X | 8282 | | +| web.http.ids.path | X | /api/v1/ids | | +| edc.receiver.http.endpoint | X | | | +| edc.ids.title | | Eclipse Dataspace Connector | | +| edc.ids.description | | Eclipse Dataspace Connector | | +| edc.ids.id | | urn:connector:edc | | +| edc.ids.security.profile | | base | | +| edc.ids.endpoint | | | | +| edc.ids.maintainer | | | | +| edc.ids.curator | | | | +| edc.ids.catalog.id | | urn:catalog:default | | +| ids.webhook.address | | | | +| edc.hostname | | localhost | | +| edc.oauth.token.url | X | | | +| edc.oauth.public.key.alias | X | key-to-daps-certificate-in-keyvault | | +| edc.oauth.private.key.alias | X | key-to-private-key-in-keyvault | | +| edc.oauth.client.id | X | daps-oauth-client-id | | +| edc.vault.hashicorp.url | X | | | +| edc.vault.hashicorp.token | X | 55555555-6666-7777-8888-999999999999 | | +| edc.vault.hashicorp.timeout.seconds | | 30 | | +| edc.datasource.asset.name | X | asset | | +| edc.datasource.asset.url | X | jdbc:postgresql://postgres.svc.cluster.local:5432/edc_asset_db | | +| edc.datasource.asset.user | X | username | | +| edc.datasource.asset.password | X | password | | +| edc.datasource.contractdefinition.name | X | contractdefinition | | +| edc.datasource.contractdefinition.url | X | jdbc:postgresql://postgres.svc.cluster.local:5432/edc_contractdefinition_db | | +| edc.datasource.contractdefinition.user | X | username | | +| edc.datasource.contractdefinition.password | X | password | | +| edc.datasource.contractnegotiation.name | X | contractnegotiation | | +| edc.datasource.contractnegotiation.url | X | jdbc:postgresql://postgres.svc.cluster.local:5432/edc_contractnegotiation_db | | +| edc.datasource.contractnegotiation.user | X | username | | +| edc.datasource.contractnegotiation.password | X | password | | +| edc.datasource.policy.name | X | policy | | +| edc.datasource.policy.url | X | jdbc:postgresql://postgres.svc.cluster.local:5432/edc_policy_db | | +| edc.datasource.policy.user | X | username | | +| edc.datasource.policy.password | X | password | | +| edc.datasource.transferprocess.name | X | transferprocess | | +| edc.datasource.transferprocess.url | X | jdbc:postgresql://postgres.svc.cluster.local:5432/edc_transferprocess_db | | +| edc.datasource.transferprocess.user | X | username | | +| edc.datasource.transferprocess.password | X | password | | +| edc.transfer.proxy.endpoint | X | | | +| edc.transfer.proxy.token.signer.privatekey.alias | X | | | + +### Example configuration.properties + +JDK properties-style configuration of the EDC Control-Plane is expected to be mounted to `/app/configuration.properties` within the container. + +```shell +# Create configuration.properties +export CONFIGURATION_PROPERTIES_FILE=$(mktemp /tmp/configuration.properties.XXXXXX) +cat << 'EOF' > ${CONFIGURATION_PROPERTIES_FILE} + +web.http.default.port=8080 +web.http.default.path=/api +web.http.data.port=8181 +web.http.data.path=/data +web.http.validation.port=8182 +web.http.validation.path=/validation +web.http.control.port=9999 +web.http.control.path=/api/controlplane/control +web.http.ids.port=8282 +web.http.ids.path=/api/v1/ids + +edc.receiver.http.endpoint=http://backend-service + +edc.ids.title=Eclipse Dataspace Connector +edc.ids.description=Eclipse Dataspace Connector +edc.ids.id=urn:connector:edc +edc.ids.security.profile=base +edc.ids.endpoint=http://localhost:8282/api/v1/ids +edc.ids.maintainer=http://localhost +edc.ids.curator=http://localhost +edc.ids.catalog.id=urn:catalog:default +ids.webhook.address=http://localhost:8282/api/v1/ids + +edc.hostname=localhost + +edc.api.auth.key=password + +# OAuth / DAPS related configuration +edc.oauth.token.url=https://daps.example.net +edc.oauth.public.key.alias=key-to-daps-certificate-in-keyvault +edc.oauth.private.key.alias=key-to-private-key-in-keyvault +edc.oauth.client.id=daps-oauth-client-id + +# HashiCorp vault related configuration +edc.vault.hashicorp.url=http://vault +edc.vault.hashicorp.token=55555555-6666-7777-8888-999999999999 +edc.vault.hashicorp.timeout.seconds=30 + +# Control- / Data- Plane configuration +edc.transfer.proxy.endpoint=http://dataplane-public-endpoint/public +edc.transfer.proxy.token.signer.privatekey.alias=token-signer-private-key + +# Postgresql related configuration +edc.datasource.asset.name=asset +edc.datasource.asset.url=jdbc:postgresql://postgres.svc.cluster.local:5432/edc_asset +edc.datasource.asset.user=user +edc.datasource.asset.password=pass +edc.datasource.contractdefinition.name=contractdefinition +edc.datasource.contractdefinition.url=jdbc:postgresql://postgres.svc.cluster.local:5432/edc_contractdefinition +edc.datasource.contractdefinition.user=user +edc.datasource.contractdefinition.password=pass +edc.datasource.contractnegotiation.name=contractnegotiation +edc.datasource.contractnegotiation.url=jdbc:postgresql://postgres.svc.cluster.local:5432/edc_contractnegotiation +edc.datasource.contractnegotiation.user=user +edc.datasource.contractnegotiation.password=pass +edc.datasource.policy.name=policy +edc.datasource.policy.url=jdbc:postgresql://postgres.svc.cluster.local:5432/edc_policy +edc.datasource.policy.user=user +edc.datasource.policy.password=pass +edc.datasource.transferprocess.name=transferprocess +edc.datasource.transferprocess.url=jdbc:postgresql://postgres.svc.cluster.local:5432/edc_transferprocess +edc.datasource.transferprocess.user=user +edc.datasource.transferprocess.password=pass +EOF +``` + +### Example logging.properties + +```shell +# Create logging.properties +export LOGGING_PROPERTIES_FILE=$(mktemp /tmp/logging.properties.XXXXXX) +cat << 'EOF' > ${LOGGING_PROPERTIES_FILE} +.level=INFO +org.eclipse.edc.level=ALL +handlers=java.util.logging.ConsoleHandler +java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter +java.util.logging.ConsoleHandler.level=ALL +java.util.logging.SimpleFormatter.format=[%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS] [%4$-7s] %5$s%6$s%n +EOF +``` + +### Example opentelemetry.properties + +```shell +# Create opentelemetry.properties +export OPENTELEMETRY_PROPERTIES_FILE=$(mktemp /tmp/opentelemetry.properties.XXXXXX) +cat << 'EOF' > ${OPENTELEMETRY_PROPERTIES_FILE} +otel.javaagent.enabled=false +otel.javaagent.debug=false +EOF +``` + +## Running + +```shell +docker run \ + -p 8080:8080 -p 8181:8181 -p 8182:8182 -p 8282:8282 -p 9090:9090 -p 9999:9999 \ + -v ${CONFIGURATION_PROPERTIES_FILE:-/dev/null}:/app/configuration.properties \ + -v ${LOGGING_PROPERTIES_FILE:-/dev/null}:/app/logging.properties \ + -v ${OPENTELEMETRY_PROPERTIES_FILE:-/dev/null}:/app/opentelemetry.properties \ + -i edc-controlplane-postgresql-hashicorp-vault:latest +``` diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-controlplane/edc-controlplane-postgresql-hashicorp-vault/notice.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-controlplane/edc-controlplane-postgresql-hashicorp-vault/notice.md new file mode 100644 index 00000000000..f8b66e8c2cc --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-controlplane/edc-controlplane-postgresql-hashicorp-vault/notice.md @@ -0,0 +1,28 @@ +# Notice for Docker image + +An EDC Control Plane using PostgreSQL as persistence backend, and HashiCorp Vault as secret store. + +DockerHub: + +Eclipse Tractus-X product(s) installed within the image: + +## Tractus-X EDC Control Plane + +- GitHub: +- Project home: +- Dockerfile: +- Project license: [Apache License, Version 2.0](https://github.com/eclipse-tractusx/tractusx-edc/blob/main/LICENSE) + +## Used base image + +- [eclipse-temurin:17.0.6_10-jre-alpine](https://github.com/adoptium/containers) +- Official Eclipse Temurin DockerHub page: +- Eclipse Temurin Project: +- Additional information about the Eclipse Temurin + images: + +As with all Docker images, these likely also contain other software which may be under other licenses (such as Bash, etc +from the base distribution, along with any direct or indirect dependencies of the primary software being contained). + +As for any pre-built image usage, it is the image user's responsibility to ensure that any use of this image complies +with any relevant licenses for all software contained within. diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-controlplane/edc-runtime-memory/README.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-controlplane/edc-runtime-memory/README.md new file mode 100644 index 00000000000..150a8f680e0 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-controlplane/edc-runtime-memory/README.md @@ -0,0 +1,131 @@ +# EDC Control-Plane backed by In-Memory Stores + +## Security + +### In-memory Vault implementation + +The goal of this extension is to provide an ephemeral, memory-based vault implementation that can be used in testing or +demo scenarios. + +Please not that this vault does not encrypt the secrets, they are held in memory in plain text at runtime! In addition, +its ephemeral nature makes it unsuitable for replicated/multi-instance scenarios, i.e. Kubernetes. + +> It is not a secure secret store, please do NOT use it in production workloads! + +## Building + +```shell +./gradlew :edc-controlplane:edc-runtime-memory:dockerize +``` + +## Configuration (configuration.properties) + +Listed below are configuration keys needed to get the `edc-runtime-memory` up and running. +Details regarding each configuration property can be found at +the [documentary section of the EDC](https://github.com/eclipse-edc/Connector/tree/main/docs). + +| Key | Required | Example | Description | +|--------------------------------------------------|----------|-------------------------------------|----------------------------| +| edc.api.auth.key | | password | default value: random UUID | +| web.http.default.port | X | 8080 | | +| web.http.default.path | X | /api | | +| web.http.data.port | X | 8181 | | +| web.http.data.path | X | /data | | +| web.http.validation.port | X | 8182 | | +| web.http.validation.path | X | /validation | | +| web.http.control.port | X | 9999 | | +| web.http.control.path | X | /api/controlplane/control | | +| web.http.ids.port | X | 8282 | | +| web.http.ids.path | X | /api/v1/ids | | +| edc.receiver.http.endpoint | X | | | +| edc.ids.title | | Eclipse Dataspace Connector | | +| edc.ids.description | | Eclipse Dataspace Connector | | +| edc.ids.id | | urn:connector:edc | | +| edc.ids.security.profile | | base | | +| edc.ids.endpoint | | | | +| edc.ids.maintainer | | | | +| edc.ids.curator | | | | +| edc.ids.catalog.id | | urn:catalog:default | | +| ids.webhook.address | | | | +| edc.hostname | | localhost | | +| edc.oauth.token.url | X | | | +| edc.oauth.public.key.alias | X | key-to-daps-certificate-in-keyvault | | +| edc.oauth.private.key.alias | X | key-to-private-key-in-keyvault | | +| edc.oauth.client.id | X | daps-oauth-client-id | | +| edc.transfer.proxy.endpoint | X | | | +| edc.transfer.proxy.token.signer.privatekey.alias | X | | | + +### Example configuration.properties + +JDK properties-style configuration of the EDC Control-Plane is expected to be mounted to `/app/configuration.properties` +within the container. + +```shell +# Create configuration.properties +export CONFIGURATION_PROPERTIES_FILE=$(mktemp /tmp/configuration.properties.XXXXXX) +cat << 'EOF' > ${CONFIGURATION_PROPERTIES_FILE} + +web.http.default.port=8080 +web.http.default.path=/api +web.http.data.port=8181 +web.http.data.path=/data +web.http.validation.port=8182 +web.http.validation.path=/validation +web.http.control.port=9999 +web.http.control.path=/api/controlplane/control +web.http.ids.port=8282 +web.http.ids.path=/api/v1/ids + +edc.receiver.http.endpoint=http://backend-service + +edc.ids.title=Eclipse Dataspace Connector +edc.ids.description=Eclipse Dataspace Connector +edc.ids.id=urn:connector:edc +edc.ids.security.profile=base +edc.ids.endpoint=http://localhost:8282/api/v1/ids +edc.ids.maintainer=http://localhost +edc.ids.curator=http://localhost +edc.ids.catalog.id=urn:catalog:default +ids.webhook.address=http://localhost:8282/api/v1/ids + +edc.hostname=localhost + +edc.api.auth.key=password + +# OAuth / DAPS related configuration +edc.oauth.token.url=https://daps.example.net +edc.oauth.public.key.alias=key-to-daps-certificate-in-keyvault +edc.oauth.private.key.alias=key-to-private-key-in-keyvault +edc.oauth.client.id=daps-oauth-client-id + +# Control- / Data- Plane configuration +edc.transfer.proxy.endpoint=http://dataplane-public-endpoint/public +edc.transfer.proxy.token.signer.privatekey.alias=azure-vault-token-signer-private-key +EOF +``` + +### Example logging.properties + +```shell +# Create logging.properties +export LOGGING_PROPERTIES_FILE=$(mktemp /tmp/logging.properties.XXXXXX) +cat << 'EOF' > ${LOGGING_PROPERTIES_FILE} +.level=INFO +org.eclipse.edc.level=ALL +handlers=java.util.logging.ConsoleHandler +java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter +java.util.logging.ConsoleHandler.level=ALL +java.util.logging.SimpleFormatter.format=[%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS] [%4$-7s] %5$s%6$s%n +EOF +``` + +## Running + +```shell +docker run \ + -e SECRETS="key1:secret1,key2:secret2" \ + -p 8080:8080 -p 8181:8181 -p 8182:8182 -p 8282:8282 -p 9090:9090 -p 9999:9999 \ + -v ${CONFIGURATION_PROPERTIES_FILE:-/dev/null}:/app/configuration.properties \ + -v ${LOGGING_PROPERTIES_FILE:-/dev/null}:/app/logging.properties \ + -i edc-runtime-memory:latest +``` diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-controlplane/edc-runtime-memory/notice.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-controlplane/edc-runtime-memory/notice.md new file mode 100644 index 00000000000..fbe4a0acd75 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-controlplane/edc-runtime-memory/notice.md @@ -0,0 +1,28 @@ +# Notice for Docker image + +An EDC Control Plane using memory-based storage, and Azure KeyVault as secret store. + +DockerHub: + +Eclipse Tractus-X product(s) installed within the image: + +## Tractus-X EDC Control Plane + +- GitHub: +- Project home: +- Dockerfile: +- Project license: [Apache License, Version 2.0](https://github.com/eclipse-tractusx/tractusx-edc/blob/main/LICENSE) + +## Used base image + +- [eclipse-temurin:17.0.6_10-jre-alpine](https://github.com/adoptium/containers) +- Official Eclipse Temurin DockerHub page: +- Eclipse Temurin Project: +- Additional information about the Eclipse Temurin + images: + +As with all Docker images, these likely also contain other software which may be under other licenses (such as Bash, etc +from the base distribution, along with any direct or indirect dependencies of the primary software being contained). + +As for any pre-built image usage, it is the image user's responsibility to ensure that any use of this image complies +with any relevant licenses for all software contained within. diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-dataplane/README.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-dataplane/README.md new file mode 100644 index 00000000000..9ca28b38d8f --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-dataplane/README.md @@ -0,0 +1,16 @@ +# Data Plane + +The Eclipse Dataspace Connector consists of a **Control Plan** and a **Data Plane** Application. +While the **Control Plane** managing several data transfers, the **Data Plane** is responsible for doing the actual transfer. Like this data is never routed through the control plane itself und must always pass the data plane. + +## Security + +### Confidential Settings + +Please be aware that there are several confidential settings, that should not be part of the actual EDC configuration file (e.g. the Vault credentials). + +As it is possible to configure EDC settings via environment variables, one way to do it would be via Kubernetes Secrets. For other deployment scenarios than Kubernetes equivalent measures should be taken. + +## Known Data Plane Issues + +Please have a look at the open issues in the open source repository: [EDC Github Repository](https://github.com/eclipse-edc/Connector/issues) diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-dataplane/edc-dataplane-azure-vault/README.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-dataplane/edc-dataplane-azure-vault/README.md new file mode 100644 index 00000000000..c493b9a5209 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-dataplane/edc-dataplane-azure-vault/README.md @@ -0,0 +1,96 @@ +# EDC Data-Plane with Azure Key Vault + +## Building + +```shell +./gardlew :edc-dataplane:edc-dataplane-azure-vault:dockerize +``` + +## Configuration + +Listed below are configuration keys needed to get the `edc-dataplane-azure-vault` up and running. +Details regarding each configuration property can be found at the [documentary section of the EDC](https://github.com/eclipse-edc/Connector/tree/main/docs). + +| Key | Required | Example | Description | +|-----------------------------------------|----------|---------------------------------------------|-------------| +| web.http.default.port | X | 8080 | | +| web.http.default.path | X | /api | | +| web.http.public.port | X | 8181 | | +| web.http.public.path | X | | | +| web.http.control.port | X | 9999 | | +| web.http.control.path | X | /api/controlplane/control | | +| edc.receiver.http.endpoint | X | | | +| edc.hostname | | localhost | | +| edc.oauth.client.id | X | daps-oauth-client-id | | +| edc.vault.clientid | X | 00000000-1111-2222-3333-444444444444 | | +| edc.vault.tenantid | X | 55555555-6666-7777-8888-999999999999 | | +| edc.vault.name | X | my-vault-name | | +| edc.vault.clientsecret | X | 34-chars-secret | | +| edc.dataplane.token.validation.endpoint | X | | | + +### Example configuration.properties + +JDK properties-style configuration of the EDC Control-Plane is expected to be mounted to `/app/configuration.properties` within the container. + +```shell +# Create configuration.properties +export CONFIGURATION_PROPERTIES_FILE=$(mktemp /tmp/configuration.properties.XXXXXX) +cat << 'EOF' > ${CONFIGURATION_PROPERTIES_FILE} + +web.http.default.port=8080 +web.http.default.path=/api +web.http.public.port=8185 +web.http.public.path=/public +web.http.control.port=9999 +web.http.control.path=/api/dataplane/control + +# Validation endpoint of controlplane +edc.dataplane.token.validation.endpoint=http://controlplane:8182/validation/token + +# EDC hostname +edc.hostname=localhost + +# Azure vault related configuration +edc.vault.clientid=00000000-1111-2222-3333-444444444444 +edc.vault.tenantid=55555555-6666-7777-8888-999999999999 +edc.vault.name=my-vault-name +edc.vault.clientsecret=34-chars-secret +EOF +``` + +### Example logging.properties + +```shell +# Create logging.properties +export LOGGING_PROPERTIES_FILE=$(mktemp /tmp/logging.properties.XXXXXX) +cat << 'EOF' > ${LOGGING_PROPERTIES_FILE} +.level=INFO +org.eclipse.edc.level=ALL +handlers=java.util.logging.ConsoleHandler +java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter +java.util.logging.ConsoleHandler.level=ALL +java.util.logging.SimpleFormatter.format=[%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS] [%4$-7s] %5$s%6$s%n +EOF +``` + +### Example opentelemetry.properties + +```shell +# Create opentelemetry.properties +export OPENTELEMETRY_PROPERTIES_FILE=$(mktemp /tmp/opentelemetry.properties.XXXXXX) +cat << 'EOF' > ${OPENTELEMETRY_PROPERTIES_FILE} +otel.javaagent.enabled=true +otel.javaagent.debug=false +EOF +``` + +## Running + +```shell +docker run \ + -p 8080:8080 -p 8185:8185 -p 9999:9999 -p 9090:9090 \ + -v ${CONFIGURATION_PROPERTIES_FILE:-/dev/null}:/app/configuration.properties \ + -v ${LOGGING_PROPERTIES_FILE:-/dev/null}:/app/logging.properties \ + -v ${OPENTELEMETRY_PROPERTIES_FILE:-/dev/null}:/app/opentelemetry.properties \ + -i edc-dataplane-azure-vault:latest +``` diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-dataplane/edc-dataplane-azure-vault/notice.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-dataplane/edc-dataplane-azure-vault/notice.md new file mode 100644 index 00000000000..b318440295b --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-dataplane/edc-dataplane-azure-vault/notice.md @@ -0,0 +1,28 @@ +# Notice for Docker image + +An EDC Data Plane using the Azure KeyVault. + +DockerHub: + +Eclipse Tractus-X product(s) installed within the image: + +## Tractus-X EDC Data Plane + +- GitHub: +- Project home: +- Dockerfile: +- Project license: [Apache License, Version 2.0](https://github.com/eclipse-tractusx/tractusx-edc/blob/main/LICENSE) + +## Used base image + +- [eclipse-temurin:17.0.6_10-jre-alpine](https://github.com/adoptium/containers) +- Official Eclipse Temurin DockerHub page: +- Eclipse Temurin Project: +- Additional information about the Eclipse Temurin + images: + +As with all Docker images, these likely also contain other software which may be under other licenses (such as Bash, etc +from the base distribution, along with any direct or indirect dependencies of the primary software being contained). + +As for any pre-built image usage, it is the image user's responsibility to ensure that any use of this image complies +with any relevant licenses for all software contained within. diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-dataplane/edc-dataplane-base/README.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-dataplane/edc-dataplane-base/README.md new file mode 100644 index 00000000000..89ec915067b --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-dataplane/edc-dataplane-base/README.md @@ -0,0 +1,7 @@ +# EDC Data-Plane Base Module + +## Building + +```shell +./gardlew :edc-dataplane:edc-dataplane-base:build +``` diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-dataplane/edc-dataplane-hashicorp-vault/README.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-dataplane/edc-dataplane-hashicorp-vault/README.md new file mode 100644 index 00000000000..aeac639468e --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-dataplane/edc-dataplane-hashicorp-vault/README.md @@ -0,0 +1,94 @@ +# EDC Data-Plane Hashicorp Vault + +## Building + +```shell +./gardlew :edc-dataplane:edc-dataplane-hashicorp-vault:dockerize +``` + +## Configuration + +Listed below are configuration keys needed to get the `edc-dataplane-hashicorp-vault` up and running. +Details regarding each configuration property can be found at the [documentary section of the EDC](https://github.com/eclipse-edc/Connector/tree/main/docs). + +| Key | Required | Example | Description | +|-----------------------------------------|----------|---------------------------------------------|-------------| +| web.http.default.port | X | 8080 | | +| web.http.default.path | X | /api | | +| web.http.public.port | X | 8181 | | +| web.http.public.path | X | | | +| web.http.control.port | X | 9999 | | +| web.http.control.path | X | /api/controlplane/control | | +| edc.receiver.http.endpoint | X | | | +| edc.hostname | | localhost | | +| edc.oauth.client.id | X | daps-oauth-client-id | | +| edc.vault.hashicorp.url | X | | | +| edc.vault.hashicorp.token | X | 55555555-6666-7777-8888-999999999999 | | +| edc.vault.hashicorp.timeout.seconds | | 30 | | +| edc.dataplane.token.validation.endpoint | X | | | + +### Example configuration.properties + +JDK properties-style configuration of the EDC Control-Plane is expected to be mounted to `/app/configuration.properties` within the container. + +```shell +# Create configuration.properties +export CONFIGURATION_PROPERTIES_FILE=$(mktemp /tmp/configuration.properties.XXXXXX) +cat << 'EOF' > ${CONFIGURATION_PROPERTIES_FILE} + +web.http.default.port=8080 +web.http.default.path=/api +web.http.public.port=8185 +web.http.public.path=/public +web.http.control.port=9999 +web.http.control.path=/api/dataplane/control + +# Validation endpoint of controlplane +edc.dataplane.token.validation.endpoint=http://controlplane:8182/validation/token + +# EDC hostname +edc.hostname=localhost + +# HashiCorp vault related configuration +edc.vault.hashicorp.url=http://vault +edc.vault.hashicorp.token=55555555-6666-7777-8888-999999999999 +edc.vault.hashicorp.timeout.seconds=30 +EOF +``` + +### Example logging.properties + +```shell +# Create logging.properties +export LOGGING_PROPERTIES_FILE=$(mktemp /tmp/logging.properties.XXXXXX) +cat << 'EOF' > ${LOGGING_PROPERTIES_FILE} +.level=INFO +org.eclipse.edc.level=ALL +handlers=java.util.logging.ConsoleHandler +java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter +java.util.logging.ConsoleHandler.level=ALL +java.util.logging.SimpleFormatter.format=[%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS] [%4$-7s] %5$s%6$s%n +EOF +``` + +### Example opentelemetry.properties + +```shell +# Create opentelemetry.properties +export OPENTELEMETRY_PROPERTIES_FILE=$(mktemp /tmp/opentelemetry.properties.XXXXXX) +cat << 'EOF' > ${OPENTELEMETRY_PROPERTIES_FILE} +otel.javaagent.enabled=true +otel.javaagent.debug=false +EOF +``` + +## Running + +```shell +docker run \ + -p 8080:8080 -p 8185:8185 -p 9999:9999 -p 9090:9090 \ + -v ${CONFIGURATION_PROPERTIES_FILE:-/dev/null}:/app/configuration.properties \ + -v ${LOGGING_PROPERTIES_FILE:-/dev/null}:/app/logging.properties \ + -v ${OPENTELEMETRY_PROPERTIES_FILE:-/dev/null}:/app/opentelemetry.properties \ + -i edc-dataplane-hashicorp-vault:latest +``` diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-dataplane/edc-dataplane-hashicorp-vault/notice.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-dataplane/edc-dataplane-hashicorp-vault/notice.md new file mode 100644 index 00000000000..667042ed4b3 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-dataplane/edc-dataplane-hashicorp-vault/notice.md @@ -0,0 +1,28 @@ +# Notice for Docker image + +An EDC Data Plane using the HashiCorp Vault + +DockerHub: + +Eclipse Tractus-X product(s) installed within the image: + +## Tractus-X-EDC Data Plane + +- GitHub: +- Project home: +- Dockerfile: +- Project license: [Apache License, Version 2.0](https://github.com/eclipse-tractusx/tractusx-edc/blob/main/LICENSE) + +## Used base image + +- [eclipse-temurin:17.0.6_10-jre-alpine](https://github.com/adoptium/containers) +- Official Eclipse Temurin DockerHub page: +- Eclipse Temurin Project: +- Additional information about the Eclipse Temurin + images: + +As with all Docker images, these likely also contain other software which may be under other licenses (such as Bash, etc +from the base distribution, along with any direct or indirect dependencies of the primary software being contained). + +As for any pre-built image usage, it is the image user's responsibility to ensure that any use of this image complies +with any relevant licenses for all software contained within. diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-extensions/business-partner-validation/README.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-extensions/business-partner-validation/README.md new file mode 100644 index 00000000000..339417771c2 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-extensions/business-partner-validation/README.md @@ -0,0 +1,189 @@ +# Business Partner Validation Extension + +Using the Business Partner Validation Extension it's possible to add configurable validation against +BPNs in the `ContractDefinition.AccessPolicy`. Using a BPN in `ContractDefinition.ContractPolicy` is possible, too, but once the contract is complete there is no policy enforcement in place from the EDC. + +It is recommended to have a basic understanding of the EDC contract/policy domain before using this extension. The +corresponding documentation can be found in the [EDC GitHub Repository](https://github.com/eclipse-edc/Connector). + +The business partner number of another connector is part of its DAPS token. Once a BPN constraint is used in an access +policy the connector checks the token before sending out contract offers. + +Example of business partner constraint: + +```json +{ + "leftExpression": { + "value": "BusinessPartner" + }, + "rightExpression": { + "value": "BPNLCDQ90000X42KU" + }, + "operator": "EQ" +} +``` + +The `leftExpression` must always contain 'BusinessPartner', so that the policy functions of this extension are invoked. +Additionally, the only `operator` that is supported by these policy functions is 'EQ'. Finally, the `rightExpression` +must contain the Business Partner Number. + +## Single BusinessPartnerNumber example + +The most simple BPN policy would allow the usage of certain data to a single Business Partner. An example `Policy` is +shown below. In this example the `edctype` properties are added, so that this policy may even be sent to the Management API. + +```json +{ + "uid": "", + "prohibitions": [], + "obligations": [], + "permissions": [ + { + "edctype": "dataspaceconnector:permission", + "action": { + "type": "USE" + }, + "constraints": [ + { + "edctype": "AtomicConstraint", + "leftExpression": { + "edctype": "dataspaceconnector:literalexpression", + "value": "BusinessPartnerNumber" + }, + "rightExpression": { + "edctype": "dataspaceconnector:literalexpression", + "value": "" + }, + "operator": "EQ" + } + ] + } + ] +} +``` + +## Multiple BusinessPartnerNumber example + +To define multiple BPN and allow multiple participants to use the data the `orconstraint` should be used. +It will permit the constraints contained to be evaluated using the `OR` operator. + +```json +{ + "permissions": [ + { + "edctype": "dataspaceconnector:permission", + "action": { + "type": "USE" + }, + "constraints": [ + { + "edctype": "dataspaceconnector:orconstraint", + "constraints": [ + { + "edctype": "AtomicConstraint", + "leftExpression": { + "edctype": "dataspaceconnector:literalexpression", + "value": "BusinessPartnerNumber" + }, + "rightExpression": { + "edctype": "dataspaceconnector:literalexpression", + "value": "" + }, + "operator": "EQ" + }, + { + "edctype": "AtomicConstraint", + "leftExpression": { + "edctype": "dataspaceconnector:literalexpression", + "value": "BusinessPartnerNumber" + }, + "rightExpression": { + "edctype": "dataspaceconnector:literalexpression", + "value": "" + }, + "operator": "EQ" + }, + + ... + + // other constraints can be added + ] + } + ], + "duties": [] + } + ] +} +``` + +## Important: EDC Policies are input sensitive + +Please be aware that the EDC ignores all Rules and Constraint it does not understand. This could cause your constrained policies to be public. + +### Example 1 for accidentially public + +```json +{ + "uid": "1", + "prohibitions": [], + "obligations": [], + "permissions": [ + { + "edctype": "dataspaceconnector:permission", + "action": { + "type": "MY-USE" + }, + "constraints": [ + { + "edctype": "AtomicConstraint", + "leftExpression": { + "edctype": "dataspaceconnector:literalexpression", + "value": "BusinessPartnerNumber" + }, + "rightExpression": { + "edctype": "dataspaceconnector:literalexpression", + "value": "BPNLCDQ90000X42KU" + }, + "operator": "EQ" + } + ] + } + ] +} +``` + +This policy is public available, even though the constraint is described correct. The reason is, that this extension only registeres the Policy.Action `USE` within the EDC. Any other Action Type will have the EDC ignore the corresponding permission, hence interpret the polics as public policy. + +### Example 2 for accidentially public + +```json +{ + "uid": "1", + "prohibitions": [], + "obligations": [], + "permissions": [ + { + "edctype": "dataspaceconnector:permission", + "action": { + "type": "USE" + }, + "constraints": [ + { + "edctype": "AtomicConstraint", + "leftExpression": { + "edctype": "dataspaceconnector:literalexpression", + "value": "BusinesPartnerNumber" + }, + "rightExpression": { + "edctype": "dataspaceconnector:literalexpression", + "value": "BPNLCDQ90000X42KU" + }, + "operator": "EQ" + } + ] + } + ] +} +``` + +This policy is public available, too. The cause is a typo in the left-expression of the constraint. This extension only registers the `Constraint.LeftExpression` `BusinessPartnerNumber` within the EDC. Any other term will have the EDC ignore the corresponding constraint, hence interpret the policies as public policy. diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-extensions/cx-oauth2/README.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-extensions/cx-oauth2/README.md new file mode 100644 index 00000000000..c796ac24561 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-extensions/cx-oauth2/README.md @@ -0,0 +1,47 @@ +# Tractus-X OAuth2 Extension + +## Why Tractus-X needs this extension + +In IDS the DAPS token audience is always `idsc:IDS_CONNECTORS_ALL`. At first glance this makes it possible for other connectors to steal and reuse an received token. To mitigate this security risk IDS introduces something called `transportCertsSha256`, which couples the connector audience with its corresponding TLS/SSL certificate. + +From [GitHub IDS-G](https://github.com/International-Data-Spaces-Association/IDS-G/tree/main/Components/IdentityProvider/DAPS) + +> - **transportCertsSha256** Contains the public keys of the used transport certificates, hashed using SHA256. The identifying X509 certificate should not be used for the communication encryption. Therefore, the receiving party needs to connect the identity of a connector by relating its hostname (from the communication encryption layer) and the used private/public key pair, with its IDS identity claim of the DAT. The public transportation key must be one of the `transportCertsSha256` values. Otherwise, the receiving connector must expect that the requesting connector is using a false identity claim. In general, this claim holds an Array of Strings, but it may optionally hold a single String instead if the Array would have exactly one element. + +The reason IDS did this is to prevent the IDS DAPS to know, which connectors talk to each other. But this solution introduces a new level of complexity for different deployment scenarios. The OAuth2 Extension introduces the classic audience validation again, so that users do not have to deal with these things for now. + +## Configuration + +| Key | Description | Mandatory | Default | +|:--------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------|------------| +| edc.oauth.token.url | Token URL of the DAPS | X | | +| edc.oauth.public.key.alias | Vault alias of the public key | X | | +| edc.oauth.client.id | DAPS client id of the connector | X | | +| edc.oauth.private.key.alias | Vault lias of the private key | X | | +| edc.oauth.token.expiration.seconds | | | 5 minutes | +| edc.oauth.validation.nbf.leeway | DAPS token request leeway | | 10 seconds | +| edc.oauth.provider.jwks.refresh | Time between refresh of the DAPS json web key set | | 5 minutes | +| edc.ids.endpoint.audience | The audience the connector requests from the DAPS. Should be the IDS URL of the connector, e.g. `http://plato-edc-controlplane:8282/api/v1/ids/data` | X | | +| edc.ids.validation.referringconnector | Adds checks to the DAPS token. Validation that the `referringConnector` equals the `issuerConnector` and the `securityProfile` of the token is equal to the profile of the IDS message | | false | + +## Audience Validation + +Instead of the `idsc:IDS_CONNECTORS_ALL` the connector requests a specific audience from the DAPS. This audience will be the IDS URL, the connector intends to call. + +When a connector receives a message, it will checks the token audience is equal to the configured value in `edc.ids.endpoint.audience`. + +![sequence diagram](./diagrams/sequence.png) + +## Participant Extension + +Starting from `0.0.1-milestone-9` EDC requires a mandatory setting `edc.participant.id`, which in this case should be the BPN number which is transmitted over the wire to identifying the participants IDs. +To verify that in the DAPS token an extension has been created, that extract from the `ClaimToken` the BPN number and then EDC compare that identity with the one provided over the wire, for security reason. + +By default, the extension parse the `referringConnector` url and extract the BPN number as the last parameter in the URL eg (). + +### Configuration + +| Key | Description | Mandatory | Default | +|:--------------------------------------|:----------------------------------------------------------|-----------|---------------| +| tx.participant.id.regex | Regex for extracting the BPN from the referringConnector | | [^/]+(?=/$|$) | +| tx.participant.id.regexGroup | Group number for the regex match | | 0 | diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-extensions/cx-oauth2/diagrams/sequence.png b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-extensions/cx-oauth2/diagrams/sequence.png new file mode 100644 index 00000000000..784441b4e7d Binary files /dev/null and b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-extensions/cx-oauth2/diagrams/sequence.png differ diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-extensions/cx-oauth2/diagrams/sequence.puml b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-extensions/cx-oauth2/diagrams/sequence.puml new file mode 100644 index 00000000000..d2f20f27879 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-extensions/cx-oauth2/diagrams/sequence.puml @@ -0,0 +1,24 @@ +@startuml + +title CX-DAPS Audience Validation + +participant ConnectorA as "Connector A" +participant DAPS as "IDS DAPS" +participant ConnectorB as "Connector B" + +== Configuration == + +ConnectorB <-? : Configure //edc.ids.endpoint.audience//\nto ///api/v1/ids/data// + +== Request == + +?-> ConnectorA ++: Initiate Catalog Request\n/data/catalog?providerUrl=///api/v1/ids/data// + ConnectorA -> DAPS ++: Request Token for audience\n///api/v1/ids/data// + return DAPS Token + ConnectorA -> ConnectorB ++ : Send Request with Token + ConnectorB -> ConnectorB : Check Audience equals\n/api/v1/ids/data + ... continue request processing ... + return Catalog Response +return Catalog + +@enduml \ No newline at end of file diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-extensions/data-encryption/README.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-extensions/data-encryption/README.md new file mode 100644 index 00000000000..586dad775ba --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-extensions/data-encryption/README.md @@ -0,0 +1,42 @@ +# Data Encryption Extension + +The Eclipse Dataspace Connector encrypts sensitive information inside a token it sends to other applications (from possibly other companies). This extension implements the encryption of this data and should be used with secure keys and algorithms at all times. + +## Algorithm Configuration + +| Key | Description | Mandatory | Default | +|:--------------------------------------------|:-----------------------------------------------------------------------------------------------------------------|-----------|------------------| +| edc.data.encryption.algorithm | Algorithm for encryption and decryption. Must be ether 'AES' or 'NONE'. | | AES | + +## Strategies + +### 1. AES + +The Advanced Encryption Standard (AES) is the default encryption algorithm. For Authenticated Encryption with Associated Data (AEAD) it uses the Galois/Counter Mode or GCM. + +When using AES-GCM the key length must be ether 128-, 196- or 256bit. Keys must be stored stored Base64 encoded in the Vault, separated by a comma. + +It's possible to generate Keys using OpenSSL + +```bash +# 128 Bit +openssl rand -base64 16 + +# 196 Bit +openssl rand -base64 24 + +# 256 Bit +openssl rand -base64 32 +``` + +#### AES Configuration + +| Key | Description | Mandatory | Default | +|:------------------------------------|:----------------------------------------------------------------------------|-----------|---------| +| edc.data.encryption.keys.alias | Symmetric Keys stored in the Vault under the configured alias. | X | | +| edc.data.encryption.caching.enabled | Enable caching to request only keys from the vault after the cache expires. | | false | +| edc.data.encryption.caching.seconds | Duration in seconds until the cache expires. | | 3600 | + +### 2. NONE + +This strategy does apply no encryption at all and should only be used for debugging purposes. Using NONE encryption may leak sensitive data to other connectors! diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-extensions/dataplane-proxy/edc-dataplane-proxy-consumer-api/README.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-extensions/dataplane-proxy/edc-dataplane-proxy-consumer-api/README.md new file mode 100644 index 00000000000..ec590c1a2aa --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-extensions/dataplane-proxy/edc-dataplane-proxy-consumer-api/README.md @@ -0,0 +1,46 @@ +# DataPlane Proxy Consumer API + +This is an API extension that interacts with the EDR/cache for directly fetching the data +without knowing the EDR. + +It contains only one endpoint with `POST` for fetching data: + +The path is `/aas/request` and the body is something like this example: + +```json +{ + "assetId": "1", + "endpointUrl": "http://localhost:8181/api/gateway/aas/test" +} +``` + +The body should contain the `assetId` or the `transferProcessId` which identify the data that we want to fetch +and an `endpointUrl` which is the provider gateway on which the data is available. More info [here](../edc-dataplane-proxy-provider-api/README.md) on the gateway. + +Alternatively if the `endpointUrl` is not known or the gateway on the provider side is not configured, it can be omitted and the `Edr#endpointUrl` +will be used. In this scenario if needed users can provide additional properties to the request for composing the final +url: + +- `pathSegments` sub path to append to the base url +- `queryParams` query parameters to add to the url + +Example with base url `http://localhost:8080/test` + +```json +{ + "assetId": "1", + "pathSegments": "/sub", + "queryParams": "foo=bar" +} +``` + +The final url will look like `http://localhost:8080/test/sub?foo=bar` composed by the DataPlane manager with the Http request flow, + +> Note: the endpoint is not protected with configured `AuthenticationService`, which most likely will be the token based (auth key) one. + +## Configuration + +| Key | Required | Default | Description | +|---------------------------------|----------|--------------------------------------------| +| web.http.proxy.port | | 8186 | | +| web.http.proxy.path | | /proxy | | diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-extensions/dataplane-proxy/edc-dataplane-proxy-provider-api/README.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-extensions/dataplane-proxy/edc-dataplane-proxy-provider-api/README.md new file mode 100644 index 00000000000..42daf4973c7 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-extensions/dataplane-proxy/edc-dataplane-proxy-provider-api/README.md @@ -0,0 +1,23 @@ +# DataPlane Proxy Provider API + +This extension provide additional dataplane extension for proxying requests to backends. +The configuration of the proxy can be found [here](../edc-dataplane-proxy-provider-core/README.md) + +The provider proxy is mounted into the EDC default context, and it's available in the path `/gateway` + +The proxy will look for subPath in the request and match the subpath with the configured ones and forward +the rest of the path and query parameters. + +For example: + +with this URL `http://localhost:8181/api/gateway/aas/test` it will look for the `aas` alias in the configuration, +and it will compose the final url to call based on that configuration appending to it the remaining part of the path and query +parameters. + +When the proxy receive a request, it must contain the EDR, which will be decoded with the `token` validation endpoint. + +## Configuration + +| Key | Required | Default | Description | +|---------------------------------|----------|----------------------------------------------------------------------------------------| +| tx.dpf.provider.proxy.thread.pool | | 10 | Thread pool size for the provider data plane proxy gateway | diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-extensions/dataplane-proxy/edc-dataplane-proxy-provider-core/README.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-extensions/dataplane-proxy/edc-dataplane-proxy-provider-core/README.md new file mode 100644 index 00000000000..706a31e7816 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-extensions/dataplane-proxy/edc-dataplane-proxy-provider-core/README.md @@ -0,0 +1,13 @@ +# DataPlane Proxy Provider Core + +This extension provide the base service and configuration for the DataPlane Provider Proxy. + +## Configuration + +| Key | Required | Default | Description | +|----------------------------------------------------|----------------------------------------------------------------------------------| +| tx.dpf.proxy.gateway.alias.proxied.path |X | 10 | The backend URL to proxy | +| tx.dpf.proxy.gateway.alias.proxied.edr.forward | | false | If the original EDR must be forwarded to the backend | +| tx.dpf.proxy.gateway.alias.proxied.edr.headerKey | | Edc-Edr | The header name to use when forwarding the EDR | + +Where `alias` is the first part of the subpath after `gateway` mentioned [here](../edc-dataplane-proxy-provider-api/README.md) diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-extensions/dataplane-selector-configuration/README.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-extensions/dataplane-selector-configuration/README.md new file mode 100644 index 00000000000..7ee61fac523 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-extensions/dataplane-selector-configuration/README.md @@ -0,0 +1,29 @@ +# Data Plane Selector Configuration Extension + +This control-plane extension makes it possible configure one or more Data Plane Instances. During a transfer the control +plane will look for an instance with matching capabilities to transfer data. + +## Configuration + +Per data plane instance the following settings must be configured. As `` any unique string is valid. + +| Key | Description | Mandatory | Example | +|:------------------------------------------------------------|:--------------------------------------------------|-----------|------------------------------------------------------------------| +| edc.dataplane.selector.````.url | URL to connect to the Data Plane Instance. | X | | +| edc.dataplane.selector.````.sourcetypes | Source Types in a comma separated List. | X | HttpData | +| edc.dataplane.selector.````.destinationtypes | Destination Types in a comma separated List. | X | HttpProxy | +| edc.dataplane.selector.````.properties | Additional properties of the Data Plane Instance. | (X) | { "publicApiUrl": "" } | + +The property `publicApiUrl` is mandatory for Data Plane Instances with destination type `HttpProxy`. + +### Helm Example Configuration using environment variables + +```yaml +EDC_DATAPLANE_SELECTOR_PLATOPLANE_URL: http://plato-edc-dataplane:9999/api/dataplane/control +EDC_DATAPLANE_SELECTOR_PLATOPLANE_SOURCETYPES : HttpData +EDC_DATAPLANE_SELECTOR_PLATOPLANE_DESTINATIONTYPES: HttpProxy +EDC_DATAPLANE_SELECTOR_PLATOPLANE_PROPERTIES: >- + { + "publicApiUrl": "http://plato-edc-dataplane:8185/api/public" + } +``` diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-extensions/edr/edr-api/README.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-extensions/edr/edr-api/README.md new file mode 100644 index 00000000000..084715dcc8e --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-extensions/edr/edr-api/README.md @@ -0,0 +1,20 @@ +# Control Plane EDR API + +This module provides extensions to the EDC management API for dealing with EDR tokens. + +The extensions are added to the same context as the management APIs, so no additional configuration is required. + +The base path of the API will be `/edrs` + +This module for now provides three APIs: + +- Initiating an EDR negotiation token +- Fetching the available EDRs +- Fetching the single EDR + +The initiate negotiation EDR leverage the callbacks mechanism introduced in the latest EDC, and it handles +the contract negotiation and the transfer request in one API call. Once the transfer has been completed +the provider will return the EDR that will be stored into the consumer EDR store/cache. Users can interact +with the EDR store/cache for fetching the EDR and then requesting the data, or can use the `proxy` API described [here](../../dataplane-proxy/edc-dataplane-proxy-consumer-api/README.md) + +An overview on how to use the EDR APIs is available [here](../../../docs/samples/edr-api-overview/edr-api-overview.md) diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-extensions/edr/edr-cache-sql/README.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-extensions/edr/edr-cache-sql/README.md new file mode 100644 index 00000000000..270d1f2666e --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-extensions/edr/edr-cache-sql/README.md @@ -0,0 +1,27 @@ +# SQL-based `EndpointDataReferenceCache` extension + +This extension provide a persistent implementation of `EndpointDataReferenceCache`. + +It will store in the database this fields: + +- transferProcessId +- agreementId +- assetId +- edrId + +It represents a single EDR negotiation done with the new Control Plane EDR APIs. + +The EDR itself it is stored in the participant vault with a prefixed key `edr__`. + +**_Note that the SQL statements (DDL) are specific to and only tested with PostgreSQL. Using it with other RDBMS may +work but might have unexpected side effects!_** + +## 1. Table schema + +see [schema.sql](docs/schema.sql). + +## 2. Configuration + +| Key | Description | Mandatory | Default | +|:---------------------------------------|:----------------------------------|-----------|---------| +| edc.datasource.edr.name | Datasource used by this extension | | edr | diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-extensions/postgresql-migration/README.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-extensions/postgresql-migration/README.md new file mode 100644 index 00000000000..7a8b848c6ee --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-extensions/postgresql-migration/README.md @@ -0,0 +1,21 @@ +# Postgresql SQL Migration Extension + +This extension applies SQL migrations to + +* the asset-index +* the contract-definition store +* contract-negotiation store +* policy store +* transfer-process store + +## Configuration + +| Key | Description | Mandatory | Default | +|:--------------------------------------------------------------------------|:-------------------------------------------------|-----------|----------| +| org.eclipse.tractusx.edc.postgresql.migration.asset.enabled | Enable migration for asset tables | | true | +| org.eclipse.tractusx.edc.postgresql.migration.contractdefinition.enabled | Enable migration for contract definition tables | | true | +| org.eclipse.tractusx.edc.postgresql.migration.contractnegotiation.enabled | Enable migration for contract negotiation tables | | true | +| org.eclipse.tractusx.edc.postgresql.migration.edr.enabled | Enable migration for edr tables | | true | +| org.eclipse.tractusx.edc.postgresql.migration.policy.enabled | Enable migration for policy tables | | true | +| org.eclipse.tractusx.edc.postgresql.migration.transferprocess.enabled | Enable migration for transfer process tables | | true | +| org.eclipse.tractusx.edc.postgresql.migration.schema | The DB schema to be used during migration | | "public" | diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-extensions/provision-additional-headers/README.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-extensions/provision-additional-headers/README.md new file mode 100644 index 00000000000..61fe14873e5 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-extensions/provision-additional-headers/README.md @@ -0,0 +1,11 @@ +# Provision: additional headers + +The goal of this extension is to provide additional headers to the request to the backend service done by the provider +in order to retrieve the data that will be given to the consumer. + +This gives for example the provider backend service the possibility to audit the data requests. + +The following headers are added to the `HttpDataAddress`: + +- `Edc-Contract-Agreement-Id`: the id of the contract agreement +- `Edc-Bpn`: the BPN of the consumer diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-extensions/ssi/jws2020-crypto-suite/README.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-extensions/ssi/jws2020-crypto-suite/README.md new file mode 100644 index 00000000000..eb6a7761adc --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-extensions/ssi/jws2020-crypto-suite/README.md @@ -0,0 +1,70 @@ +# JsonWebSignature2020 + +This module extends the [iron-verifiable-credentials library](https://github.com/filip26/iron-verifiable-credentials), +which we use in conjunction with [titanium-ld](https://github.com/filip26/titanium-json-ld/) with an implementation for +the [JsonWebSignature2020](https://www.w3.org/community/reports/credentials/CG-FINAL-lds-jws2020-20220721) crypto suite. + +## Technical aspects + +This implementation is actually mostly glue code between the `iron-verifiable-credentials` lib and the +well-known [Nimbus JOSE lib](https://connect2id.com/products/nimbus-jose-jwt), as all cryptographic primitives are taken +from Nimbus. + +VerifiableCredentials and VerifiablePresentations are processed as JSON(-LD) objects, so some familiarity with JSON-LD +is required. +The entrypoint into the cryptographic suite is the `Vc` class, which allows signing/issuing and verifying JSON-LD +structures. The following samples use explicit types for clarity. These are just some illustrative examples, please +check the `IssuerTests` and the `VerifierTests` for more comprehensive explanations. + +### Sign a VC + +```java +JwsSignature2020Suite suite = new JwsSignature2020Suite(JacksonJsonLd.createObjectMapper()); +JsonObject vc = createVcAsJsonLd(); +JWK keyPair = createKeyPairAsJwk(); +JwkMethod signKeys = new JwkMethod(id,type,controller,keyPair); + +var options = suite.createOptions() + .created(Instant.now()) + .verificationMethod(signKeys) // embeds the proof + .purpose(URI.create("https://w3id.org/security#assertionMethod")); + +Issuer signedVc = Vc.sign(vc, signKeys, options); + +JsonObject compacted = IssuerCompat.compact(signedVc); +``` + +### Verify a VC + +```java +JwsSignature2020Suite suite = new JwsSignature2020Suite(JacksonJsonLd.createObjectMapper()); +JsonObject vc = readSignedVc(); +Verifier result = Vc.verify(vc, suite); + +try { + result.isValid(); +} catch(VerificationError error) { + //handle +} +``` + +## Limitations & Known Issues + +Java 17 [dropped support](https://connect2id.com/products/nimbus-jose-jwt/examples/jwt-with-es256k-signature) for +the `secp256k1` curve. Alternatively, the BouncyCastle JCA provider could be used. +For this implementation, we chose to forego this at the benefit of a smaller library footprint. There is plenty of other +curves to choose from. + +On a similar note, support for Octet Keypairs (`"OKP"`) has not yet been added to the standard Java JCA, thus an +additional dependency `tink` is needed, +check [here](https://connect2id.com/products/nimbus-jose-jwt/examples/jwk-generation#okp) for details. If that is not +acceptable to you, please add a dependency exclusion to your build script. + +`iron-verifiable-credentials` is not 100% agnostic toward its crypto suites, for example there is +a [hard-coded context](https://github.com/filip26/iron-verifiable-credentials/blob/82d13326c5f64a0f38c75d417ffc263febfd970d/src/main/java/com/apicatalog/vc/processor/Issuer.java#L122) +added to the compacted JSON-LD, which is incorrect. It doesn't negatively impact the resulting JSON-LD, other than +possibly affecting processing times, but unfortunately it also makes it impossible to add more contexts, such +as . We mitigated this with +the [`IssuerCompat.java`](./src/main/java/org/eclipse/edc/security/signature/jws2020/IssuerCompat.java), which should be +used +for compaction. diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-extensions/ssi/ssi-identity-core/README.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-extensions/ssi/ssi-identity-core/README.md new file mode 100644 index 00000000000..59cc63bfe31 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-extensions/ssi/ssi-identity-core/README.md @@ -0,0 +1,25 @@ +# SSI Core Identity Service Module + +This module contains an implementation of the EDC identity service for SSI. +The SsiIdentityService contains a `SsiTokenValidationService` for validating the `JWT` token, +that uses an implementation of `SsiCredentialClient` for validating the JWT token and then check custom rules registered in the `SsiValidationRuleRegistry` + +For obtaining the `JWT` token, the identity service also delegate to the `SsiCredentialClient` . + +The default implementation according to the first milestone [here](https://github.com/eclipse-tractusx/ssi-docu/tree/main/docs/architecture/cx-3-2) +will rely on an MIW and the implementations in available in the module `:edc-extensions:ssi:ssi-miw-credential-client`. + +The implementation also provide a rule registry `SsiValidationRuleRegistry` where custom rule can be registered for validating the `ClaimToken` extracted from the `JWT` token. + +Custom rule could be like: + +- Audience validation +- VP/VC validation +- Expiration +- ..etc + +## Configuration + +| Key | Required | Example | Description | +|-----------------------------------------|----------|----------------|---------------------------------------| +| tx.ssi.endpoint.audience | X | | Endpoint URL for audience check (DSP) | diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-extensions/ssi/ssi-miw-credential-client/README.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-extensions/ssi/ssi-miw-credential-client/README.md new file mode 100644 index 00000000000..88316514786 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/edc-extensions/ssi/ssi-miw-credential-client/README.md @@ -0,0 +1,34 @@ +# MIW Client Credential Module + +This module contains an implementation of the `SsiCredentialClient` interface for SSI. +It basically narrows down to two operations: + +- obtaining a token for protocol communication +- validating the token + +For validating the token accordingly to the first milestone [here](https://github.com/eclipse-tractusx/ssi-docu/tree/main/docs/architecture/cx-3-2), the implemetation +just call the MIW for checking that the token and the VP claim inside are correct. Then extract the `JWT` claims into the `ClaimToken` for further checks. + +For obtaining a `JWT` token also it reaches the MIW, that will create a token with the `VP` claim inside. + +This module also contains two additional validation rules of VP/VC on the provider side. + +- `SsiCredentialIssuerValidationRule` checks if the issuer of the Verifiable Credential matches `tx.ssi.miw.authority.issuer` +- `SsiCredentialSubjectIdValidationRule` checks if the issuer of the JWT/VP matches the credential subject id in the Verifiable Credential + +## Configuration + +| Key | Required | Example | Description | +|----------------------------------|----------|----------------|-----------------------------------| +| tx.ssi.miw.url | X | | MIW URL | +| tx.ssi.miw.authority.id | X | | BPN number of the authority | +| tx.ssi.miw.authority.issuer | | | The id of the issuer (DID) | +| tx.ssi.oauth.token.url | X | | Token URL (Keycloak) | +| tx.ssi.oauth.client.id | X | | Client id | +| tx.ssi.oauth.client.secret.alias | X | | Vault alias for the client secret | + +By default, the `tx.ssi.miw.authority.issuer` is composed with `did:web::` + +Another mandatory settings is `tx.ssi.endpoint.audience` which is described [here](../ssi-identity-core/README.md) + +> Note: the `edc.participant.id` should match the BPN number contained in the OAuth2/Keycloak token and the one assigned by the portal to the user's organization. diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/pr_etiquette.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/pr_etiquette.md new file mode 100644 index 00000000000..26b513a9f72 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/pr_etiquette.md @@ -0,0 +1,70 @@ +# Etiquette for pull requests + +## As an author + +Submitting pull requests in EDC should be done while adhering to a couple of simple rules. + +- Familiarize yourself + with [coding style](styleguide.md), [architectural patterns](docs/development/coding-principles.md) and + other contribution guidelines. +- No surprise PRs please. Before you submit a PR, open a discussion or an issue outlining your planned work and give + people time to comment. It may even be advisable to contact committers using the `@mention` feature. Unsolicited PRs + may get ignored or rejected. +- Create your working branch in your fork of Tractus-X EDC, and create the PR against the upstream `main` branch +- Create focused PRs: your work should be focused on one particular feature or bug. Do not create broad-scoped PRs that + solve multiple issues as reviewers may reject those PR bombs outright. +- Provide a clear description and motivation in the PR description in GitHub. This makes the reviewer's life much + easier. It is also helpful to outline the broad changes that were made, e.g. "Changes the schema of XYZ-Entity: + the `age` field changed from `long` to `String`". +- If you introduce new 3rd party dependencies, be sure to note them in the PR description and explain why they are + necessary. +- Stick to the established code style, please refer to the [styleguide document](styleguide.md). +- All tests should be green, especially when your PR is in `"Ready for review"` +- Mark PRs as `"Ready for review"` only when you're prepared to defend your work. By that time you have completed your + work and shouldn't need to push any more commits other than to incorporate review comments. +- Merge conflicts should be resolved by squashing all commits on the PR branch, rebasing onto `main` and + force-pushing. Do this when your PR is ready to review. +- If you require a reviewer's input while it's still in draft, please contact the designated reviewer using + the `@mention` feature and let them know what you'd like them to look at. +- Request a review from one of the committers. Requesting a review from anyone else is still possible, and + sometimes may be advisable, but only committers can merge PRs, so be sure to include them early on. +- Re-request reviews after all remarks have been adopted. This helps reviewers track their work in GitHub. +- If you disagree with a committer's remarks, feel free to object and argue, but if no agreement is reached, you'll have + to either accept the decision or withdraw your PR. +- Be civil and objective. No foul language, insulting or otherwise abusive language will be tolerated. +- The PR titles must follow [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/). + - The title must follow the format as `(): `. + `build`, `chore`, `ci`, `docs`, `feat`, `fix`, `perf`, `refactor`, `revert`, `style`, `test` are allowed for + the ``. + - The length must be kept under 80 characters. + +## As a reviewer + +- Please complete reviews within two business days or delegate to another committer, removing yourself as a reviewer. +- If you have been requested as reviewer, but cannot do the review for any reason (lack of time or expertise in a + particular area, etc.) please comment that in the PR and remove yourself as a reviewer, suggesting a stand-in. + The [code owners document](CODEOWNERS) should help with that. +- Don't be overly pedantic. +- Don't argue basic principles (code style, architectural decisions, etc.) +- Use the `suggestion` feature of GitHub for small/simple changes. +- The following could serve you as a review checklist: + - no unnecessary dependencies in `build.gradle.kts` + - sensible unit tests, prefer unit tests over integration tests wherever possible (test runtime). Also check the + usage of test tags. + - code style + - simplicity and "uncluttered-ness" of the code + - overall focus of the PR +- Don't just wave through any PR. Please take the time to look at them carefully. +- Be civil and objective. No foul language, insulting or otherwise abusive language will be tolerated. The goal is to + _encourage_ contributions. + +## The technical committers (as of April 05, 2023) + +Main committers for the Tractus-X EDC project: + +- @paullatzelsperger +- @florianrusch-zf + +Alternatively, the following Tractus-X committers can also step in: + +- @SebastianBezold diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/resources/save_actions_scr.png b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/resources/save_actions_scr.png new file mode 100644 index 00000000000..10ae06cb006 Binary files /dev/null and b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/resources/save_actions_scr.png differ diff --git a/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/styleguide.md b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/styleguide.md new file mode 100644 index 00000000000..695faf91d13 --- /dev/null +++ b/docs-kits_versioned_docs/version-23.12/kits/tractusx-edc/styleguide.md @@ -0,0 +1,62 @@ +# Eclipse Tractus-X EDC Code Style Guide + +In order to maintain a coherent code style throughout the project we ask every contributor to adhere to a few simple +style guidelines. We assume most developers will use at least something like `vim` and therefore have support for +automatic code formatting, we are not going to list the guidelines here. If you absolutely want to take a look, checkout +the [config written in XML](resources/tx-checkstyle-config.xml). + +## Checkstyle configuration + +Checkstyle is a [tool](https://checkstyle.sourceforge.io/) that can statically analyze your source code to check against +a set of given rules. Those rules are formulated in an [XML document](resources/tx-checkstyle-config.xml). Many modern +IDEs have a plugin available for download that runs in the background and does code analysis. + +Our checkstyle config is based off of the [Google Style](https://checkstyle.sourceforge.io/google_style.html) with a few +additional rules such as the naming of constants and Types. + +_Note: currently we do **not** enforce the generation of Javadoc comments, even though documenting code is **highly** +recommended. We might enable this in the future, such that at least interfaces and public methods are commented._ + +## Running Checkstyle + +Checkstyle can be run in different ways: implicitly we run it through the `checkstyle` Gradle Plugin +during `gradle build` or `gradle check`. That will cause the build to fail if any violations are found. But in order to get better +usability and on-the-fly reporting, Checkstyle is also available as IDE plugins for many modern IDEs, and it can run +either on-demand or continuously in the background: + +- [IntelliJ IDEA plugin [recommended]]() +- [Eclipse IDE [recommended]]() + +### Checkstyle as PR validation + +Apart from running Checkstyle locally as IDE plugin, we do run it on +our GitHub Actions pipeline. At this time, Checkstyle will only spew out warnings, but +we may tighten the rules at a future time and without notice. This will result in failing GitHub Action pipelines. Also, +committers might reject PRs due to Checkstyle warnings. + +It is therefore **highly** recommended running Checkstyle locally as well. + +If you **do not wish** to run Checkstyle on you local machine, that's fine, but be prepared to get your PRs rejected +simply because of a naming or formatting error. + +## [Recommended] IntelliJ Code Style Configuration + +If you are using Jetbrains IntelliJ IDEA, we have created a specific code style configuration that will automatically +format your source code according to that style guide. This should eliminate most of the potential Checkstyle violations +right from the get-go. You will need to reformat your code manually or in a pre-commit hook though. + +## [Optional] Intellij SaveActions Plugin + +If you absolutely want to make sure that no piece of ever-so-slightly misformatted code even hits your hard disk, we +advise you to use the [SaveActions plugin](https://plugins.jetbrains.com/plugin/7642-save-actions) for IntelliJ IDEA. It +takes care that your code is always correctly formatted. Unfortunately SaveActions has no export feature, so please just +copy this configuration: + +![SaveActions configuration](resources/save_actions_scr.png) + +## [Optional] Generic `.editorConfig` + +For most other editors and IDEs we've supplied an [.editorConfig](resources/tx-codestyle.editorconfig) file that can be +placed at the appropriate location. The specific location will largely depend on your editor and your OS, please refer +to the +[official documentation](https://editorconfig.org) for details. diff --git a/docs-kits_versioned_sidebars/version-23.12-sidebars.json b/docs-kits_versioned_sidebars/version-23.12-sidebars.json new file mode 100644 index 00000000000..6c5b8a650cb --- /dev/null +++ b/docs-kits_versioned_sidebars/version-23.12-sidebars.json @@ -0,0 +1,1172 @@ +{ + "kits": [ + { + "type": "category", + "label": "Business Partner KIT", + "link": { + "type": "generated-index" + }, + "collapsed": true, + "items": [ + "kits/Business Partner Kit/Changelog", + "kits/Business Partner Kit/Adoption View", + "kits/Business Partner Kit/Operation View", + { + "type": "category", + "label": "Development View", + "link": { + "type": "generated-index" + }, + "items": [ + "kits/Business Partner Kit/Software Development View/Specification", + { + "type": "category", + "label": "Gate API", + "link": { + "type": "generated-index" + }, + "items": [ + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Gate Api/business-partner-data-management-gate" + }, + { + "type": "category", + "label": "sharing-state-controller", + "link": { + "type": "generated-index", + "title": "sharing-state-controller", + "slug": "/category/kits/Business Partner Kit/Software Development View/Gate Api/sharing-state-controller" + }, + "items": [ + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Gate Api/get-sharing-states", + "label": "Returns sharing states of business partners, optionally filtered by a business partner type and an array of external IDs", + "className": "api-method get" + }, + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Gate Api/upsert-sharing-state", + "label": "Creates or updates a sharing state of a business partner", + "className": "api-method put" + } + ] + }, + { + "type": "category", + "label": "site-controller", + "link": { + "type": "generated-index", + "title": "site-controller", + "slug": "/category/kits/Business Partner Kit/Software Development View/Gate Api/site-controller" + }, + "items": [ + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Gate Api/upsert-sites-output", + "label": "Creates or updates an existing site in the output stage", + "className": "api-method put" + }, + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Gate Api/get-sites", + "label": "Returns sites from the input stage", + "className": "api-method get" + }, + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Gate Api/upsert-sites", + "label": "Creates or updates an existing site in the input stage", + "className": "api-method put" + }, + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Gate Api/get-sites-output", + "label": "Returns sites by an array of external IDs from the output stage", + "className": "api-method post" + }, + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Gate Api/get-sites-by-external-ids", + "label": "Returns sites by an array of external IDs from the input stage", + "className": "api-method post" + }, + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Gate Api/get-site-by-external-id", + "label": "Returns site by external ID from the input stage", + "className": "api-method get" + } + ] + }, + { + "type": "category", + "label": "legal-entity-controller", + "link": { + "type": "generated-index", + "title": "legal-entity-controller", + "slug": "/category/kits/Business Partner Kit/Software Development View/Gate Api/legal-entity-controller" + }, + "items": [ + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Gate Api/upsert-legal-entities-output", + "label": "Creates or updates an existing legal entity in the output stage", + "className": "api-method put" + }, + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Gate Api/get-legal-entities", + "label": "Returns legal entities from the input stage", + "className": "api-method get" + }, + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Gate Api/upsert-legal-entities", + "label": "Creates or updates an existing legal entity in the input stage", + "className": "api-method put" + }, + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Gate Api/get-legal-entities-output", + "label": "Returns legal entities by an array of external IDs from the output stage", + "className": "api-method post" + }, + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Gate Api/get-legal-entities-by-external-ids", + "label": "Returns legal entities by an array of external IDs from the input stage", + "className": "api-method post" + }, + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Gate Api/get-legal-entity-by-external-id", + "label": "Returns legal entity by external ID from the input stage", + "className": "api-method get" + } + ] + }, + { + "type": "category", + "label": "address-controller", + "link": { + "type": "generated-index", + "title": "address-controller", + "slug": "/category/kits/Business Partner Kit/Software Development View/Gate Api/address-controller" + }, + "items": [ + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Gate Api/upsert-addresses-output", + "label": "Creates or updates an existing address in the output stage", + "className": "api-method put" + }, + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Gate Api/get-addresses", + "label": "Returns addresses from the input stage", + "className": "api-method get" + }, + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Gate Api/upsert-addresses", + "label": "Creates or updates an existing address in the input stage", + "className": "api-method put" + }, + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Gate Api/get-addresses-output", + "label": "Returns addresses by an array of external IDs from the output stage", + "className": "api-method post" + }, + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Gate Api/get-addresses-by-external-ids", + "label": "Returns addresses by an array of external IDs from the input stage", + "className": "api-method post" + }, + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Gate Api/get-address-by-external-id", + "label": "Returns address by external ID from the input stage", + "className": "api-method get" + } + ] + }, + { + "type": "category", + "label": "business-partner-controller", + "link": { + "type": "generated-index", + "title": "business-partner-controller", + "slug": "/category/kits/Business Partner Kit/Software Development View/Gate Api/business-partner-controller" + }, + "items": [ + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Gate Api/upsert-business-partners-input", + "label": "Create or update business partner with given external ID", + "className": "api-method put" + }, + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Gate Api/get-business-partners-output", + "label": "Search business partners by an array of external IDs from the output stage", + "className": "api-method post" + }, + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Gate Api/get-business-partners-input", + "label": "Search business partner by external ID. An empty external ID list returns a paginated list of all business partners.", + "className": "api-method post" + } + ] + }, + { + "type": "category", + "label": "changelog-controller", + "link": { + "type": "generated-index", + "title": "changelog-controller", + "slug": "/category/kits/Business Partner Kit/Software Development View/Gate Api/changelog-controller" + }, + "items": [ + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Gate Api/get-output-changelog", + "label": "Returns changelog entries for changes to the business partner output stage", + "className": "api-method post" + }, + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Gate Api/get-input-changelog", + "label": "Returns changelog entries for changes to the business partner input stage", + "className": "api-method post" + } + ] + }, + { + "type": "category", + "label": "gate-documentation-controller", + "link": { + "type": "generated-index", + "title": "gate-documentation-controller", + "slug": "/category/kits/Business Partner Kit/Software Development View/Gate Api/gate-documentation-controller" + }, + "items": [ + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Gate Api/get-mermaid-gate-persistence", + "label": "Get mermaid class diagramm for the gate JPA model", + "className": "api-method get" + } + ] + } + ] + }, + { + "type": "category", + "label": "Pool API", + "link": { + "type": "generated-index" + }, + "items": [ + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Pool Api/business-partner-data-management-pool" + }, + { + "type": "category", + "label": "site-controller", + "link": { + "type": "generated-index", + "title": "site-controller", + "slug": "/category/kits/Business Partner Kit/Software Development View/Pool Api/site-controller" + }, + "items": [ + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Pool Api/get-sites-paginated", + "label": "Get page of sites matching the pagination search criteria", + "className": "api-method get" + }, + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Pool Api/update-site", + "label": "Updates an existing site", + "className": "api-method put" + }, + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Pool Api/create-site", + "label": "Creates a new site", + "className": "api-method post" + }, + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Pool Api/search-sites", + "label": "Returns sites by an array of BPNS and/or an array of corresponding BPNL", + "className": "api-method post" + }, + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Pool Api/search-main-addresses", + "label": "Search for sites' main addresses", + "className": "api-method post" + }, + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Pool Api/get-site", + "label": "Returns a site by its BPNS", + "className": "api-method get" + } + ] + }, + { + "type": "category", + "label": "legal-entity-controller", + "link": { + "type": "generated-index", + "title": "legal-entity-controller", + "slug": "/category/kits/Business Partner Kit/Software Development View/Pool Api/legal-entity-controller" + }, + "items": [ + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Pool Api/get-legal-entities", + "label": "Returns legal entities by different search parameters", + "className": "api-method get" + }, + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Pool Api/update-business-partners", + "label": "Updates an existing legal entity", + "className": "api-method put" + }, + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Pool Api/create-business-partners", + "label": "Creates a new legal entity", + "className": "api-method post" + }, + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Pool Api/set-legal-entity-currentness", + "label": "Confirms that the data of a legal entity business partner is still up to date.", + "className": "api-method post" + }, + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Pool Api/search-sites-1", + "label": "Returns legal entities by an array of BPNL", + "className": "api-method post" + }, + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Pool Api/search-legal-addresses", + "label": "Search Legal Addresses", + "className": "api-method post" + }, + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Pool Api/get-legal-entity", + "label": "Returns a legal entity by identifier, like BPN, DUNS or EU VAT ID, specified by the identifier type", + "className": "api-method get" + }, + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Pool Api/get-sites", + "label": "Returns all sites of a legal entity with a specific BPNL", + "className": "api-method get" + }, + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Pool Api/get-addresses", + "label": "Returns all addresses of a legal entity with a specific BPNL", + "className": "api-method get" + } + ] + }, + { + "type": "category", + "label": "address-controller", + "link": { + "type": "generated-index", + "title": "address-controller", + "slug": "/category/kits/Business Partner Kit/Software Development View/Pool Api/address-controller" + }, + "items": [ + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Pool Api/get-addresses-1", + "label": "Returns addresses by different search parameters", + "className": "api-method get" + }, + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Pool Api/update-addresses", + "label": "Updates an existing address", + "className": "api-method put" + }, + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Pool Api/create-addresses", + "label": "Creates a new address", + "className": "api-method post" + }, + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Pool Api/search-addresses", + "label": "Returns addresses by an array of BPNA and/or an array of corresponding BPNS and/or an array of corresponding BPNL.", + "className": "api-method post" + }, + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Pool Api/get-address", + "label": "Returns an address by its BPNA", + "className": "api-method get" + } + ] + }, + { + "type": "category", + "label": "open-search-controller", + "link": { + "type": "generated-index", + "title": "open-search-controller", + "slug": "/category/kits/Business Partner Kit/Software Development View/Pool Api/open-search-controller" + }, + "items": [ + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Pool Api/get-business-partners", + "label": "Fetch information about the latest OpenSearch export", + "className": "api-method get" + }, + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Pool Api/export", + "label": "Index new business partner records on OpenSearch", + "className": "api-method post" + }, + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Pool Api/clear", + "label": "Clear business partner index on OpenSearch", + "className": "api-method delete" + } + ] + }, + { + "type": "category", + "label": "metadata-controller", + "link": { + "type": "generated-index", + "title": "metadata-controller", + "slug": "/category/kits/Business Partner Kit/Software Development View/Pool Api/metadata-controller" + }, + "items": [ + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Pool Api/get-regions", + "label": "Get page of regions", + "className": "menu__list-item--deprecated api-method get" + }, + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Pool Api/create-region", + "label": "Create new Region", + "className": "menu__list-item--deprecated api-method post" + }, + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Pool Api/get-legal-forms", + "label": "Returns all legal forms", + "className": "api-method get" + }, + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Pool Api/create-legal-form", + "label": "Creates a new legal form", + "className": "api-method post" + }, + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Pool Api/get-identifier-types", + "label": "Returns all identifier types filtered by business partner type and country.", + "className": "api-method get" + }, + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Pool Api/create-identifier-type", + "label": "Creates a new identifier type", + "className": "api-method post" + }, + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Pool Api/get-field-quality-rules", + "label": "Get all field quality rules filtered by country (specified by its ISO 3166-1 alpha-2 country code)", + "className": "api-method get" + }, + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Pool Api/get-admin-areas-level-1", + "label": "Get page of country subdivisions suitable for the administrativeAreaLevel1 address property", + "className": "api-method get" + } + ] + }, + { + "type": "category", + "label": "changelog-controller", + "link": { + "type": "generated-index", + "title": "changelog-controller", + "slug": "/category/kits/Business Partner Kit/Software Development View/Pool Api/changelog-controller" + }, + "items": [ + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Pool Api/get-changelog-entries", + "label": "Returns changelog entries as of a specified timestamp, optionally filtered by a list of BPNL/S/A, or business partner types", + "className": "api-method post" + } + ] + }, + { + "type": "category", + "label": "bpn-controller", + "link": { + "type": "generated-index", + "title": "bpn-controller", + "slug": "/category/kits/Business Partner Kit/Software Development View/Pool Api/bpn-controller" + }, + "items": [ + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Pool Api/find-bpns-by-identifiers", + "label": "Returns a list of identifier mappings of an identifier to a BPNL/A/S, specified by a business partner type, identifier type and identifier values", + "className": "api-method post" + } + ] + }, + { + "type": "category", + "label": "pool-documentation-controller", + "link": { + "type": "generated-index", + "title": "pool-documentation-controller", + "slug": "/category/kits/Business Partner Kit/Software Development View/Pool Api/pool-documentation-controller" + }, + "items": [ + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Pool Api/get-mermaid-pool-persistence", + "label": "Get mermaid class diagramm for the pool JPA model", + "className": "api-method get" + } + ] + } + ] + }, + { + "type": "category", + "label": "Bridge Dummy API", + "link": { + "type": "generated-index" + }, + "items": [ + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Bridge Dummy Api/business-partner-data-management-bridge-dummy" + }, + { + "type": "category", + "label": "bridge-controller", + "link": { + "type": "generated-index", + "title": "bridge-controller", + "slug": "/category/kits/Business Partner Kit/Software Development View/Bridge Dummy Api/bridge-controller" + }, + "items": [ + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Bridge Dummy Api/trigger-sync", + "label": "Start sync between Gate and Pool", + "className": "api-method post" + } + ] + } + ] + }, + { + "type": "category", + "label": "Cleaning Dummy API", + "link": { + "type": "generated-index" + }, + "items": [ + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Cleaning Dummy Api/business-partner-data-management-cleaning-service-dummy" + } + ] + }, + { + "type": "category", + "label": "Orchestrator API", + "link": { + "type": "generated-index" + }, + "items": [ + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Orchestrator Api/business-partner-data-management-orchestrator" + }, + { + "type": "category", + "label": "Task Client", + "link": { + "type": "generated-index", + "title": "Task Client", + "slug": "/category/kits/Business Partner Kit/Software Development View/Orchestrator Api/task-client" + }, + "items": [ + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Orchestrator Api/create-tasks", + "label": "Create new golden record tasks for given business partner data", + "className": "api-method post" + }, + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Orchestrator Api/search-task-states", + "label": "Search for the state of golden record tasks by task identifiers", + "className": "api-method post" + } + ] + }, + { + "type": "category", + "label": "Task Worker", + "link": { + "type": "generated-index", + "title": "Task Worker", + "slug": "/category/kits/Business Partner Kit/Software Development View/Orchestrator Api/task-worker" + }, + "items": [ + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Orchestrator Api/resolve-step-results", + "label": "Post step results for reserved golden record tasks in the given step queue", + "className": "api-method post" + }, + { + "type": "doc", + "id": "kits/Business Partner Kit/Software Development View/Orchestrator Api/reserve-tasks-for-step", + "label": "Reserve the next golden record tasks waiting in the given step queue", + "className": "api-method post" + } + ] + } + ] + }, + "kits/Business Partner Kit/Software Development View/Use Cases" + ] + }, + { + "type": "category", + "label": "Success Stories", + "link": { + "type": "generated-index" + }, + "items": [ + { + "type": "autogenerated", + "dirName": "kits/Business Partner Kit/Success Stories" + } + ] + }, + { + "type": "category", + "label": "Documentation", + "link": { + "type": "generated-index" + }, + "items": [ + { + "type": "autogenerated", + "dirName": "kits/Business Partner Kit/Documentation BPDM" + } + ] + } + ] + }, + { + "type": "category", + "label": "Connector KIT", + "link": { + "type": "generated-index" + }, + "collapsed": true, + "items": [ + "kits/tractusx-edc/CHANGELOG", + "kits/tractusx-edc/docs/kit/adoption-view/Adoption View", + { + "type": "category", + "label": "Development View", + "link": { + "type": "doc", + "id": "kits/tractusx-edc/docs/kit/operation-view/page10_extensions" + }, + "collapsed": true, + "items": [ + "kits/tractusx-edc/docs/README", + { + "type": "category", + "label": "openAPI", + "collapsed": true, + "items": [ + { + "type": "category", + "label": "management-api-v2-walkthrough", + "collapsed": true, + "items": [ + { + "type": "autogenerated", + "dirName": "kits/tractusx-edc/docs/samples/management-api-v2-walkthrough" + } + ] + }, + { + "type": "autogenerated", + "dirName": "kits/tractusx-edc/docs/kit/development-view/openAPI" + } + ] + }, + { + "type": "category", + "label": "edc-controlplane", + "collapsed": true, + "items": [ + { + "type": "autogenerated", + "dirName": "kits/tractusx-edc/edc-controlplane" + } + ] + }, + { + "type": "category", + "label": "edc-dataplane", + "collapsed": true, + "items": [ + { + "type": "autogenerated", + "dirName": "kits/tractusx-edc/edc-dataplane" + } + ] + }, + { + "type": "category", + "label": "edc-extensions", + "collapsed": true, + "link": { + "type": "doc", + "id": "kits/tractusx-edc/docs/kit/operation-view/page10_extensions" + }, + "items": [ + { + "type": "autogenerated", + "dirName": "kits/tractusx-edc/edc-extensions" + } + ] + }, + "kits/tractusx-edc/core/edr-core/README", + "kits/tractusx-edc/docs/development/Release" + ] + }, + { + "type": "category", + "label": "Operation View", + "link": { + "type": "doc", + "id": "kits/tractusx-edc/docs/kit/operation-view/page00_operation_view" + }, + "collapsed": true, + "items": [ + "kits/tractusx-edc/docs/kit/operation-view/page02_technical_prerequisites", + { + "type": "category", + "label": "Setting up from source", + "collapsed": true, + "items": [ + "kits/tractusx-edc/docs/kit/operation-view/page03_local_setup_controlplane", + "kits/tractusx-edc/docs/kit/operation-view/page04_local_setup_dataplane" + ] + }, + { + "type": "category", + "label": "Deployment via Helm", + "collapsed": true, + "items": [ + { + "type": "autogenerated", + "dirName": "kits/tractusx-edc/charts" + }, + "kits/tractusx-edc/docs/samples/example-dataspace/README", + "kits/tractusx-edc/docs/samples/edr-api-overview/edr-api-overview" + ] + }, + { + "type": "category", + "label": "Test your setup", + "collapsed": true, + "items": [ + "kits/tractusx-edc/docs/development/postman/README", + "kits/tractusx-edc/docs/kit/operation-view/page08_api", + "kits/tractusx-edc/docs/samples/Transfer Data" + ] + }, + { + "type": "category", + "label": "Migration", + "collapsed": true, + "link": { + "type": "doc", + "id": "kits/tractusx-edc/docs/kit/operation-view/page09_upgrading" + }, + "items": [ + { + "type": "autogenerated", + "dirName": "kits/tractusx-edc/docs/migration" + } + ] + } + ] + }, + { + "type": "category", + "label": "Documentation", + "collapsed": true, + "items": [ + "kits/tractusx-edc/docs/kit/development-view/page02_repository_structure", + "kits/tractusx-edc/docs/kit/development-view/page03_project_structure", + "kits/tractusx-edc/docs/development/coding-principles", + "kits/tractusx-edc/pr_etiquette", + "kits/tractusx-edc/styleguide" + ] + } + ] + }, + { + "type": "category", + "label": "Data Chain KIT", + "link": { + "type": "generated-index" + }, + "collapsed": true, + "items": [ + "kits/Data Chain Kit/data chain kit changelog", + "kits/Data Chain Kit/Adoption View Data Chain Kit", + "kits/Data Chain Kit/Operation View", + { + "type": "category", + "label": "Development View", + "link": { + "type": "doc", + "id": "kits/Data Chain Kit/Software Development View/Specification" + }, + "items": [ + { + "type": "autogenerated", + "dirName": "kits/Data Chain Kit/Software Development View/Job Api" + } + ] + }, + { + "type": "category", + "label": "Success Stories", + "items": [ + "kits/Data Chain Kit/Success Stories/Trace-X Sucess Story", + "kits/Data Chain Kit/Success Stories/Circularity Dashboard Sucess Story" + ] + }, + { + "type": "category", + "label": "Documentation", + "items": [ + { + "type": "autogenerated", + "dirName": "kits/Data Chain Kit/Documentation" + } + ] + } + ] + }, + { + "type": "category", + "label": "Digital Twin KIT", + "link": { + "type": "generated-index" + }, + "collapsed": true, + "items": [ + { + "type": "autogenerated", + "dirName": "kits/Digital Twin Kit" + } + ] + }, + { + "type": "category", + "label": "Eco Pass KIT", + "link": { + "type": "generated-index" + }, + "collapsed": true, + "items": [ + { + "type": "autogenerated", + "dirName": "kits/Eco_Pass_KIT" + } + ] + }, + { + "type": "category", + "label": "OSim Kit", + "link": { + "type": "generated-index" + }, + "collapsed": true, + "items": [ + { + "type": "autogenerated", + "dirName": "kits/OSim Kit" + } + ] + }, + { + "type": "category", + "label": "Modular Production Kit", + "link": { + "type": "generated-index" + }, + "collapsed": true, + "items": [ + { + "type": "autogenerated", + "dirName": "kits/Modular Production Kit" + } + ] + }, + { + "type": "category", + "label": "PCF Exchange KIT", + "link": { + "type": "generated-index" + }, + "collapsed": true, + "items": [ + "kits/PCF Exchange Kit/PCF Exchange Kit Changelog", + "kits/PCF Exchange Kit/Adoption View", + "kits/PCF Exchange Kit/Operation View", + { + "type": "category", + "label": "Development View", + "link": { + "type": "generated-index" + }, + "items": [ + "kits/PCF Exchange Kit/Software Development View/Specification", + { + "type": "category", + "label": "PCF Exchange API", + "link": { + "type": "generated-index" + }, + "items": [ + { + "type": "doc", + "id": "kits/PCF Exchange Kit/Software Development View/pcf-exchange-api/catena-x-pcf-request-endpoint" + }, + { + "type": "category", + "label": "PCF Exchange API", + "items": [ + { + "type": "doc", + "id": "kits/PCF Exchange Kit/Software Development View/pcf-exchange-api/get-pcf", + "label": "get_pcf", + "className": "api-method get" + }, + { + "type": "doc", + "id": "kits/PCF Exchange Kit/Software Development View/pcf-exchange-api/set-pcf", + "label": "set_pcf", + "className": "api-method put" + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "category", + "label": "Quality KIT", + "link": { + "type": "generated-index" + }, + "collapsed": true, + "items": [ + { + "type": "autogenerated", + "dirName": "kits/Quality-Kit" + } + ] + }, + { + "type": "category", + "label": "Health Indicator (HI) KIT", + "link": { + "type": "generated-index" + }, + "collapsed": true, + "items": [ + { + "type": "autogenerated", + "dirName": "kits/Behaviour Twin HI Kit" + } + ] + }, + { + "type": "category", + "label": "Remaining Useful Life (RuL) KIT", + "link": { + "type": "generated-index" + }, + "collapsed": true, + "items": [ + { + "type": "autogenerated", + "dirName": "kits/Behaviour Twin RuL Kit" + } + ] + }, + { + "type": "category", + "label": "Model Based Development and Data Processing (MDP) KIT", + "link": { + "type": "generated-index" + }, + "collapsed": true, + "items": [ + { + "type": "autogenerated", + "dirName": "kits/Behaviour Twin MDP Kit" + } + ] + }, + { + "type": "category", + "label": "Traceability KIT", + "link": { + "type": "generated-index" + }, + "collapsed": true, + "items": [ + { + "type": "autogenerated", + "dirName": "kits/Traceability Kit" + } + ] + }, + { + "type": "category", + "label": "Agents Kit", + "link": { + "type": "generated-index" + }, + "collapsed": true, + "items": [ + "kits/knowledge-agents/Knowledge Agent Changelog", + "kits/knowledge-agents/adoption-view/intro", + { + "type": "category", + "label": "Development View", + "link": { + "type": "doc", + "id": "kits/knowledge-agents/development-view/architecture" + }, + "collapsed": true, + "items": [ + "kits/knowledge-agents/development-view/architecture", + "kits/knowledge-agents/development-view/Arc42", + "kits/knowledge-agents/development-view/modules", + "kits/knowledge-agents/development-view/reference", + { + "type": "category", + "label": "API", + "link": { + "type": "doc", + "id": "kits/knowledge-agents/development-view/api" + }, + "collapsed": true, + "items": [ + "kits/knowledge-agents/development-view/api/agent/getAgent", + "kits/knowledge-agents/development-view/api/agent/postAgent", + "kits/knowledge-agents/development-view/api/agent/skill/postSkill" + ] + } + ] + }, + { + "type": "category", + "label": "Operation View", + "link": { + "type": "doc", + "id": "kits/knowledge-agents/operation-view/deployment" + }, + "collapsed": true, + "items": [ + "kits/knowledge-agents/operation-view/deployment", + "kits/knowledge-agents/operation-view/agent_edc", + "kits/knowledge-agents/operation-view/provider", + "kits/knowledge-agents/operation-view/bridge", + "kits/knowledge-agents/operation-view/policy", + "kits/knowledge-agents/operation-view/testbed" + ] + } + ] + }, + { + "type": "category", + "label": "Resiliency", + "link": { + "type": "doc", + "id": "kits/Resiliency/resiliency" + }, + "items": [ + "kits/Resiliency/DCM Kit", + "kits/Resiliency/maas", + "kits/Resiliency/PURIS", + "kits/Resiliency/mp kit" + ] + }, + { + "type": "category", + "label": "Circularity KIT", + "link": { + "type": "doc", + "id": "kits/Circularity_KIT/page-adoption-view" + }, + "items": [ + "kits/Circularity_KIT/Changelog Circularity KIT", + "kits/Circularity_KIT/page-adoption-view" + ] + } + ] +} diff --git a/docs-kits_versions.json b/docs-kits_versions.json index 00ecb0b055c..b7ab780daec 100644 --- a/docs-kits_versions.json +++ b/docs-kits_versions.json @@ -1,4 +1,5 @@ [ + "23.12", "23.09", "3.1.0" ]