diff --git a/.config/owasp-suppressions.xml b/.config/owasp-suppressions.xml index 051a11d32b..d2636c8f4c 100644 --- a/.config/owasp-suppressions.xml +++ b/.config/owasp-suppressions.xml @@ -35,4 +35,11 @@ ^pkg:maven/com.jayway.jsonpath/json-path@2.8.0$ CVE-2023-51074 + + + ^pkg:maven/org.eclipse.edc.connector.core@0.6.0$ + CVE-2024-4536 + \ No newline at end of file diff --git a/.github/workflows/cucumber-integration-test-DIL.yaml b/.github/workflows/cucumber-integration-test-DIL.yaml index b3469503b0..53a8375ab4 100644 --- a/.github/workflows/cucumber-integration-test-DIL.yaml +++ b/.github/workflows/cucumber-integration-test-DIL.yaml @@ -9,7 +9,32 @@ concurrency: cancel-in-progress: true jobs: + + check-config: + runs-on: ubuntu-latest + steps: + - name: Check if DIL_REGULAR_USER_API_KEY is defined + run: | + if [[ -z "${{ secrets.DIL_REGULAR_USER_API_KEY }}" ]]; then + echo "Error: Missing secret: Please configure DIL_REGULAR_USER_API_KEY." + exit 1 + fi + - name: Check if DIL_ADMIN_USER_API_KEY is defined + run: | + if [[ -z "${{ secrets.DIL_ADMIN_USER_API_KEY }}" ]]; then + echo "Error: Missing secret: Please configure DIL_ADMIN_USER_API_KEY." + exit 1 + fi + - name: Check if IRS_CUCUMBER_PUBLISH_TOKEN is defined + run: | + if [[ -z "${{ secrets.IRS_CUCUMBER_PUBLISH_TOKEN }}" ]]; then + echo "Error: Missing secret: Please configure IRS_CUCUMBER_PUBLISH_TOKEN." + exit 1 + fi + shell: bash + trigger-integration-test: + needs: check-config uses: ./.github/workflows/cucumber-integration-test.yaml secrets: regularUserApiKey: ${{ secrets.DIL_REGULAR_USER_API_KEY }} diff --git a/.github/workflows/cucumber-integration-test-INT.yaml b/.github/workflows/cucumber-integration-test-INT.yaml index 4e0ead9325..85ac6f3e04 100644 --- a/.github/workflows/cucumber-integration-test-INT.yaml +++ b/.github/workflows/cucumber-integration-test-INT.yaml @@ -9,7 +9,32 @@ concurrency: cancel-in-progress: true jobs: + + check-config: + runs-on: ubuntu-latest + steps: + - name: Check if INT_REGULAR_USER_API_KEY is defined + run: | + if [[ -z "${{ secrets.INT_REGULAR_USER_API_KEY }}" ]]; then + echo "Error: Missing secret: Please configure INT_REGULAR_USER_API_KEY." + exit 1 + fi + - name: Check if INT_ADMIN_USER_API_KEY is defined + run: | + if [[ -z "${{ secrets.INT_ADMIN_USER_API_KEY }}" ]]; then + echo "Error: Missing secret: Please configure INT_ADMIN_USER_API_KEY." + exit 1 + fi + - name: Check if IRS_CUCUMBER_PUBLISH_TOKEN is defined + run: | + if [[ -z "${{ secrets.IRS_CUCUMBER_PUBLISH_TOKEN }}" ]]; then + echo "Error: Missing secret: Please configure IRS_CUCUMBER_PUBLISH_TOKEN." + exit 1 + fi + shell: bash + trigger-integration-test: + needs: check-config uses: ./.github/workflows/cucumber-integration-test.yaml secrets: regularUserApiKey: ${{ secrets.INT_REGULAR_USER_API_KEY }} diff --git a/.github/workflows/cucumber-integration-test.yaml b/.github/workflows/cucumber-integration-test.yaml index 6e417a74fe..07c7953ea1 100644 --- a/.github/workflows/cucumber-integration-test.yaml +++ b/.github/workflows/cucumber-integration-test.yaml @@ -15,6 +15,7 @@ on: type: string jobs: + build: runs-on: ubuntu-latest @@ -40,9 +41,16 @@ jobs: ADMIN_USER_API_KEY: ${{ secrets.adminUserApiKey }} ISSUE_FILTER: ${{ inputs.executionFilter }} CUCUMBER_PUBLISH_TOKEN: ${{ secrets.cucumberPublishToken }} - # workaround replacement since injecting the token via environment variable does not work run: | - sed -i "s/CUCUMBER_TOKEN_IRS_PLACEHOLDER/${CUCUMBER_PUBLISH_TOKEN}/g" irs-cucumber-tests/src/test/java/org/eclipse/tractusx/irs/cucumber/RunCucumberTest.java + if [ -z "${{ secrets.cucumberPublishToken }}" ]; then + echo "Publish cucumber report disabled" + sed -i "s/PUBLISH_ENABLED_FLAG/false/g" irs-cucumber-tests/src/test/java/org/eclipse/tractusx/irs/cucumber/RunCucumberTest.java + else + echo "Publish cucumber report enabled" + sed -i "s/PUBLISH_ENABLED_FLAG/true/g" irs-cucumber-tests/src/test/java/org/eclipse/tractusx/irs/cucumber/RunCucumberTest.java + # workaround replacement since injecting the token via environment variable does not work + sed -i "s/CUCUMBER_TOKEN_IRS_PLACEHOLDER/${CUCUMBER_PUBLISH_TOKEN}/g" irs-cucumber-tests/src/test/java/org/eclipse/tractusx/irs/cucumber/RunCucumberTest.java + fi mvn clean verify -P cucumber -Dgroups="$ISSUE_FILTER" -pl irs-cucumber-tests -am --batch-mode 2> irs-cucumber-tests/report-banner.txt diff --git a/.github/workflows/int-setup-testdata.yml b/.github/workflows/int-setup-testdata.yml deleted file mode 100644 index c97771b16d..0000000000 --- a/.github/workflows/int-setup-testdata.yml +++ /dev/null @@ -1,84 +0,0 @@ -name: Integration testdata setup - -on: - workflow_dispatch: - inputs: - testfilePath: - description: 'Path to Testdata file on GitHub' - required: true - type: string - submodelUrls: - description: 'Space-separated list of Submodel server URLs' - required: true - type: string - aasUrl: - description: 'Digital twin registry URL' - required: true - type: string - edcUrls: - description: 'Space-separated list of Provider control plane URLs' - required: true - type: string - edcApiKey: - description: 'API-Key for the provider control plane' - required: true - type: string - esrUrl: - description: 'ESR endpoint Url' - required: false - type: string - -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: setup python - uses: actions/setup-python@v5 - with: - python-version: 3.8 #install the python needed - cache: 'pip' - - run: pip install -r local/testing/testdata/requirements.txt - - - name: Delete existing and setup new test data on provider EDC and Registry - if: ${{ github.event.inputs.esrUrl == '' }} - env: - TESTFILE_PATH: ${{ github.event.inputs.testfilePath }} - SUBMODEL_URLs: ${{ github.event.inputs.submodelUrls }} - AAS_URL: ${{ github.event.inputs.aasUrl }} - EDC_URLs: ${{ github.event.inputs.edcUrls }} - EDC_API_KEY: ${{ github.event.inputs.edcApiKey }} - run: | - python local/testing/testdata/reset-env.py \ - -a $AAS_URL \ - -edc $EDC_URLs \ - -k $EDC_API_KEY - python local/testing/testdata/transform-and-upload.py \ - -f $TESTFILE_PATH \ - -s $SUBMODEL_URLs \ - -a $AAS_URL \ - -edc $EDC_URLs \ - -k $EDC_API_KEY - - - name: Delete existing and setup new test data on provider EDC and Registry - if: ${{ github.event.inputs.esrUrl != '' }} - env: - TESTFILE_PATH: ${{ github.event.inputs.testfilePath }} - SUBMODEL_URLs: ${{ github.event.inputs.submodelUrls }} - AAS_URL: ${{ github.event.inputs.aasUrl }} - EDC_URLs: ${{ github.event.inputs.edcUrls }} - EDC_API_KEY: ${{ github.event.inputs.edcApiKey }} - ESR_URL: ${{ github.event.inputs.esrUrl }} - run: | - python local/testing/testdata/reset-env.py \ - -a $AAS_URL \ - -edc $EDC_URLs \ - -k $EDC_API_KEY - python local/testing/testdata/transform-and-upload.py \ - -f $TESTFILE_PATH \ - -s $SUBMODEL_URLs \ - -a $AAS_URL \ - -edc $EDC_URLs \ - -k $EDC_API_KEY - -e $ESR_URL diff --git a/.github/workflows/integration-test-DEV.yaml b/.github/workflows/integration-test-DEV.yaml index d2498bb84d..f314ec76b1 100644 --- a/.github/workflows/integration-test-DEV.yaml +++ b/.github/workflows/integration-test-DEV.yaml @@ -2,6 +2,11 @@ name: IRS DEV Cucumber Integration test execution on: workflow_dispatch: # Trigger manually + inputs: + executionFilter: + description: 'Execution filter' + required: false + default: '!Ignore & !INACTIVE & INTEGRATION_TEST & DEV' push: branches: - 'main' @@ -19,12 +24,40 @@ concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true + + + jobs: + + check-config: + runs-on: ubuntu-latest + steps: + - name: Check if DEV_REGULAR_USER_API_KEY is defined + run: | + if [[ -z "${{ secrets.DEV_REGULAR_USER_API_KEY }}" ]]; then + echo "Error: Missing secret: Please configure DEV_REGULAR_USER_API_KEY." + exit 1 + fi + - name: Check if DEV_ADMIN_USER_API_KEY is defined + run: | + if [[ -z "${{ secrets.DEV_ADMIN_USER_API_KEY }}" ]]; then + echo "Error: Missing secret: Please configure DEV_ADMIN_USER_API_KEY." + exit 1 + fi + - name: Check if IRS_CUCUMBER_PUBLISH_TOKEN is defined + run: | + if [[ -z "${{ secrets.IRS_CUCUMBER_PUBLISH_TOKEN }}" ]]; then + echo "Error: Missing secret: Please configure IRS_CUCUMBER_PUBLISH_TOKEN." + exit 1 + fi + shell: bash + trigger-integration-test: + needs: check-config uses: ./.github/workflows/cucumber-integration-test.yaml secrets: regularUserApiKey: ${{ secrets.DEV_REGULAR_USER_API_KEY }} adminUserApiKey: ${{ secrets.DEV_ADMIN_USER_API_KEY }} cucumberPublishToken: ${{ secrets.IRS_CUCUMBER_PUBLISH_TOKEN }} with: - executionFilter: "!Ignore & !INACTIVE & INTEGRATION_TEST & DEV" + executionFilter: ${{ github.event.inputs.executionFilter || '!Ignore & !INACTIVE & INTEGRATION_TEST & DEV' }} diff --git a/.github/workflows/irs-build.yml b/.github/workflows/irs-build.yml index 662f321822..c35a59c501 100644 --- a/.github/workflows/irs-build.yml +++ b/.github/workflows/irs-build.yml @@ -19,8 +19,20 @@ on: tags: - '**' - jobs: + init: + runs-on: ubuntu-latest + outputs: + image_namespace: tractusx + image_name: irs-api + docker_hub_user: ${{ secrets.DOCKER_HUB_USER }} + # In order to skip sonar if not configured + sonar_configured: ${{ secrets.SONAR_TOKEN != '' && secrets.SONAR_PROJECT_KEY != '' && secrets.SONAR_ORGANIZATION != '' }} + steps: + - run: | + echo "Preparing variables" + echo "sonar_configured: ${{ secrets.SONAR_TOKEN != '' && secrets.SONAR_PROJECT_KEY != '' && secrets.SONAR_ORGANIZATION != '' }}" + build: runs-on: ubuntu-latest steps: @@ -45,10 +57,12 @@ jobs: mvn clean verify --batch-mode analyze_with_Sonar: + needs: [init] # No need to run if we cannot use the sonar token if: >- - (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) && - github.actor != 'dependabot[bot]' + needs.init.outputs.sonar_configured == 'true' + && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) + && github.actor != 'dependabot[bot]' runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -86,6 +100,7 @@ jobs: -Dcheckstyle.skip -Dpmd.skip=true build_images: + needs: [init] strategy: matrix: image: @@ -116,66 +131,30 @@ jobs: echo VERSION=$VERSION echo "::set-output name=image_tag::$VERSION" - - name: Log in to registry - env: - DOCKER_HUB_USER: ${{ secrets.DOCKER_HUB_USER }} - if: >- - env.DOCKER_HUB_USER == '' && - (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) && - github.actor != 'dependabot[bot]' - # This is where you will update the PAT to GITHUB_TOKEN - run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin - - - name: Push image (GHCR) - env: - DOCKER_HUB_USER: ${{ secrets.DOCKER_HUB_USER }} - if: >- - env.DOCKER_HUB_USER == '' && - (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) && - github.actor != 'dependabot[bot]' - run: | - IMAGE_ID=ghcr.io/${{ github.repository_owner }}/${{ matrix.image }} - # Change all uppercase to lowercase - IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') - echo IMAGE_ID=$IMAGE_ID - - docker tag ${{ matrix.image }} $IMAGE_ID:${{ steps.version.outputs.image_tag }} - docker push $IMAGE_ID:${{ steps.version.outputs.image_tag }} - - docker tag ${{ matrix.image }} $IMAGE_ID:$GITHUB_SHA - docker push $IMAGE_ID:$GITHUB_SHA - - name: Login to Docker Hub - env: - DOCKER_HUB_USER: ${{ secrets.DOCKER_HUB_USER }} - if: env.DOCKER_HUB_USER != '' + if: needs.init.outputs.docker_hub_user != '' uses: docker/login-action@v3 with: username: ${{ secrets.DOCKER_HUB_USER }} password: ${{ secrets.DOCKER_HUB_TOKEN }} - name: Push image (DockerHub) - env: - DOCKER_HUB_USER: ${{ secrets.DOCKER_HUB_USER }} - IMAGE_NAMESPACE: tractusx - IMAGE_NAME: irs-api - if: env.DOCKER_HUB_USER != '' + if: needs.init.outputs.docker_hub_user != '' && github.event_name != 'pull_request' run: | - docker tag ${{ matrix.image }} ${{ env.IMAGE_NAMESPACE }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.image_tag }} - docker push ${{ env.IMAGE_NAMESPACE }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.image_tag }} + docker tag ${{ matrix.image }} ${{ needs.init.outputs.image_namespace }}/${{ needs.init.outputs.image_name }}:${{ steps.version.outputs.image_tag }} + docker push ${{ needs.init.outputs.image_namespace }}/${{ needs.init.outputs.image_name }}:${{ steps.version.outputs.image_tag }} + + docker tag ${{ matrix.image }} $IMAGE_ID:$GITHUB_SHA + docker push $IMAGE_ID:$GITHUB_SHA # https://github.com/peter-evans/dockerhub-description - name: Update Docker Hub description - env: - DOCKER_HUB_USER: ${{ secrets.DOCKER_HUB_USER }} - IMAGE_NAMESPACE: tractusx - IMAGE_NAME: irs-api - if: env.DOCKER_HUB_USER != '' && github.event_name != 'pull_request' + if: needs.init.outputs.docker_hub_user != '' && github.event_name != 'pull_request' uses: peter-evans/dockerhub-description@v4 with: username: ${{ secrets.DOCKER_HUB_USER }} password: ${{ secrets.DOCKER_HUB_TOKEN }} - repository: ${{ env.IMAGE_NAMESPACE }}/${{ env.IMAGE_NAME }} + repository: ${{ needs.init.outputs.image_namespace }}/${{ needs.init.outputs.image_name }} readme-filepath: ./DOCKER_NOTICE.md trigger-trivy-image-scan: @@ -184,3 +163,4 @@ jobs: needs: - build_images uses: ./.github/workflows/trivy-docker-hub-scan.yml + diff --git a/.github/workflows/irs-load-test.yaml b/.github/workflows/irs-load-test.yaml index 25fa75c633..8c3166c594 100644 --- a/.github/workflows/irs-load-test.yaml +++ b/.github/workflows/irs-load-test.yaml @@ -19,7 +19,32 @@ on: required: false jobs: + + check-config: + runs-on: ubuntu-latest + steps: + - name: Check if OAUTH2_CLIENT_TOKEN_URI is defined + run: | + if [[ -z "${{ secrets.OAUTH2_CLIENT_TOKEN_URI }}" ]]; then + echo "Error: Missing secret: Please configure OAUTH2_CLIENT_TOKEN_URI." + exit 1 + fi + - name: Check if OAUTH2_CLIENT_SECRET is defined + run: | + if [[ -z "${{ secrets.OAUTH2_CLIENT_SECRET }}" ]]; then + echo "Error: Missing secret: Please configure OAUTH2_CLIENT_SECRET." + exit 1 + fi + - name: Check if OAUTH2_CLIENT_ID is defined + run: | + if [[ -z "${{ secrets.OAUTH2_CLIENT_ID }}" ]]; then + echo "Error: Missing secret: Please configure OAUTH2_CLIENT_ID." + exit 1 + fi + shell: bash + gatling-test: + needs: check-config runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/owasp.yml b/.github/workflows/owasp.yml index 7fc31acbcf..6fb83925ab 100644 --- a/.github/workflows/owasp.yml +++ b/.github/workflows/owasp.yml @@ -1,6 +1,8 @@ name: "OWASP dependency scanner" on: + workflow_dispatch: # Additionally allow to trigger manually + push: branches: main paths-ignore: diff --git a/.github/workflows/int-test-automation.yml b/.github/workflows/smoketest.yml similarity index 97% rename from .github/workflows/int-test-automation.yml rename to .github/workflows/smoketest.yml index d9ac02bdff..e648281acb 100644 --- a/.github/workflows/int-test-automation.yml +++ b/.github/workflows/smoketest.yml @@ -1,4 +1,4 @@ -name: IRS integration tests +name: IRS smoke tests on: workflow_dispatch: diff --git a/.github/workflows/trivy-image-scan.yml b/.github/workflows/trivy-image-scan.yml index bfaf93381d..f815896ca5 100644 --- a/.github/workflows/trivy-image-scan.yml +++ b/.github/workflows/trivy-image-scan.yml @@ -59,9 +59,11 @@ jobs: image-ref: "localhost:5000/irs-api:testing" format: "sarif" output: "trivy-results2.sarif" - exit-code: "1" + exit-code: "1" # Trivy exits with code 1 if vulnerabilities are found, causing the workflow step to fail. severity: "CRITICAL,HIGH" trivyignores: .config/.trivyignore + limit-severities-for-sarif: true + - name: Upload Trivy scan results to GitHub Security tab if: always() diff --git a/CHANGELOG.md b/CHANGELOG.md index 47c1cd3419..874cac105c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,10 +8,23 @@ _**For better traceability add the corresponding GitHub issue number in each cha ## [Unreleased] +## [5.1.9] - 2024-06-27 + +### Added + +- soemthing was added + +### Changed + +- and something else was changed + +## [5.1.5] - 2024-06-27 + ### Fixed - Fixed ESS Investigation job processing not starting #579 - Policy store API returns 'rightOperand' without 'odrl:' prefix now (see traceability-foss/issues/970). +- Fixed trivy workflow to fail only on CRITICAL, HIGH (according to https://github.com/eclipse-tractusx/eclipse-tractusx.github.io/pull/949/files). ### Changed @@ -697,7 +710,9 @@ _**For better traceability add the corresponding GitHub issue number in each cha - **Select Aspects you need** You are able to select the needed aspects for which you want to collect the correct endpoint information. -[Unreleased]: https://github.com/eclipse-tractusx/item-relationship-service/compare/5.1.4...HEAD +[Unreleased]: https://github.com/eclipse-tractusx/item-relationship-service/compare/5.1.9...HEAD +[5.1.9]: https://github.com/eclipse-tractusx/item-relationship-service/compare/5.1.5...5.1.9 +[5.1.5]: https://github.com/eclipse-tractusx/item-relationship-service/compare/5.1.4...5.1.5 [5.1.4]: https://github.com/eclipse-tractusx/item-relationship-service/compare/5.1.3...5.1.4 [5.1.3]: https://github.com/eclipse-tractusx/item-relationship-service/compare/5.1.2...5.1.3 [5.1.2]: https://github.com/eclipse-tractusx/item-relationship-service/compare/5.1.1...5.1.2 diff --git a/DEPENDENCIES b/DEPENDENCIES index d6c721bf7f..d105b524ec 100644 --- a/DEPENDENCIES +++ b/DEPENDENCIES @@ -305,12 +305,12 @@ maven/mavencentral/org.eclipse.tractusx.edc/core-spi/0.6.0, Apache-2.0, approved maven/mavencentral/org.eclipse.tractusx.edc/edr-api/0.6.0, Apache-2.0, approved, automotive.tractusx maven/mavencentral/org.eclipse.tractusx.edc/edr-spi/0.6.0, Apache-2.0, approved, automotive.tractusx maven/mavencentral/org.eclipse.tractusx.irs/irs-api/0.0.2-SNAPSHOT, Apache-2.0, approved, automotive.tractusx -maven/mavencentral/org.eclipse.tractusx.irs/irs-common/2.1.0-SNAPSHOT, Apache-2.0, approved, automotive.tractusx -maven/mavencentral/org.eclipse.tractusx.irs/irs-edc-client/2.1.0-SNAPSHOT, Apache-2.0, approved, automotive.tractusx -maven/mavencentral/org.eclipse.tractusx.irs/irs-models/2.1.0-SNAPSHOT, Apache-2.0, approved, automotive.tractusx +maven/mavencentral/org.eclipse.tractusx.irs/irs-common/2.1.2-SNAPSHOT, Apache-2.0, approved, automotive.tractusx +maven/mavencentral/org.eclipse.tractusx.irs/irs-edc-client/2.1.2-SNAPSHOT, Apache-2.0, approved, automotive.tractusx +maven/mavencentral/org.eclipse.tractusx.irs/irs-models/2.1.2-SNAPSHOT, Apache-2.0, approved, automotive.tractusx maven/mavencentral/org.eclipse.tractusx.irs/irs-policy-store/0.0.2-SNAPSHOT, Apache-2.0, approved, automotive.tractusx -maven/mavencentral/org.eclipse.tractusx.irs/irs-registry-client/2.1.0-SNAPSHOT, Apache-2.0, approved, automotive.tractusx -maven/mavencentral/org.eclipse.tractusx.irs/irs-testing/2.1.0-SNAPSHOT, Apache-2.0, approved, automotive.tractusx +maven/mavencentral/org.eclipse.tractusx.irs/irs-registry-client/2.1.2-SNAPSHOT, Apache-2.0, approved, automotive.tractusx +maven/mavencentral/org.eclipse.tractusx.irs/irs-testing/2.1.2-SNAPSHOT, Apache-2.0, approved, automotive.tractusx maven/mavencentral/org.glassfish/jakarta.json/2.0.1, EPL-2.0 OR GPL-2.0-only with Classpath-exception-2.0, approved, ee4j.jsonp maven/mavencentral/org.hamcrest/hamcrest-core/2.2, BSD-3-Clause, approved, clearlydefined maven/mavencentral/org.hamcrest/hamcrest/2.2, BSD-3-Clause, approved, clearlydefined diff --git a/TESTS.md b/TESTS.md index b7e9059acd..e19b86d9bc 100644 --- a/TESTS.md +++ b/TESTS.md @@ -47,7 +47,7 @@ Wiremock Tests and their corresponding utilities are marked by the suffix `Wirem ### Smoke Tests - The smoke test can be found under `irs-integration-tests/src/test/java/org/eclipse/tractusx/irs/smoketest/ItemGraphSmokeTest.java`. -- It is executed via the GitHub workflow [IRS integration tests](.github/workflows/int-test-automation.yml). +- It is executed via the GitHub workflow [IRS integration tests](.github/workflows/smoketest.yml). ### Regression Tests diff --git a/charts/item-relationship-service/CHANGELOG.md b/charts/item-relationship-service/CHANGELOG.md index 3392764545..e5ab1537f2 100644 --- a/charts/item-relationship-service/CHANGELOG.md +++ b/charts/item-relationship-service/CHANGELOG.md @@ -6,6 +6,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [7.1.9] - 2024-06-27 + +### Changed + +- Update IRS version to 5.1.9 + +## [7.1.5] - 2024-06-27 + +### Changed + +- Update IRS version to 5.1.5 + ## [7.1.4] - 2024-05-27 diff --git a/charts/item-relationship-service/Chart.yaml b/charts/item-relationship-service/Chart.yaml index 5eb5360ab9..c93fb20be5 100644 --- a/charts/item-relationship-service/Chart.yaml +++ b/charts/item-relationship-service/Chart.yaml @@ -35,12 +35,12 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 7.1.4 +version: 7.1.9 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. # It is recommended to use it with quotes. -appVersion: "5.1.4" +appVersion: "5.1.9" dependencies: - name: common repository: https://charts.bitnami.com/bitnami diff --git a/docs/src/api/irs-api.yaml b/docs/src/api/irs-api.yaml index 8580810ea0..a848b8b5fb 100644 --- a/docs/src/api/irs-api.yaml +++ b/docs/src/api/irs-api.yaml @@ -1,18 +1,16 @@ openapi: 3.0.1 info: - description: The API of the Item Relationship Service (IRS) for retrieving item - graphs along the value chain of CATENA-X partners. + 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: 5.1.4 + version: 5.1.9 servers: -- url: http://localhost:8080 + - url: http://localhost:8080 security: -- api_key: [] + - api_key: [] paths: /ess/bpn/investigations: post: - description: 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. operationId: registerBPNInvestigation requestBody: content: @@ -58,24 +56,23 @@ paths: $ref: '#/components/schemas/ErrorResponse' description: Authorization refused by server. security: - - api_key: [] - summary: Registers an IRS job to start an investigation if a given bpn is contained - in a part chain of a given globalAssetId. + - api_key: [] + summary: Registers an IRS job to start an investigation if a given bpn is contained in a part chain of a given globalAssetId. tags: - - Environmental and Social Standards + - Environmental and Social Standards /ess/bpn/investigations/{id}: get: 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 + - 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: @@ -123,14 +120,13 @@ paths: $ref: '#/components/schemas/ErrorResponse' description: Job with the requested jobId not found. security: - - api_key: [] + - api_key: [] summary: Return job with additional supplyChainImpacted information. tags: - - Environmental and Social Standards + - Environmental and Social Standards /ess/notification/receive: post: - description: Accepts notifications via EDC. Notifications are filtered by their - type and processed accordingly. + description: Accepts notifications via EDC. Notifications are filtered by their type and processed accordingly. operationId: receiveEdcNotification requestBody: content: @@ -152,7 +148,7 @@ paths: description: Notification malformed. summary: Accepts notifications sent via EDC. tags: - - Environmental and Social Standards + - Environmental and Social Standards /irs/aspectmodels: get: description: Get all available aspect models from semantic hub or local models. @@ -186,14 +182,13 @@ paths: $ref: '#/components/schemas/ErrorResponse' description: Authorization refused by server. security: - - api_key: [] + - api_key: [] summary: Get all available aspect models from semantic hub or local models. tags: - - Aspect Models + - Aspect Models /irs/ess/orders: post: - description: "Registers an order for an ESS investigation with an array of {globalAssetIds}.\ - \ Each globalAssetId will be processed in an separate job, grouped in batches." + description: "Registers an order for an ESS investigation with an array of {globalAssetIds}. Each globalAssetId will be processed in an separate job, grouped in batches." operationId: registerESSInvestigationOrder requestBody: content: @@ -239,65 +234,62 @@ paths: $ref: '#/components/schemas/ErrorResponse' description: Authorization refused by server. security: - - api_key: [] - summary: "Registers an order for an ESS investigation with an array of {globalAssetIds}.\ - \ Each globalAssetId will be processed in an separate job, grouped in batches." + - api_key: [] + summary: "Registers an order for an ESS investigation with an array of {globalAssetIds}. Each globalAssetId will be processed in an separate job, grouped in batches." tags: - - Environmental and Social Standards + - Environmental and Social Standards /irs/jobs: get: 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 - required: false - schema: - type: integer - default: 0 - - description: The size of the page to be returned - in: query - name: size - required: false - 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 - required: false - schema: - type: array - items: - type: string + - 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 + required: false + schema: + type: integer + default: 0 + - description: The size of the page to be returned + in: query + name: size + required: false + 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 + required: false + schema: + type: array + items: + type: string responses: "200": content: application/json: schema: $ref: '#/components/schemas/PageResult' - description: Paginated list of jobs with state and execution times for requested - job states. + description: Paginated list of jobs with state and execution times for requested job states. "400": content: application/json: @@ -326,10 +318,10 @@ paths: $ref: '#/components/schemas/ErrorResponse' description: Authorization refused by server. security: - - api_key: [] + - api_key: [] summary: Returns paginated jobs with state and execution times. tags: - - Item Relationship Service + - Item Relationship Service post: description: "Register an IRS job to retrieve an item graph for given {globalAssetId}." operationId: registerJobForGlobalAssetId @@ -377,34 +369,32 @@ paths: $ref: '#/components/schemas/ErrorResponse' description: Authorization refused by server. security: - - api_key: [] + - api_key: [] summary: "Register an IRS job to retrieve an item graph for given {globalAssetId}." tags: - - Item Relationship Service + - Item Relationship Service /irs/jobs/{id}: get: 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 COMPLETED, otherwise\ - \ job." - in: query - name: returnUncompletedJob - required: false - schema: - type: boolean - default: true + - 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 COMPLETED, otherwise job." + in: query + name: returnUncompletedJob + required: false + schema: + type: boolean + default: true responses: "200": content: @@ -423,8 +413,7 @@ paths: $ref: '#/components/examples/partial-job-result' schema: $ref: '#/components/schemas/Jobs' - description: Return job with current processed item graph for the requested - id. + description: Return job with current processed item graph for the requested id. "400": content: application/json: @@ -462,24 +451,24 @@ paths: $ref: '#/components/schemas/ErrorResponse' description: Job with the requested jobId not found. security: - - api_key: [] + - api_key: [] summary: Return job with optional item graph result for requested id. tags: - - Item Relationship Service + - Item Relationship Service put: 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 + - 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: @@ -527,14 +516,13 @@ paths: $ref: '#/components/schemas/ErrorResponse' description: Job for requested jobId not found. security: - - api_key: [] + - api_key: [] summary: Cancel job for requested jobId. tags: - - Item Relationship Service + - Item Relationship Service /irs/orders: post: - description: "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." operationId: registerOrder requestBody: content: @@ -580,26 +568,25 @@ paths: $ref: '#/components/schemas/ErrorResponse' description: Authorization refused by server. security: - - api_key: [] - summary: "Registers an IRS order with an array of {globalAssetIds}. Each globalAssetId\ - \ will be processed in an IRS Job, grouped in batches." + - api_key: [] + summary: "Registers an IRS order with an array of {globalAssetIds}. Each globalAssetId will be processed in an IRS Job, grouped in batches." tags: - - Item Relationship Service + - Item Relationship Service /irs/orders/{orderId}: get: 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 + - 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: @@ -647,24 +634,24 @@ paths: $ref: '#/components/schemas/ErrorResponse' description: Batch Order with the requested orderId not found. security: - - api_key: [] + - api_key: [] summary: Get a batch order for a given orderId. tags: - - Item Relationship Service + - Item Relationship Service put: 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 + - 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: @@ -712,35 +699,35 @@ paths: $ref: '#/components/schemas/ErrorResponse' description: Batch Order with the requested orderId not found. security: - - api_key: [] + - api_key: [] summary: Cancel a batch order for a given orderId. tags: - - Item Relationship Service + - Item Relationship Service /irs/orders/{orderId}/batches/{batchId}: get: 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 + - 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: @@ -788,51 +775,51 @@ paths: $ref: '#/components/schemas/ErrorResponse' description: Batch with the requested orderId and batchId not found. security: - - api_key: [] + - api_key: [] summary: Get a batch with a given batchId for a given orderId. tags: - - Item Relationship Service + - Item Relationship Service /irs/policies: get: description: Lists the registered policies that should be accepted in EDC negotiation. operationId: getAllowedPoliciesByBpn parameters: - - description: List of business partner numbers. - in: query - name: businessPartnerNumbers - required: false - schema: - type: array - items: - type: string + - description: List of business partner numbers. + in: query + name: businessPartnerNumbers + required: false + schema: + type: array + items: + type: string responses: "200": content: application/json: example: BPNL1234567890AB: - - validUntil: 2025-12-12T23:59:59.999Z - payload: - '@context': - odrl: http://www.w3.org/ns/odrl/2/ - '@id': e917f5f-8dac-49ac-8d10-5b4d254d2b48 - policy: - policyId: e917f5f-8dac-49ac-8d10-5b4d254d2b48 - createdOn: 2024-03-28T03:34:42.9454448Z - validUntil: 2025-12-12T23:59:59.999Z - permissions: - - action: use - constraint: - and: - - leftOperand: Membership - operator: - '@id': eq - rightOperand: active - - leftOperand: PURPOSE - operator: - '@id': eq - rightOperand: ID 3.1 Trace - or: null + - validUntil: 2025-12-12T23:59:59.999Z + payload: + '@context': + odrl: http://www.w3.org/ns/odrl/2/ + '@id': e917f5f-8dac-49ac-8d10-5b4d254d2b48 + policy: + policyId: e917f5f-8dac-49ac-8d10-5b4d254d2b48 + createdOn: 2024-03-28T03:34:42.9454448Z + validUntil: 2025-12-12T23:59:59.999Z + permissions: + - action: use + constraint: + and: + - leftOperand: Membership + operator: + '@id': eq + rightOperand: active + - leftOperand: PURPOSE + operator: + '@id': eq + rightOperand: ID 3.1 Trace + or: null BPNA1234567890DF: [] schema: type: string @@ -857,10 +844,10 @@ paths: $ref: '#/components/schemas/ErrorResponse' description: Authorization refused by server. security: - - api_key: [] + - api_key: [] summary: Lists the registered policies that should be accepted in EDC negotiation. tags: - - Item Relationship Service + - Item Relationship Service post: description: Register a policy that should be accepted in EDC negotiation. operationId: registerAllowedPolicy @@ -914,10 +901,10 @@ paths: $ref: '#/components/schemas/ErrorResponse' description: Policy registration failed due to an internal error. security: - - api_key: [] + - api_key: [] summary: Register a policy that should be accepted in EDC negotiation. tags: - - Item Relationship Service + - Item Relationship Service put: description: Updates existing policies. operationId: updateAllowedPolicy @@ -967,20 +954,20 @@ paths: $ref: '#/components/schemas/ErrorResponse' description: Updating policies failed due to an internal error. security: - - api_key: [] + - api_key: [] summary: Updates existing policies. tags: - - Item Relationship Service + - Item Relationship Service /irs/policies/{policyId}: delete: description: Removes a policy that should no longer be accepted in EDC negotiation. operationId: deleteAllowedPolicy parameters: - - in: path - name: policyId - required: true - schema: - type: string + - in: path + name: policyId + required: true + schema: + type: string responses: "200": description: OK @@ -1012,27 +999,26 @@ paths: $ref: '#/components/schemas/ErrorResponse' description: Authorization refused by server. security: - - api_key: [] + - api_key: [] summary: Removes a policy that should no longer be accepted in EDC negotiation. tags: - - Item Relationship Service + - Item Relationship Service /irs/policies/{policyId}/bpnl/{bpnl}: delete: - description: Removes a policy from BPNL that should no longer be accepted in - EDC negotiation. + description: Removes a policy from BPNL that should no longer be accepted in EDC negotiation. operationId: removeAllowedPolicyFromBpnl parameters: - - in: path - name: policyId - required: true - schema: - type: string - - in: path - name: bpnl - required: true - schema: - type: string - pattern: "(BPN)[LSA][\\w\\d]{10}[\\w\\d]{2}" + - in: path + name: policyId + required: true + schema: + type: string + - in: path + name: bpnl + required: true + schema: + type: string + pattern: "(BPN)[LSA][\\w\\d]{10}[\\w\\d]{2}" responses: "200": description: OK @@ -1064,27 +1050,26 @@ paths: $ref: '#/components/schemas/ErrorResponse' description: Authorization refused by server. security: - - api_key: [] - summary: Removes a policy from BPNL that should no longer be accepted in EDC - negotiation. + - api_key: [] + summary: Removes a policy from BPNL that should no longer be accepted in EDC negotiation. tags: - - Item Relationship Service + - Item Relationship Service components: examples: aspect-models-list: value: lastUpdated: 2023-02-13T08:18:11.990659500Z models: - - name: SingleLevelBomAsBuilt - status: RELEASED - type: SAMM - urn: urn:samm:io.catenax.single_level_bom_as_built:3.0.0#SingleLevelBomAsBuilt - version: 3.0.0 - - name: SerialPart - status: RELEASED - type: SAMM - urn: urn:samm:io.catenax.serial_part:3.0.0#SerialPart - version: 3.0.0 + - name: SingleLevelBomAsBuilt + status: RELEASED + type: SAMM + urn: urn:samm:io.catenax.single_level_bom_as_built:3.0.0#SingleLevelBomAsBuilt + version: 3.0.0 + - name: SerialPart + status: RELEASED + type: SAMM + urn: urn:samm:io.catenax.serial_part:3.0.0#SerialPart + version: 3.0.0 canceled-job-response: value: completedOn: 2022-02-03T14:48:54.709Z @@ -1108,8 +1093,8 @@ components: lastModifiedOn: 2022-02-03T14:48:54.709Z parameter: aspects: - - urn:samm:io.catenax.single_level_bom_as_built:3.0.0#SingleLevelBomAsBuilt - - urn:samm:io.catenax.serial_part:3.0.0#SerialPart + - urn:samm:io.catenax.single_level_bom_as_built:3.0.0#SingleLevelBomAsBuilt + - urn:samm:io.catenax.serial_part:3.0.0#SerialPart auditContractNegotiation: false bomLifecycle: asBuilt collectAspects: false @@ -1134,10 +1119,10 @@ components: 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 + - 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 @@ -1145,8 +1130,8 @@ components: complete-ess-job-result: value: bpns: - - manufacturerId: BPNL00000003AAXX - manufacturerName: AB CD + - manufacturerId: BPNL00000003AAXX + manufacturerName: AB CD job: completedOn: 2022-02-03T14:48:54.709Z createdOn: 2022-02-03T14:48:54.709Z @@ -1159,8 +1144,8 @@ components: lastModifiedOn: 2022-02-03T14:48:54.709Z parameter: aspects: - - urn:samm:io.catenax.single_level_bom_as_built:3.0.0#SingleLevelBomAsBuilt - - urn:samm:io.catenax.serial_part:3.0.0#SerialPart + - urn:samm:io.catenax.single_level_bom_as_built:3.0.0#SingleLevelBomAsBuilt + - urn:samm:io.catenax.serial_part:3.0.0#SerialPart auditContractNegotiation: false bomLifecycle: asBuilt collectAspects: false @@ -1175,92 +1160,92 @@ components: 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 - hasAlternatives: false - 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.0 + - catenaXId: urn:uuid:d9bec1c6-e47c-4d18-ba41-0a5fe8b7f447 + linkedItem: + assembledOn: 2022-02-03T14:48:54.709Z + childCatenaXId: urn:uuid:a45a2246-f6e1-42da-b47d-5c3b58ed62e9 + hasAlternatives: false + 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.0 shells: - - contractAgreementId: f253718e-a270-4367-901b-9d50d9bd8462 - payload: - description: - - language: en - text: The shell for a vehicle - globalAssetId: urn:uuid:a45a2246-f6e1-42da-b47d-5c3b58ed62e9 - id: urn:uuid:882fc530-b69b-4707-95f6-5dbc5e9baaa8 - idShort: future concept x - specificAssetIds: - - name: engineserialid - value: "12309481209312" - submodelDescriptors: - - description: - - language: en - text: Provides base vehicle information - endpoints: - - interface: HTTP - protocolInformation: - endpointProtocol: HTTPS - endpointProtocolVersion: - - "1.0" - href: https://catena-x.net/vehicle/basedetails/ - subprotocol: DSP - subprotocolBody: id=urn:uuid:c8159379-4613-48b8-ad52-6baed7afe923;dspEndpoint=https://irs-provider-controlplane3.dev.demo.catena-x.net - subprotocolBodyEncoding: plain - id: urn:uuid:5d25a897-6571-4800-b98c-a3352fbf996d - idShort: SingleLevelBomAsPlanned - semanticId: - keys: - - type: ExternalReference - value: urn:samm:io.catenax.single_level_bom_as_built:3.0.0#SingleLevelBomAsBuilt - type: ModelReference - - description: - - language: en - text: Provides base vehicle information - endpoints: - - interface: HTTP - protocolInformation: - endpointProtocol: HTTPS - endpointProtocolVersion: - - "1.0" - href: https://catena-x.net/vehicle/partdetails/ - subprotocol: DSP - subprotocolBody: id=urn:uuid:c8159379-4613-48b8-ad52-6baed7afe923;dspEndpoint=https://irs-provider-controlplane3.dev.demo.catena-x.net - subprotocolBodyEncoding: plain - id: urn:uuid:dae4d249-6d66-4818-b576-bf52f3b9ae90 - idShort: vehicle part details - semanticId: - keys: - - type: Submodel - value: urn:bamm:io.catenax.vehicle:0.1.1#PartDetails - type: ModelReference + - contractAgreementId: f253718e-a270-4367-901b-9d50d9bd8462 + payload: + description: + - language: en + text: The shell for a vehicle + globalAssetId: urn:uuid:a45a2246-f6e1-42da-b47d-5c3b58ed62e9 + id: urn:uuid:882fc530-b69b-4707-95f6-5dbc5e9baaa8 + idShort: future concept x + specificAssetIds: + - name: engineserialid + value: "12309481209312" + submodelDescriptors: + - description: + - language: en + text: Provides base vehicle information + endpoints: + - interface: HTTP + protocolInformation: + endpointProtocol: HTTPS + endpointProtocolVersion: + - "1.0" + href: https://catena-x.net/vehicle/basedetails/ + subprotocol: DSP + subprotocolBody: id=urn:uuid:c8159379-4613-48b8-ad52-6baed7afe923;dspEndpoint=https://irs-provider-controlplane3.dev.demo.catena-x.net + subprotocolBodyEncoding: plain + id: urn:uuid:5d25a897-6571-4800-b98c-a3352fbf996d + idShort: SingleLevelBomAsPlanned + semanticId: + keys: + - type: ExternalReference + value: urn:samm:io.catenax.single_level_bom_as_built:3.0.0#SingleLevelBomAsBuilt + type: ModelReference + - description: + - language: en + text: Provides base vehicle information + endpoints: + - interface: HTTP + protocolInformation: + endpointProtocol: HTTPS + endpointProtocolVersion: + - "1.0" + href: https://catena-x.net/vehicle/partdetails/ + subprotocol: DSP + subprotocolBody: id=urn:uuid:c8159379-4613-48b8-ad52-6baed7afe923;dspEndpoint=https://irs-provider-controlplane3.dev.demo.catena-x.net + subprotocolBodyEncoding: plain + id: urn:uuid:dae4d249-6d66-4818-b576-bf52f3b9ae90 + idShort: vehicle part details + semanticId: + keys: + - type: Submodel + value: urn:bamm:io.catenax.vehicle:0.1.1#PartDetails + type: ModelReference submodels: - - aspectType: supply_chain_impacted - contractAgreementId: f253718e-a270-4367-901b-9d50d9bd8462 - identification: urn:uuid:fc784d2a-5506-4e61-8e34-21600f8cdeff - payload: - supplyChainImpacted: "YES" + - aspectType: supply_chain_impacted + contractAgreementId: f253718e-a270-4367-901b-9d50d9bd8462 + identification: urn:uuid:fc784d2a-5506-4e61-8e34-21600f8cdeff + payload: + supplyChainImpacted: "YES" 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 + - 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 complete-job-list-processing-state: value: content: - - completedOn: 2022-02-03T14:48:54.709Z - id: 6c311d29-5753-46d4-b32c-19b918ea93b0 - startedOn: 2022-02-03T14:48:54.709Z - state: COMPLETED + - 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 @@ -1268,8 +1253,8 @@ components: complete-job-result: value: bpns: - - manufacturerId: BPNL00000003AYRE - manufacturerName: OEM A + - manufacturerId: BPNL00000003AYRE + manufacturerName: OEM A job: completedOn: 2022-02-03T14:48:54.709Z createdOn: 2022-02-03T14:48:54.709Z @@ -1282,8 +1267,8 @@ components: lastModifiedOn: 2022-02-03T14:48:54.709Z parameter: aspects: - - urn:samm:io.catenax.single_level_bom_as_built:3.0.0#SingleLevelBomAsBuilt - - urn:samm:io.catenax.serial_part:3.0.0#SerialPart + - urn:samm:io.catenax.single_level_bom_as_built:3.0.0#SingleLevelBomAsBuilt + - urn:samm:io.catenax.serial_part:3.0.0#SerialPart auditContractNegotiation: false bomLifecycle: asBuilt collectAspects: false @@ -1298,134 +1283,134 @@ components: 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 - hasAlternatives: false - 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.0 - shells: - - contractAgreementId: f253718e-a270-4367-901b-9d50d9bd8462 - payload: - description: - - language: en - text: The shell for a vehicle - globalAssetId: urn:uuid:a45a2246-f6e1-42da-b47d-5c3b58ed62e9 - id: urn:uuid:882fc530-b69b-4707-95f6-5dbc5e9baaa8 - idShort: future concept x - specificAssetIds: - - name: engineserialid - value: "12309481209312" - submodelDescriptors: - - description: - - language: en - text: Provides base vehicle information - endpoints: - - interface: HTTP - protocolInformation: - endpointProtocol: HTTPS - endpointProtocolVersion: - - "1.0" - href: https://catena-x.net/vehicle/basedetails/ - subprotocol: DSP - subprotocolBody: id=urn:uuid:c8159379-4613-48b8-ad52-6baed7afe923;dspEndpoint=https://irs-provider-controlplane3.dev.demo.catena-x.net - subprotocolBodyEncoding: plain - id: urn:uuid:5d25a897-6571-4800-b98c-a3352fbf996d - idShort: SingleLevelBomAsPlanned - semanticId: - keys: - - type: ExternalReference - value: urn:samm:io.catenax.single_level_bom_as_built:3.0.0#SingleLevelBomAsBuilt - type: ModelReference - - description: - - language: en - text: Provides base vehicle information - endpoints: - - interface: HTTP - protocolInformation: - endpointProtocol: HTTPS - endpointProtocolVersion: - - "1.0" - href: https://catena-x.net/vehicle/partdetails/ - subprotocol: DSP - subprotocolBody: id=urn:uuid:c8159379-4613-48b8-ad52-6baed7afe923;dspEndpoint=https://irs-provider-controlplane3.dev.demo.catena-x.net - subprotocolBodyEncoding: plain - id: urn:uuid:dae4d249-6d66-4818-b576-bf52f3b9ae90 - idShort: vehicle part details - semanticId: - keys: - - type: Submodel - value: urn:bamm:io.catenax.vehicle:0.1.1#PartDetails - type: ModelReference - submodels: - - aspectType: urn:samm:io.catenax.single_level_bom_as_built:3.0.0#SingleLevelBomAsBuilt - contractAgreementId: f253718e-a270-4367-901b-9d50d9bd8462 - identification: urn:uuid:fc784d2a-5506-4e61-8e34-21600f8cdeff - payload: - catenaXId: urn:uuid:d9bec1c6-e47c-4d18-ba41-0a5fe8b7f447 - childItems: - - businessPartner: BPNL00012345aNXY - catenaXId: urn:uuid:d9bec1c6-e47c-4d18-ba41-0a5fe8b7f447 - createdOn: 2022-02-03T14:48:54.709Z + - catenaXId: urn:uuid:d9bec1c6-e47c-4d18-ba41-0a5fe8b7f447 + linkedItem: + assembledOn: 2022-02-03T14:48:54.709Z + childCatenaXId: urn:uuid:a45a2246-f6e1-42da-b47d-5c3b58ed62e9 hasAlternatives: false lastModifiedOn: 2022-02-03T14:48:54.709Z + lifecycleContext: asBuilt quantity: - unit: unit:piece - value: 20.0 + measurementUnit: + datatypeURI: urn:bamm:io.openmanufacturing:meta-model:1.0.0#piece + lexicalValue: piece + quantityNumber: 1.0 + shells: + - contractAgreementId: f253718e-a270-4367-901b-9d50d9bd8462 + payload: + description: + - language: en + text: The shell for a vehicle + globalAssetId: urn:uuid:a45a2246-f6e1-42da-b47d-5c3b58ed62e9 + id: urn:uuid:882fc530-b69b-4707-95f6-5dbc5e9baaa8 + idShort: future concept x + specificAssetIds: + - name: engineserialid + value: "12309481209312" + submodelDescriptors: + - description: + - language: en + text: Provides base vehicle information + endpoints: + - interface: HTTP + protocolInformation: + endpointProtocol: HTTPS + endpointProtocolVersion: + - "1.0" + href: https://catena-x.net/vehicle/basedetails/ + subprotocol: DSP + subprotocolBody: id=urn:uuid:c8159379-4613-48b8-ad52-6baed7afe923;dspEndpoint=https://irs-provider-controlplane3.dev.demo.catena-x.net + subprotocolBodyEncoding: plain + id: urn:uuid:5d25a897-6571-4800-b98c-a3352fbf996d + idShort: SingleLevelBomAsPlanned + semanticId: + keys: + - type: ExternalReference + value: urn:samm:io.catenax.single_level_bom_as_built:3.0.0#SingleLevelBomAsBuilt + type: ModelReference + - description: + - language: en + text: Provides base vehicle information + endpoints: + - interface: HTTP + protocolInformation: + endpointProtocol: HTTPS + endpointProtocolVersion: + - "1.0" + href: https://catena-x.net/vehicle/partdetails/ + subprotocol: DSP + subprotocolBody: id=urn:uuid:c8159379-4613-48b8-ad52-6baed7afe923;dspEndpoint=https://irs-provider-controlplane3.dev.demo.catena-x.net + subprotocolBodyEncoding: plain + id: urn:uuid:dae4d249-6d66-4818-b576-bf52f3b9ae90 + idShort: vehicle part details + semanticId: + keys: + - type: Submodel + value: urn:bamm:io.catenax.vehicle:0.1.1#PartDetails + type: ModelReference + submodels: + - aspectType: urn:samm:io.catenax.single_level_bom_as_built:3.0.0#SingleLevelBomAsBuilt + contractAgreementId: f253718e-a270-4367-901b-9d50d9bd8462 + identification: urn:uuid:fc784d2a-5506-4e61-8e34-21600f8cdeff + payload: + catenaXId: urn:uuid:d9bec1c6-e47c-4d18-ba41-0a5fe8b7f447 + childItems: + - businessPartner: BPNL00012345aNXY + catenaXId: urn:uuid:d9bec1c6-e47c-4d18-ba41-0a5fe8b7f447 + createdOn: 2022-02-03T14:48:54.709Z + hasAlternatives: false + lastModifiedOn: 2022-02-03T14:48:54.709Z + quantity: + unit: unit:piece + value: 20.0 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 + - 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 complete-order-result: 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 + - 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 error-response-400: value: error: Bad request messages: - - BadRequestException + - BadRequestException statusCode: 400 BAD_REQUEST error-response-401: value: error: Unauthorized messages: - - UnauthorizedException + - UnauthorizedException statusCode: 401 UNAUTHORIZED error-response-403: value: error: Forbidden messages: - - ForbiddenException + - ForbiddenException statusCode: 403 FORBIDDEN error-response-404: value: error: Not found messages: - - NotFoundException + - NotFoundException statusCode: 404 NOT_FOUND error-response-500: value: error: Internal Server Error messages: - - InternalServerError + - InternalServerError statusCode: 500 INTERNAL_SERVER_ERROR failed-job-result: value: @@ -1441,8 +1426,8 @@ components: lastModifiedOn: 2022-02-03T14:48:54.709Z parameter: aspects: - - urn:samm:io.catenax.single_level_bom_as_built:3.0.0#SingleLevelBomAsBuilt - - urn:samm:io.catenax.serial_part:3.0.0#SerialPart + - urn:samm:io.catenax.single_level_bom_as_built:3.0.0#SingleLevelBomAsBuilt + - urn:samm:io.catenax.serial_part:3.0.0#SerialPart auditContractNegotiation: false bomLifecycle: asBuilt collectAspects: false @@ -1465,8 +1450,8 @@ components: job-result-without-uncompleted-result-tree: value: bpns: - - manufacturerId: BPNL00000003AYRE - manufacturerName: OEM A + - manufacturerId: BPNL00000003AYRE + manufacturerName: OEM A job: completedOn: 2022-02-03T14:48:54.709Z createdOn: 2022-02-03T14:48:54.709Z @@ -1479,8 +1464,8 @@ components: lastModifiedOn: 2022-02-03T14:48:54.709Z parameter: aspects: - - urn:samm:io.catenax.single_level_bom_as_built:3.0.0#SingleLevelBomAsBuilt - - urn:samm:io.catenax.serial_part:3.0.0#SerialPart + - urn:samm:io.catenax.single_level_bom_as_built:3.0.0#SingleLevelBomAsBuilt + - urn:samm:io.catenax.serial_part:3.0.0#SerialPart auditContractNegotiation: false bomLifecycle: asBuilt collectAspects: false @@ -1495,94 +1480,94 @@ components: 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 - hasAlternatives: false - 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.0 - shells: - - contractAgreementId: f253718e-a270-4367-901b-9d50d9bd8462 - payload: - description: - - language: en - text: The shell for a vehicle - globalAssetId: urn:uuid:a45a2246-f6e1-42da-b47d-5c3b58ed62e9 - id: urn:uuid:882fc530-b69b-4707-95f6-5dbc5e9baaa8 - idShort: future concept x - specificAssetIds: - - name: engineserialid - value: "12309481209312" - submodelDescriptors: - - description: - - language: en - text: Provides base vehicle information - endpoints: - - interface: HTTP - protocolInformation: - endpointProtocol: HTTPS - endpointProtocolVersion: - - "1.0" - href: https://catena-x.net/vehicle/basedetails/ - subprotocol: DSP - subprotocolBody: id=urn:uuid:c8159379-4613-48b8-ad52-6baed7afe923;dspEndpoint=https://irs-provider-controlplane3.dev.demo.catena-x.net - subprotocolBodyEncoding: plain - id: urn:uuid:5d25a897-6571-4800-b98c-a3352fbf996d - idShort: SingleLevelBomAsPlanned - semanticId: - keys: - - type: ExternalReference - value: urn:samm:io.catenax.single_level_bom_as_built:3.0.0#SingleLevelBomAsBuilt - type: ModelReference - - description: - - language: en - text: Provides base vehicle information - endpoints: - - interface: HTTP - protocolInformation: - endpointProtocol: HTTPS - endpointProtocolVersion: - - "1.0" - href: https://catena-x.net/vehicle/partdetails/ - subprotocol: DSP - subprotocolBody: id=urn:uuid:c8159379-4613-48b8-ad52-6baed7afe923;dspEndpoint=https://irs-provider-controlplane3.dev.demo.catena-x.net - subprotocolBodyEncoding: plain - id: urn:uuid:dae4d249-6d66-4818-b576-bf52f3b9ae90 - idShort: vehicle part details - semanticId: - keys: - - type: Submodel - value: urn:bamm:io.catenax.vehicle:0.1.1#PartDetails - type: ModelReference - submodels: - - aspectType: urn:samm:io.catenax.single_level_bom_as_built:3.0.0#SingleLevelBomAsBuilt - contractAgreementId: f253718e-a270-4367-901b-9d50d9bd8462 - identification: urn:uuid:fc784d2a-5506-4e61-8e34-21600f8cdeff - payload: - catenaXId: urn:uuid:d9bec1c6-e47c-4d18-ba41-0a5fe8b7f447 - childItems: - - businessPartner: BPNL00012345aNXY - catenaXId: urn:uuid:d9bec1c6-e47c-4d18-ba41-0a5fe8b7f447 - createdOn: 2022-02-03T14:48:54.709Z + - catenaXId: urn:uuid:d9bec1c6-e47c-4d18-ba41-0a5fe8b7f447 + linkedItem: + assembledOn: 2022-02-03T14:48:54.709Z + childCatenaXId: urn:uuid:a45a2246-f6e1-42da-b47d-5c3b58ed62e9 hasAlternatives: false lastModifiedOn: 2022-02-03T14:48:54.709Z + lifecycleContext: asBuilt quantity: - unit: unit:piece - value: 20.0 + measurementUnit: + datatypeURI: urn:bamm:io.openmanufacturing:meta-model:1.0.0#piece + lexicalValue: piece + quantityNumber: 1.0 + shells: + - contractAgreementId: f253718e-a270-4367-901b-9d50d9bd8462 + payload: + description: + - language: en + text: The shell for a vehicle + globalAssetId: urn:uuid:a45a2246-f6e1-42da-b47d-5c3b58ed62e9 + id: urn:uuid:882fc530-b69b-4707-95f6-5dbc5e9baaa8 + idShort: future concept x + specificAssetIds: + - name: engineserialid + value: "12309481209312" + submodelDescriptors: + - description: + - language: en + text: Provides base vehicle information + endpoints: + - interface: HTTP + protocolInformation: + endpointProtocol: HTTPS + endpointProtocolVersion: + - "1.0" + href: https://catena-x.net/vehicle/basedetails/ + subprotocol: DSP + subprotocolBody: id=urn:uuid:c8159379-4613-48b8-ad52-6baed7afe923;dspEndpoint=https://irs-provider-controlplane3.dev.demo.catena-x.net + subprotocolBodyEncoding: plain + id: urn:uuid:5d25a897-6571-4800-b98c-a3352fbf996d + idShort: SingleLevelBomAsPlanned + semanticId: + keys: + - type: ExternalReference + value: urn:samm:io.catenax.single_level_bom_as_built:3.0.0#SingleLevelBomAsBuilt + type: ModelReference + - description: + - language: en + text: Provides base vehicle information + endpoints: + - interface: HTTP + protocolInformation: + endpointProtocol: HTTPS + endpointProtocolVersion: + - "1.0" + href: https://catena-x.net/vehicle/partdetails/ + subprotocol: DSP + subprotocolBody: id=urn:uuid:c8159379-4613-48b8-ad52-6baed7afe923;dspEndpoint=https://irs-provider-controlplane3.dev.demo.catena-x.net + subprotocolBodyEncoding: plain + id: urn:uuid:dae4d249-6d66-4818-b576-bf52f3b9ae90 + idShort: vehicle part details + semanticId: + keys: + - type: Submodel + value: urn:bamm:io.catenax.vehicle:0.1.1#PartDetails + type: ModelReference + submodels: + - aspectType: urn:samm:io.catenax.single_level_bom_as_built:3.0.0#SingleLevelBomAsBuilt + contractAgreementId: f253718e-a270-4367-901b-9d50d9bd8462 + identification: urn:uuid:fc784d2a-5506-4e61-8e34-21600f8cdeff + payload: + catenaXId: urn:uuid:d9bec1c6-e47c-4d18-ba41-0a5fe8b7f447 + childItems: + - businessPartner: BPNL00012345aNXY + catenaXId: urn:uuid:d9bec1c6-e47c-4d18-ba41-0a5fe8b7f447 + createdOn: 2022-02-03T14:48:54.709Z + hasAlternatives: false + lastModifiedOn: 2022-02-03T14:48:54.709Z + quantity: + unit: unit:piece + value: 20.0 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 + - 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 partial-job-result: value: bpns: [] @@ -1598,8 +1583,8 @@ components: lastModifiedOn: 2022-02-03T14:48:54.709Z parameter: aspects: - - urn:samm:io.catenax.single_level_bom_as_built:3.0.0#SingleLevelBomAsBuilt - - urn:samm:io.catenax.serial_part:3.0.0#SerialPart + - urn:samm:io.catenax.single_level_bom_as_built:3.0.0#SingleLevelBomAsBuilt + - urn:samm:io.catenax.serial_part:3.0.0#SerialPart auditContractNegotiation: false bomLifecycle: asBuilt collectAspects: false @@ -1720,11 +1705,7 @@ components: type: object additionalProperties: false description: BatchOrderAck Payload Response. - example: "{\"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\"}" + example: "{\"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\"}" properties: batchChecksum: type: integer @@ -1747,21 +1728,16 @@ components: type: string description: The state of the order. enum: - - INITIALIZED - - COMPLETED - - PROCESSING - - PARTIAL - - ERROR + - INITIALIZED + - COMPLETED + - PROCESSING + - PARTIAL + - ERROR BatchResponse: type: object additionalProperties: false description: Batch model. - example: "{\"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}" + example: "{\"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}" properties: batchId: type: string @@ -1778,11 +1754,11 @@ components: type: string description: The state of the batch. enum: - - INITIALIZED - - COMPLETED - - PROCESSING - - PARTIAL - - ERROR + - INITIALIZED + - COMPLETED + - PROCESSING + - PARTIAL + - ERROR batchTotal: type: integer format: int32 @@ -1858,39 +1834,38 @@ components: policy: '@type': Policy odrl:permission: - - odrl:action: use - odrl:constraint: - odrl:and: - - odrl:leftOperand: Membership - odrl:operator: - '@id': odrl:eq - odrl:rightOperand: active - - odrl:leftOperand: PURPOSE - odrl:operator: - '@id': odrl:eq - odrl:rightOperand: ID 3.1 Trace + - odrl:action: use + odrl:constraint: + odrl:and: + - odrl:leftOperand: Membership + odrl:operator: + '@id': odrl:eq + odrl:rightOperand: active + - odrl:leftOperand: PURPOSE + odrl:operator: + '@id': odrl:eq + odrl:rightOperand: ID 3.1 Trace properties: empty: type: boolean valueType: type: string enum: - - ARRAY - - OBJECT - - STRING - - NUMBER - - "TRUE" - - "FALSE" - - "NULL" + - ARRAY + - OBJECT + - STRING + - NUMBER + - "TRUE" + - "FALSE" + - "NULL" validUntil: type: string format: date-time - description: Timestamp after which the policy will no longer be accepted - in negotiations. + description: Timestamp after which the policy will no longer be accepted in negotiations. example: 2025-12-12T23:59:59.999Z required: - - payload - - validUntil + - payload + - validUntil EdcNotificationHeader: type: object additionalProperties: false @@ -1913,10 +1888,10 @@ components: senderEdc: type: string required: - - notificationId - - notificationType - - recipientBpn - - senderBpn + - notificationId + - notificationType + - recipientBpn + - senderBpn EdcNotificationResponseNotificationContent: type: object additionalProperties: false @@ -1926,8 +1901,8 @@ components: header: $ref: '#/components/schemas/EdcNotificationHeader' required: - - content - - header + - content + - header Endpoint: type: object additionalProperties: false @@ -1955,75 +1930,75 @@ components: 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 + - 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 IdentifierKeyValuePair: type: object additionalProperties: false @@ -2083,20 +2058,20 @@ components: state: type: string enum: - - UNSAVED - - INITIAL - - RUNNING - - TRANSFERS_FINISHED - - COMPLETED - - CANCELED - - ERROR + - UNSAVED + - INITIAL + - RUNNING + - TRANSFERS_FINISHED + - COMPLETED + - CANCELED + - ERROR example: COMPLETED summary: $ref: '#/components/schemas/Summary' required: - - globalAssetId - - id - - state + - globalAssetId + - id + - state JobErrorDetails: type: object additionalProperties: false @@ -2142,12 +2117,11 @@ components: example: false bomLifecycle: type: string - description: The lifecycle context in which the child part was assembled - into the parent part. + description: The lifecycle context in which the child part was assembled into the parent part. enum: - - asBuilt - - asPlanned - - asSpecified + - asBuilt + - asPlanned + - asSpecified example: asBuilt bpn: type: string @@ -2168,8 +2142,8 @@ components: type: string description: Item graph traversal direction. enum: - - upward - - downward + - upward + - downward example: upward lookupBPNs: type: boolean @@ -2190,13 +2164,13 @@ components: state: type: string enum: - - UNSAVED - - INITIAL - - RUNNING - - TRANSFERS_FINISHED - - COMPLETED - - CANCELED - - ERROR + - UNSAVED + - INITIAL + - RUNNING + - TRANSFERS_FINISHED + - COMPLETED + - CANCELED + - ERROR Jobs: type: object additionalProperties: false @@ -2234,8 +2208,7 @@ components: maxItems: 2147483647 tombstones: type: array - description: Collection of not resolvable endpoints as tombstones. Including - cause of error and endpoint URL. + description: Collection of not resolvable endpoints as tombstones. Including cause of error and endpoint URL. items: $ref: '#/components/schemas/Tombstone' maxItems: 2147483647 @@ -2251,28 +2224,28 @@ components: policy: '@type': Policy odrl:permission: - - odrl:action: use - odrl:constraint: - odrl:and: - - odrl:leftOperand: Membership - odrl:operator: - '@id': odrl:eq - odrl:rightOperand: active - - odrl:leftOperand: PURPOSE - odrl:operator: - '@id': odrl:eq - odrl:rightOperand: ID 3.1 Trace + - odrl:action: use + odrl:constraint: + odrl:and: + - odrl:leftOperand: Membership + odrl:operator: + '@id': odrl:eq + odrl:rightOperand: active + - odrl:leftOperand: PURPOSE + odrl:operator: + '@id': odrl:eq + odrl:rightOperand: ID 3.1 Trace properties: valueType: type: string enum: - - ARRAY - - OBJECT - - STRING - - NUMBER - - "TRUE" - - "FALSE" - - "NULL" + - ARRAY + - OBJECT + - STRING + - NUMBER + - "TRUE" + - "FALSE" + - "NULL" LangString: type: object additionalProperties: false @@ -2286,8 +2259,7 @@ components: LinkedItem: type: object additionalProperties: false - description: Set of child parts the parent object is assembled by (one structural - level down). + description: Set of child parts the parent object is assembled by (one structural level down). properties: assembledOn: type: string @@ -2303,8 +2275,7 @@ components: 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}$" hasAlternatives: type: boolean - description: Expresses whether the part is built-in or whether it is one - of several options. + description: Expresses whether the part is built-in or whether it is one of several options. lastModifiedOn: type: string format: date-time @@ -2312,12 +2283,11 @@ components: example: 2022-02-03T14:48:54.709Z lifecycleContext: type: string - description: The lifecycle context in which the child part was assembled - into the parent part. + description: The lifecycle context in which the child part was assembled into the parent part. enum: - - asBuilt - - asPlanned - - asSpecified + - asBuilt + - asPlanned + - asSpecified example: asBuilt quantity: $ref: '#/components/schemas/Quantity' @@ -2334,9 +2304,7 @@ components: PageResult: type: object additionalProperties: false - example: "{\"content\"=[{\"completedOn\"=\"test\", \"id\"=\"046b6c7f-0b8a-43b9-b35d-6489e6daee91\"\ - , \"startedOn\"=\"2000-01-23T04:56:07.000+00:00\", \"state\"=\"UNSAVED\"}],\ - \ \"pageCount\"=0, \"pageNumber\"=6, \"pageSize\"=1, \"totalElements\"=5}" + example: "{\"content\"=[{\"completedOn\"=\"test\", \"id\"=\"046b6c7f-0b8a-43b9-b35d-6489e6daee91\", \"startedOn\"=\"2000-01-23T04:56:07.000+00:00\", \"state\"=\"UNSAVED\"}], \"pageCount\"=0, \"pageNumber\"=6, \"pageSize\"=1, \"totalElements\"=5}" properties: content: type: array @@ -2357,8 +2325,7 @@ components: PartChainIdentificationKey: type: object additionalProperties: false - description: Key object contains required attributes for identify part chain - entry node. + description: Key object contains required attributes for identify part chain entry node. properties: bpn: type: string @@ -2374,8 +2341,8 @@ components: 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}$" required: - - bpn - - globalAssetId + - bpn + - globalAssetId ProcessingError: type: object additionalProperties: false @@ -2388,12 +2355,12 @@ components: processStep: type: string enum: - - SubmodelRequest - - DigitalTwinRequest - - SchemaValidation - - SchemaRequest - - UsagePolicyValidation - - EssValidation + - SubmodelRequest + - DigitalTwinRequest + - SchemaValidation + - SchemaRequest + - UsagePolicyValidation + - EssValidation retryCounter: type: integer format: int32 @@ -2409,7 +2376,7 @@ components: endpointProtocolVersion: type: array example: - - "1.0" + - "1.0" items: type: string href: @@ -2457,10 +2424,9 @@ components: properties: aspects: type: array - description: List of aspect names that will be collected if \ - flag is set to true. + description: List of aspect names that will be collected if \ flag is set to true. example: - - urn:samm:io.catenax.single_level_bom_as_built:3.0.0#SingleLevelBomAsBuilt + - urn:samm:io.catenax.single_level_bom_as_built:3.0.0#SingleLevelBomAsBuilt items: type: string pattern: "^(urn:[bs]amm:.*\\d\\.\\d\\.\\d)?(#)?(\\w+)?$" @@ -2477,32 +2443,27 @@ components: type: string description: The strategy how the batch is processed internally in IRS. enum: - - PRESERVE_BATCH_JOB_ORDER - - PRESERVE_JOB_ORDER - - PRESERVE_BATCH_ORDER + - 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. + description: The lifecycle context in which the child part was assembled into the parent part. enum: - - asBuilt - - asPlanned - - asSpecified + - asBuilt + - asPlanned + - asSpecified 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." + 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. + 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. + 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: @@ -2510,14 +2471,13 @@ components: default: downward description: Item graph traversal direction. enum: - - upward - - downward + - upward + - downward jobTimeout: type: integer format: int32 default: 3600 - description: Timeout in seconds for each job processing inside the complete - order. + description: Timeout in seconds for each job processing inside the complete order. maximum: 7200 minimum: 60 keys: @@ -2528,8 +2488,7 @@ components: lookupBPNs: type: boolean deprecated: true - description: Flag to specify whether BPNs should be collected and resolved - via the configured BPDM URL. Default is false. + description: Flag to specify whether BPNs should be collected and resolved via the configured BPDM URL. Default is false. timeout: type: integer format: int32 @@ -2538,12 +2497,11 @@ components: maximum: 86400 minimum: 60 required: - - keys + - keys RegisterBpnInvestigationBatchOrder: type: object additionalProperties: false - description: Request body for registering a new Batch Order for ESS Investigation - Job. + description: Request body for registering a new Batch Order for ESS Investigation Job. properties: batchSize: type: integer @@ -2556,22 +2514,19 @@ components: type: string description: The strategy how the batch is processed internally in IRS. enum: - - PRESERVE_BATCH_JOB_ORDER - - PRESERVE_JOB_ORDER - - PRESERVE_BATCH_ORDER + - 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. + description: The lifecycle context in which the child part was assembled into the parent part. enum: - - asBuilt - - asPlanned - - asSpecified + - asBuilt + - asPlanned + - asSpecified 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." + 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}" incidentBPNSs: type: array @@ -2583,8 +2538,7 @@ components: type: integer format: int32 default: 3600 - description: Timeout in seconds for each job processing inside the complete - order. + description: Timeout in seconds for each job processing inside the complete order. maximum: 7200 minimum: 60 keys: @@ -2600,8 +2554,8 @@ components: maximum: 86400 minimum: 60 required: - - incidentBPNSs - - keys + - incidentBPNSs + - keys RegisterBpnInvestigationJob: type: object additionalProperties: false @@ -2609,24 +2563,21 @@ components: properties: bomLifecycle: type: string - description: The lifecycle context in which the child part was assembled - into the parent part. + description: The lifecycle context in which the child part was assembled into the parent part. enum: - - asBuilt - - asPlanned - - asSpecified + - asBuilt + - asPlanned + - asSpecified example: 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." + 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}" incidentBPNSs: type: array description: Array of BPNS numbers. example: - - BPNS000000000DDD + - BPNS000000000DDD items: type: string pattern: "(BPN)[LSA][\\w\\d]{10}[\\w\\d]{2}" @@ -2635,8 +2586,8 @@ components: key: $ref: '#/components/schemas/PartChainIdentificationKey' required: - - incidentBPNSs - - key + - incidentBPNSs + - key RegisterJob: type: object additionalProperties: false @@ -2644,10 +2595,9 @@ components: properties: aspects: type: array - description: List of aspect names that will be collected if \ - flag is set to true. + description: List of aspect names that will be collected if \ flag is set to true. example: - - urn:samm:io.catenax.single_level_bom_as_built:3.0.0#SingleLevelBomAsBuilt + - urn:samm:io.catenax.single_level_bom_as_built:3.0.0#SingleLevelBomAsBuilt items: type: string pattern: "^(urn:[bs]amm:.*\\d\\.\\d\\.\\d)?(#)?(\\w+)?$" @@ -2655,31 +2605,25 @@ components: pattern: "^(urn:[bs]amm:.*\\d\\.\\d\\.\\d)?(#)?(\\w+)?$" auditContractNegotiation: type: boolean - description: "Flag enables and disables auditing, including provisioning\ - \ of ContractAgreementId inside submodels and shells objects. Default\ - \ is true." + description: "Flag enables and disables auditing, including provisioning of ContractAgreementId inside submodels and shells objects. Default is true." bomLifecycle: type: string - description: The lifecycle context in which the child part was assembled - into the parent part. + description: The lifecycle context in which the child part was assembled into the parent part. enum: - - asBuilt - - asPlanned - - asSpecified + - asBuilt + - asPlanned + - asSpecified 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." + 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. + 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. + 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: @@ -2687,17 +2631,16 @@ components: default: downward description: Item graph traversal direction. enum: - - upward - - downward + - upward + - downward key: $ref: '#/components/schemas/PartChainIdentificationKey' lookupBPNs: type: boolean deprecated: true - description: Flag to specify whether BPNs should be collected and resolved - via the configured BPDM URL. Default is false. + description: Flag to specify whether BPNs should be collected and resolved via the configured BPDM URL. Default is false. required: - - key + - key Relationship: type: object additionalProperties: false @@ -2760,8 +2703,7 @@ components: Submodel: type: object additionalProperties: false - description: "Submodel with identification of SubmodelDescriptor, aspect type\ - \ and payload as String" + description: "Submodel with identification of SubmodelDescriptor, aspect type and payload as String" properties: aspectType: type: string @@ -2844,11 +2786,10 @@ components: validUntil: type: string format: date-time - description: Timestamp after which the policy will no longer be accepted - in negotiations. + description: Timestamp after which the policy will no longer be accepted in negotiations. required: - - policyIds - - validUntil + - policyIds + - validUntil securitySchemes: api_key: description: Api Key access diff --git a/irs-api/src/main/java/org/eclipse/tractusx/irs/IrsApplication.java b/irs-api/src/main/java/org/eclipse/tractusx/irs/IrsApplication.java index e37f31b068..aa8b34ed44 100644 --- a/irs-api/src/main/java/org/eclipse/tractusx/irs/IrsApplication.java +++ b/irs-api/src/main/java/org/eclipse/tractusx/irs/IrsApplication.java @@ -59,7 +59,7 @@ public class IrsApplication { /** * The IRS API version. */ - public static final String API_VERSION = "5.1.4"; + public static final String API_VERSION = "5.1.9"; /** * The URL prefix for IRS API URLs. diff --git a/irs-api/src/main/java/org/eclipse/tractusx/irs/ess/bpn/validation/BPNIncidentValidation.java b/irs-api/src/main/java/org/eclipse/tractusx/irs/ess/bpn/validation/BPNIncidentValidation.java index fd760cd462..3c87a9e261 100644 --- a/irs-api/src/main/java/org/eclipse/tractusx/irs/ess/bpn/validation/BPNIncidentValidation.java +++ b/irs-api/src/main/java/org/eclipse/tractusx/irs/ess/bpn/validation/BPNIncidentValidation.java @@ -77,13 +77,13 @@ public static SupplyChainImpacted jobContainsIncidentBPNs(final List incidentBPNs) throws InvalidAspectTypeFormatException { - if (partSiteInformationAsPlanned.sites().stream().anyMatch(site -> site.catenaXSiteId() == null)) { - throw new InvalidAspectTypeFormatException("'PartSiteInformationAsPlanned' exists, but catenaXSiteId could not be found."); + if (partSiteInformationAsPlanned.sites().stream().anyMatch(site -> site.catenaXsiteId() == null)) { + throw new InvalidAspectTypeFormatException("'PartSiteInformationAsPlanned' exists, but catenaXsiteId could not be found."); } final List siteIds = partSiteInformationAsPlanned.getCatenaXSiteId(); try { diff --git a/irs-api/src/main/java/org/eclipse/tractusx/irs/ess/service/EdcRegistration.java b/irs-api/src/main/java/org/eclipse/tractusx/irs/ess/service/EdcRegistration.java index bc2f3a1d8c..aa404f485b 100644 --- a/irs-api/src/main/java/org/eclipse/tractusx/irs/ess/service/EdcRegistration.java +++ b/irs-api/src/main/java/org/eclipse/tractusx/irs/ess/service/EdcRegistration.java @@ -112,7 +112,9 @@ public void registerEdcAsset() { private void registerAsset(final String assetId, final String notificationType, final String path) { final var body = """ { - "@context": {}, + "@context": { + "@vocab": "https://w3id.org/edc/v0.0.1/ns/" + }, "@id": "%s", "properties": { "description": "ESS notification endpoint", @@ -142,33 +144,42 @@ private void registerAsset(final String assetId, final String notificationType, private void registerPolicy(final String policyId) { final var body = """ + { + "@context": { + "@vocab": "https://w3id.org/edc/v0.0.1/ns/", + "cx-policy": "https://w3id.org/catenax/policy/", + "odrl": "http://www.w3.org/ns/odrl/2/" + }, + "@id": "%s", + "policy": { + "@type": "odrl:Set", + "odrl:permission": [ { - "@context": { - "odrl": "http://www.w3.org/ns/odrl/2/" - }, - "@id": "%s", - "policy": { - "odrl:permission": [ - { - "odrl:action": "use", - "odrl:constraint": { - "@type": "AtomicConstraint", - "odrl:or": [ - { - "@type": "Constraint", - "odrl:leftOperand": "PURPOSE", - "odrl:operator": { - "@id": "odrl:eq" - }, - "odrl:rightOperand": "ID 3.1 Trace" - } - ] - } - } - ] - } + "odrl:action": "use", + "odrl:constraint": { + "@type": "AtomicConstraint", + "odrl:and": [ + { + "odrl:leftOperand": "cx-policy:FrameworkAgreement", + "odrl:operator": { + "@id": "odrl:eq" + }, + "odrl:rightOperand": "traceability:1.0" + }, + { + "odrl:leftOperand": "cx-policy:UsagePurpose", + "odrl:operator": { + "@id": "odrl:eq" + }, + "odrl:rightOperand": "cx.core.industrycore:1" + } + ] + } } - """.formatted(policyId); + ] + } + } + """.formatted(policyId); final var entity = restTemplate.exchange(edcProviderUrl + policydefinitionsPath, HttpMethod.POST, toEntity(body), String.class); diff --git a/irs-api/src/main/java/org/eclipse/tractusx/irs/ess/service/EssService.java b/irs-api/src/main/java/org/eclipse/tractusx/irs/ess/service/EssService.java index 9f0934e4f5..f8e27e4842 100644 --- a/irs-api/src/main/java/org/eclipse/tractusx/irs/ess/service/EssService.java +++ b/irs-api/src/main/java/org/eclipse/tractusx/irs/ess/service/EssService.java @@ -56,8 +56,8 @@ @Slf4j public class EssService { - private static final String PART_AS_PLANNED = SemanticModelNames.PART_AS_PLANNED_2_0_0; - private static final String PART_SITE_INFORMATION_AS_PLANNED = SemanticModelNames.PART_SITE_INFORMATION_AS_PLANNED_1_0_0; + public static final String PART_AS_PLANNED = SemanticModelNames.PART_AS_PLANNED_1_0_1; + public static final String PART_SITE_INFORMATION_AS_PLANNED = SemanticModelNames.PART_SITE_INFORMATION_AS_PLANNED_1_0_0; private final IrsItemGraphQueryService irsItemGraphQueryService; private final BpnInvestigationJobCache bpnInvestigationJobCache; diff --git a/irs-api/src/test/java/org/eclipse/tractusx/irs/aaswrapper/job/delegate/RelationshipDelegateTest.java b/irs-api/src/test/java/org/eclipse/tractusx/irs/aaswrapper/job/delegate/RelationshipDelegateTest.java index b6dea229fa..bc9a42531c 100644 --- a/irs-api/src/test/java/org/eclipse/tractusx/irs/aaswrapper/job/delegate/RelationshipDelegateTest.java +++ b/irs-api/src/test/java/org/eclipse/tractusx/irs/aaswrapper/job/delegate/RelationshipDelegateTest.java @@ -391,7 +391,7 @@ void shouldCatchUsagePolicyExceptionAndPutTombstone() throws EdcClientException // when when(submodelFacade.getSubmodelPayload(any(), any(), any(), any())).thenThrow( - new UsagePolicyPermissionException("itemId", null, businessPartnerNumber)); + new UsagePolicyPermissionException(List.of(), null, businessPartnerNumber)); when(connectorEndpointsService.fetchConnectorEndpoints(any())).thenReturn(List.of("connector.endpoint.nl")); final ItemContainer result = relationshipDelegate.process(itemContainerWithShell, jobParameter(), new AASTransferProcess(), createKey()); diff --git a/irs-api/src/test/java/org/eclipse/tractusx/irs/aaswrapper/job/delegate/SubmodelDelegateTest.java b/irs-api/src/test/java/org/eclipse/tractusx/irs/aaswrapper/job/delegate/SubmodelDelegateTest.java index ab98d6123e..f6a98013c4 100644 --- a/irs-api/src/test/java/org/eclipse/tractusx/irs/aaswrapper/job/delegate/SubmodelDelegateTest.java +++ b/irs-api/src/test/java/org/eclipse/tractusx/irs/aaswrapper/job/delegate/SubmodelDelegateTest.java @@ -153,7 +153,7 @@ void shouldCatchUsagePolicyExceptionAndPutTombstone() throws EdcClientException // when when(submodelFacade.getSubmodelPayload(any(), any(), any(), any())).thenThrow( - new UsagePolicyPermissionException("itemId", null, businessPartnerNumber)); + new UsagePolicyPermissionException(List.of(), null, businessPartnerNumber)); when(connectorEndpointsService.fetchConnectorEndpoints(any())).thenReturn(List.of("connector.endpoint.nl")); final ItemContainer result = submodelDelegate.process(itemContainerShellWithTwoSubmodels, jobParameterCollectAspects(), new AASTransferProcess(), createKey()); diff --git a/irs-api/src/test/java/org/eclipse/tractusx/irs/ess/bpn/validation/BPNIncidentValidationTest.java b/irs-api/src/test/java/org/eclipse/tractusx/irs/ess/bpn/validation/BPNIncidentValidationTest.java index 3b59380ce6..848e4f84a3 100644 --- a/irs-api/src/test/java/org/eclipse/tractusx/irs/ess/bpn/validation/BPNIncidentValidationTest.java +++ b/irs-api/src/test/java/org/eclipse/tractusx/irs/ess/bpn/validation/BPNIncidentValidationTest.java @@ -24,7 +24,10 @@ package org.eclipse.tractusx.irs.ess.bpn.validation; import static org.assertj.core.api.Assertions.assertThat; +import static org.eclipse.tractusx.irs.ess.service.EssService.PART_AS_PLANNED; +import static org.eclipse.tractusx.irs.ess.service.EssService.PART_SITE_INFORMATION_AS_PLANNED; import static org.eclipse.tractusx.irs.util.TestMother.shell; +import static org.eclipse.tractusx.irs.util.TestMother.submodelDescriptor; import java.time.ZonedDateTime; import java.util.ArrayList; @@ -37,6 +40,7 @@ import org.eclipse.tractusx.irs.component.Shell; import org.eclipse.tractusx.irs.component.assetadministrationshell.AssetAdministrationShellDescriptor; import org.eclipse.tractusx.irs.component.assetadministrationshell.IdentifierKeyValuePair; +import org.eclipse.tractusx.irs.component.assetadministrationshell.SubmodelDescriptor; import org.eclipse.tractusx.irs.component.partasplanned.PartAsPlanned; import org.eclipse.tractusx.irs.component.partasplanned.ValidityPeriod; import org.eclipse.tractusx.irs.component.partsiteinformationasplanned.PartSiteInformationAsPlanned; @@ -61,7 +65,8 @@ void shouldReturnNoWhenBPNsDoNotContainShellBPNs() { final Jobs jobs = jobResult(parentId, cxIdBPNMap); // Act - final SupplyChainImpacted actual = BPNIncidentValidation.jobContainsIncidentBPNs(jobs.getShells().stream().map(Shell::payload).toList(), bpns); + final SupplyChainImpacted actual = BPNIncidentValidation.jobContainsIncidentBPNs( + jobs.getShells().stream().map(Shell::payload).toList(), bpns); // Assert assertThat(actual).isEqualTo(SupplyChainImpacted.NO); @@ -82,7 +87,8 @@ void shouldReturnYesWhenBPNsContainShellBPNs() { final Jobs jobs = jobResult(parentId, cxIdBPNMap); // Act - final SupplyChainImpacted actual = BPNIncidentValidation.jobContainsIncidentBPNs(jobs.getShells().stream().map(Shell::payload).toList(), bpns); + final SupplyChainImpacted actual = BPNIncidentValidation.jobContainsIncidentBPNs( + jobs.getShells().stream().map(Shell::payload).toList(), bpns); // Assert assertThat(actual).isEqualTo(SupplyChainImpacted.YES); @@ -98,7 +104,8 @@ void shouldReturnYesWhenNoChildrenAndParentContainsBPN() { final Jobs jobs = jobResult(parentId, cxIdBPNMap); // Act - final SupplyChainImpacted actual = BPNIncidentValidation.jobContainsIncidentBPNs(jobs.getShells().stream().map(Shell::payload).toList(), bpns); + final SupplyChainImpacted actual = BPNIncidentValidation.jobContainsIncidentBPNs( + jobs.getShells().stream().map(Shell::payload).toList(), bpns); // Assert assertThat(actual).isEqualTo(SupplyChainImpacted.YES); @@ -114,7 +121,8 @@ void shouldReturnNoWhenNoChildrenAndParentDoesNotContainBPN() { final Jobs jobs = jobResult(parentId, cxIdBPNMap); // Act - final SupplyChainImpacted actual = BPNIncidentValidation.jobContainsIncidentBPNs(jobs.getShells().stream().map(Shell::payload).toList(), bpns); + final SupplyChainImpacted actual = BPNIncidentValidation.jobContainsIncidentBPNs( + jobs.getShells().stream().map(Shell::payload).toList(), bpns); // Assert assertThat(actual).isEqualTo(SupplyChainImpacted.NO); @@ -129,7 +137,8 @@ void shouldReturnUnknownWhenJobContainsNoShells() { final Jobs jobs = jobResult(parentId, cxIdBPNMap); // Act - final SupplyChainImpacted actual = BPNIncidentValidation.jobContainsIncidentBPNs(jobs.getShells().stream().map(Shell::payload).toList(), bpns); + final SupplyChainImpacted actual = BPNIncidentValidation.jobContainsIncidentBPNs( + jobs.getShells().stream().map(Shell::payload).toList(), bpns); // Assert assertThat(actual).isEqualTo(SupplyChainImpacted.UNKNOWN); @@ -151,7 +160,8 @@ void shouldReturnUnknownWhenJobContainsShellWithoutBPN() { .build(); // Act - final SupplyChainImpacted actual = BPNIncidentValidation.jobContainsIncidentBPNs(jobs.getShells().stream().map(Shell::payload).toList(), bpns); + final SupplyChainImpacted actual = BPNIncidentValidation.jobContainsIncidentBPNs( + jobs.getShells().stream().map(Shell::payload).toList(), bpns); // Assert assertThat(actual).isEqualTo(SupplyChainImpacted.UNKNOWN); @@ -164,7 +174,7 @@ void shouldReturnNoWhenPartSideInformationDoesNotContainBPNS() throws InvalidAsp final PartSiteInformationAsPlanned partSiteInformation = PartSiteInformationAsPlanned.builder() .sites(List.of( Site.builder() - .catenaXSiteId( + .catenaXsiteId( "BPNS123456") .build())) .build(); @@ -183,7 +193,7 @@ void shouldReturnYesWhenPartSideInformationContainBPNS() throws InvalidAspectTyp final PartSiteInformationAsPlanned partSiteInformation = PartSiteInformationAsPlanned.builder() .sites(List.of( Site.builder() - .catenaXSiteId( + .catenaXsiteId( "BPNS00000003B0Q0") .build())) .build(); @@ -278,12 +288,16 @@ private static Jobs jobResult(final String parentId, final Map c } private static AssetAdministrationShellDescriptor createShell(final String catenaXId, final String bpn) { + final List submodelDescriptors = List.of( + submodelDescriptor(PART_AS_PLANNED, "test", "test"), + submodelDescriptor(PART_SITE_INFORMATION_AS_PLANNED, "test", "test")); return AssetAdministrationShellDescriptor.builder() .globalAssetId(catenaXId) .specificAssetIds(List.of(IdentifierKeyValuePair.builder() .name("manufacturerId") .value(bpn) .build())) + .submodelDescriptors(submodelDescriptors) .build(); } } \ No newline at end of file diff --git a/irs-api/src/test/java/org/eclipse/tractusx/irs/ess/service/InvestigationJobProcessingEventListenerTest.java b/irs-api/src/test/java/org/eclipse/tractusx/irs/ess/service/InvestigationJobProcessingEventListenerTest.java index 53bf84b9bb..9f7ba8f624 100644 --- a/irs-api/src/test/java/org/eclipse/tractusx/irs/ess/service/InvestigationJobProcessingEventListenerTest.java +++ b/irs-api/src/test/java/org/eclipse/tractusx/irs/ess/service/InvestigationJobProcessingEventListenerTest.java @@ -314,7 +314,7 @@ void shouldCreateTombstoneWhenSiteIdIsMissing() throws EdcClientException { final Optional job = bpnInvestigationJobCache.findByJobId(jobId); assertThat(job).isPresent(); assertThat(job.get().getJobSnapshot().getTombstones()).hasSize(1); - assertThat(job.get().getJobSnapshot().getTombstones().get(0).getProcessingError().getErrorDetail()).isEqualTo("'PartSiteInformationAsPlanned' exists, but catenaXSiteId could not be found."); + assertThat(job.get().getJobSnapshot().getTombstones().get(0).getProcessingError().getErrorDetail()).isEqualTo("'PartSiteInformationAsPlanned' exists, but catenaXsiteId could not be found."); } private void createMockForJobIdAndShell(final UUID mockedJobId, final String mockedShell, @@ -378,7 +378,7 @@ private static Submodel getPartSiteInformationAsPlanned() { "functionValidUntil": "2025-02-08T04:30:48.000Z", "function": "production", "functionValidFrom": "2019-08-21T02:10:36.000Z", - "catenaXSiteId": "BPNS000004711DMY" + "catenaXsiteId": "BPNS000004711DMY" } ] } diff --git a/irs-edc-client/src/main/java/org/eclipse/tractusx/irs/edc/client/ContractNegotiationService.java b/irs-edc-client/src/main/java/org/eclipse/tractusx/irs/edc/client/ContractNegotiationService.java index d45e24dac5..45a58bcb0e 100644 --- a/irs-edc-client/src/main/java/org/eclipse/tractusx/irs/edc/client/ContractNegotiationService.java +++ b/irs-edc-client/src/main/java/org/eclipse/tractusx/irs/edc/client/ContractNegotiationService.java @@ -127,13 +127,13 @@ private CompletableFuture startNewNegotiation(final String if (!policyCheckerService.isValid(catalogItem.getPolicy(), bpn)) { log.warn("Policy was not allowed, canceling negotiation."); - throw new UsagePolicyPermissionException(catalogItem.getItemId(), catalogItem.getPolicy(), + throw new UsagePolicyPermissionException(policyCheckerService.getValidStoredPolicies(catalogItem.getConnectorId()), catalogItem.getPolicy(), catalogItem.getConnectorId()); } if (policyCheckerService.isExpired(catalogItem.getPolicy(), bpn)) { log.warn("Policy is expired, canceling negotiation."); - throw new UsagePolicyExpiredException(catalogItem.getItemId(), catalogItem.getPolicy(), + throw new UsagePolicyExpiredException(catalogItem.getPolicy(), catalogItem.getConnectorId()); } diff --git a/irs-edc-client/src/main/java/org/eclipse/tractusx/irs/edc/client/exceptions/UsagePolicyExpiredException.java b/irs-edc-client/src/main/java/org/eclipse/tractusx/irs/edc/client/exceptions/UsagePolicyExpiredException.java index e9c4e44fa7..097ed1c92a 100644 --- a/irs-edc-client/src/main/java/org/eclipse/tractusx/irs/edc/client/exceptions/UsagePolicyExpiredException.java +++ b/irs-edc-client/src/main/java/org/eclipse/tractusx/irs/edc/client/exceptions/UsagePolicyExpiredException.java @@ -31,10 +31,10 @@ public class UsagePolicyExpiredException extends EdcClientException { private final transient Policy policy; private final String businessPartnerNumber; - public UsagePolicyExpiredException(final String itemId, final Policy policy, final String businessPartnerNumber) { - super("Consumption of asset '" + itemId - + "' is not permitted as the required catalog offer policies are expired."); + public UsagePolicyExpiredException(final Policy policy, final String businessPartnerNumber) { + super("Policy from " + businessPartnerNumber + " has expired."); this.policy = policy; this.businessPartnerNumber = businessPartnerNumber; } + } diff --git a/irs-edc-client/src/main/java/org/eclipse/tractusx/irs/edc/client/exceptions/UsagePolicyPermissionException.java b/irs-edc-client/src/main/java/org/eclipse/tractusx/irs/edc/client/exceptions/UsagePolicyPermissionException.java index c289672f12..3e2f1c797f 100644 --- a/irs-edc-client/src/main/java/org/eclipse/tractusx/irs/edc/client/exceptions/UsagePolicyPermissionException.java +++ b/irs-edc-client/src/main/java/org/eclipse/tractusx/irs/edc/client/exceptions/UsagePolicyPermissionException.java @@ -23,8 +23,11 @@ ********************************************************************************/ package org.eclipse.tractusx.irs.edc.client.exceptions; +import java.util.List; + import lombok.Getter; import org.eclipse.edc.policy.model.Policy; +import org.eclipse.tractusx.irs.edc.client.policy.AcceptedPolicy; /** * Usage Policy Permission Exception errors in the contract negotiation. @@ -35,11 +38,15 @@ public class UsagePolicyPermissionException extends EdcClientException { private final transient Policy policy; private final String businessPartnerNumber; - public UsagePolicyPermissionException(final String itemId, final Policy policy, - final String businessPartnerNumber) { - super("Consumption of asset '" + itemId - + "' is not permitted as the required catalog offer policies do not comply with defined policies."); - this.policy = policy; + public UsagePolicyPermissionException(final List acceptedPolicies, + final Policy providedCatalogItemPolicy, final String businessPartnerNumber) { + super("Policies " + + acceptedPolicies.stream().map(policy -> policy.policy().getPolicyId()).toList() + + " did not match with policy from " + businessPartnerNumber + "."); + + this.policy = providedCatalogItemPolicy; this.businessPartnerNumber = businessPartnerNumber; + } + } diff --git a/irs-edc-client/src/main/java/org/eclipse/tractusx/irs/edc/client/policy/PolicyCheckerService.java b/irs-edc-client/src/main/java/org/eclipse/tractusx/irs/edc/client/policy/PolicyCheckerService.java index daa34c81d6..b4e052e914 100644 --- a/irs-edc-client/src/main/java/org/eclipse/tractusx/irs/edc/client/policy/PolicyCheckerService.java +++ b/irs-edc-client/src/main/java/org/eclipse/tractusx/irs/edc/client/policy/PolicyCheckerService.java @@ -70,7 +70,7 @@ private boolean hasExpiredConstraint(final Permission permission, final List acceptedPolicy.validUntil().isBefore(OffsetDateTime.now())); } - private List getValidStoredPolicies(final String bpn) { + public List getValidStoredPolicies(final String bpn) { return policyStore.getAcceptedPolicies(bpn).stream().toList(); } diff --git a/irs-edc-client/src/test/java/org/eclipse/tractusx/irs/edc/client/SubmodelFacadeWiremockTest.java b/irs-edc-client/src/test/java/org/eclipse/tractusx/irs/edc/client/SubmodelFacadeWiremockTest.java index 135fd74842..ca71a2e2bf 100644 --- a/irs-edc-client/src/test/java/org/eclipse/tractusx/irs/edc/client/SubmodelFacadeWiremockTest.java +++ b/irs-edc-client/src/test/java/org/eclipse/tractusx/irs/edc/client/SubmodelFacadeWiremockTest.java @@ -37,6 +37,7 @@ import static org.eclipse.tractusx.irs.testing.wiremock.SubmodelFacadeWiremockSupport.TRACEABILITY_1_0; import static org.eclipse.tractusx.irs.testing.wiremock.WireMockConfig.responseWithStatus; import static org.eclipse.tractusx.irs.testing.wiremock.WireMockConfig.restTemplateProxy; +import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -235,13 +236,13 @@ void shouldThrowExceptionWhenPoliciesAreNotAccepted() { final AcceptedPolicy acceptedPolicy = new AcceptedPolicy(policy("IRS Policy", List.of(permission)), OffsetDateTime.now().plusYears(1)); - when(acceptedPoliciesProvider.getAcceptedPolicies("bpn")).thenReturn(List.of(acceptedPolicy)); + when(acceptedPoliciesProvider.getAcceptedPolicies(anyString())).thenReturn(List.of(acceptedPolicy)); prepareNegotiation(); givenThat(get(urlPathEqualTo(SUBMODEL_DATAPLANE_PATH)).willReturn(responseWithStatus(200).withBody("test"))); // Act & Assert - final String errorMessage = "Consumption of asset '5a7ab616-989f-46ae-bdf2-32027b9f6ee6-31b614f5-ec14-4ed2-a509-e7b7780083e7' is not permitted as the required catalog offer policies do not comply with defined policies."; + final String errorMessage = "Policies [IRS Policy] did not match with policy from BPNL00000000TEST."; assertThatExceptionOfType(UsagePolicyPermissionException.class).isThrownBy( () -> edcSubmodelClient.getSubmodelPayload(CONNECTOR_ENDPOINT_URL, SUBMODEL_DATAPLANE_URL, ASSET_ID, "bpn") .get()).withMessageEndingWith(errorMessage); diff --git a/irs-models/src/main/java/org/eclipse/tractusx/irs/component/partsiteinformationasplanned/PartSiteInformationAsPlanned.java b/irs-models/src/main/java/org/eclipse/tractusx/irs/component/partsiteinformationasplanned/PartSiteInformationAsPlanned.java index 7d1b12d858..b573c83388 100644 --- a/irs-models/src/main/java/org/eclipse/tractusx/irs/component/partsiteinformationasplanned/PartSiteInformationAsPlanned.java +++ b/irs-models/src/main/java/org/eclipse/tractusx/irs/component/partsiteinformationasplanned/PartSiteInformationAsPlanned.java @@ -35,6 +35,6 @@ @Jacksonized public record PartSiteInformationAsPlanned(String catenaXId, List sites) { public List getCatenaXSiteId() { - return sites().stream().map(Site::catenaXSiteId).toList(); + return sites().stream().map(Site::catenaXsiteId).toList(); } } diff --git a/irs-models/src/main/java/org/eclipse/tractusx/irs/component/partsiteinformationasplanned/Site.java b/irs-models/src/main/java/org/eclipse/tractusx/irs/component/partsiteinformationasplanned/Site.java index e7dcd83fd2..16bcc2fe17 100644 --- a/irs-models/src/main/java/org/eclipse/tractusx/irs/component/partsiteinformationasplanned/Site.java +++ b/irs-models/src/main/java/org/eclipse/tractusx/irs/component/partsiteinformationasplanned/Site.java @@ -34,5 +34,5 @@ @Builder @Jacksonized public record Site(ZonedDateTime functionValidUntil, String function, ZonedDateTime functionValidFrom, - String catenaXSiteId) { + String catenaXsiteId) { } diff --git a/local/testing/testdata/ESS_Testdata_v2.0.0-AsPlanned.json b/local/testing/testdata/ESS_Testdata_v2.0.0-AsPlanned.json index 43b0d510de..7fa5039d91 100644 --- a/local/testing/testdata/ESS_Testdata_v2.0.0-AsPlanned.json +++ b/local/testing/testdata/ESS_Testdata_v2.0.0-AsPlanned.json @@ -42,7 +42,7 @@ { "catenaXId": "urn:uuid:0733946c-59c6-41ae-9570-cb43a6e4c79e", "bpnl": "BPNL00000003AYRE", - "urn:bamm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ + "urn:samm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ { "validityPeriod": { "validFrom": "2019-04-04T03:19:03.000Z", @@ -56,7 +56,7 @@ } } ], - "urn:bamm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ + "urn:samm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ { "catenaXId": "urn:uuid:0733946c-59c6-41ae-9570-cb43a6e4c79e", "sites": [ @@ -64,12 +64,12 @@ "functionValidUntil": "2025-02-08T04:30:48.000Z", "function": "production", "functionValidFrom": "2019-08-21T02:10:36.000Z", - "catenaXSiteId": "BPNS00000003AYRE" + "catenaXsiteId": "BPNS00000003AYRE" } ] } ], - "urn:bamm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ + "urn:samm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ { "catenaXId": "urn:uuid:0733946c-59c6-41ae-9570-cb43a6e4c79e", "childItems": [ @@ -94,7 +94,7 @@ { "catenaXId": "urn:uuid:aad27ddb-43aa-4e42-98c2-01e529ef127c", "bpnl": "BPNL00ARBITRARY1", - "urn:bamm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ + "urn:samm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ { "validityPeriod": { "validFrom": "2016-12-09T05:06:53.000Z", @@ -108,7 +108,7 @@ } } ], - "urn:bamm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ + "urn:samm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ { "catenaXId": "urn:uuid:aad27ddb-43aa-4e42-98c2-01e529ef127c", "sites": [ @@ -116,12 +116,12 @@ "functionValidUntil": "2029-03-01T06:04:34.000Z", "function": "production", "functionValidFrom": "2018-02-05T09:47:59.000Z", - "catenaXSiteId": "BPNS00ARBITRARY1" + "catenaXsiteId": "BPNS00ARBITRARY1" } ] } ], - "urn:bamm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ + "urn:samm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ { "catenaXId": "urn:uuid:aad27ddb-43aa-4e42-98c2-01e529ef127c", "childItems": [ @@ -160,7 +160,7 @@ { "catenaXId": "urn:uuid:2c57b0e9-a653-411d-bdcd-64787e9fd3a7", "bpnl": "BPNL00000003B6LU", - "urn:bamm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ + "urn:samm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ { "validityPeriod": { "validFrom": "2013-04-01T00:18:40.000Z", @@ -174,7 +174,7 @@ } } ], - "urn:bamm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ + "urn:samm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ { "catenaXId": "urn:uuid:2c57b0e9-a653-411d-bdcd-64787e9fd3a7", "sites": [ @@ -182,12 +182,12 @@ "functionValidUntil": "2031-11-21T01:59:04.000Z", "function": "production", "functionValidFrom": "2013-09-04T06:14:54.000Z", - "catenaXSiteId": "BPNS00000003B6LU" + "catenaXsiteId": "BPNS00000003B6LU" } ] } ], - "urn:bamm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ + "urn:samm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ { "catenaXId": "urn:uuid:2c57b0e9-a653-411d-bdcd-64787e9fd3a7", "childItems": [ @@ -212,7 +212,7 @@ { "catenaXId": "urn:uuid:bee5614f-9e46-4c98-9209-61a6f2b2a7fc", "bpnl": "BPNL00ARBITRARY3", - "urn:bamm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ + "urn:samm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ { "validityPeriod": { "validFrom": "2015-03-15T17:25:20.000Z", @@ -226,7 +226,7 @@ } } ], - "urn:bamm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ + "urn:samm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ { "catenaXId": "urn:uuid:bee5614f-9e46-4c98-9209-61a6f2b2a7fc", "sites": [ @@ -234,12 +234,12 @@ "functionValidUntil": "2026-01-07T15:36:31.000Z", "function": "production", "functionValidFrom": "2015-04-29T17:11:59.000Z", - "catenaXSiteId": "BPNS00ARBITRARY3" + "catenaXsiteId": "BPNS00ARBITRARY3" } ] } ], - "urn:bamm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ + "urn:samm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ { "catenaXId": "urn:uuid:bee5614f-9e46-4c98-9209-61a6f2b2a7fc", "childItems": [] @@ -249,7 +249,7 @@ { "catenaXId": "urn:uuid:e5c96ab5-896a-482c-8761-efd74777ca97", "bpnl": "BPNL00000003B3NX", - "urn:bamm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ + "urn:samm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ { "validityPeriod": { "validFrom": "2014-03-22T06:27:39.000Z", @@ -263,7 +263,7 @@ } } ], - "urn:bamm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ + "urn:samm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ { "catenaXId": "urn:uuid:e5c96ab5-896a-482c-8761-efd74777ca97", "sites": [ @@ -271,12 +271,12 @@ "functionValidUntil": "2025-10-14T02:16:37.000Z", "function": "production", "functionValidFrom": "2014-07-09T06:57:44.000Z", - "catenaXSiteId": "BPNS00000003B3NX" + "catenaXsiteId": "BPNS00000003B3NX" } ] } ], - "urn:bamm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ + "urn:samm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ { "catenaXId": "urn:uuid:e5c96ab5-896a-482c-8761-efd74777ca97", "childItems": [ @@ -301,7 +301,7 @@ { "catenaXId": "urn:uuid:c7a2b803-f8fe-4b79-b6fc-967ce847c9a9", "bpnl": "BPNL00000003B3NX", - "urn:bamm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ + "urn:samm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ { "validityPeriod": { "validFrom": "2015-06-20T09:16:05.000Z", @@ -315,7 +315,7 @@ } } ], - "urn:bamm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ + "urn:samm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ { "catenaXId": "urn:uuid:c7a2b803-f8fe-4b79-b6fc-967ce847c9a9", "sites": [ @@ -323,12 +323,12 @@ "functionValidUntil": "2032-06-15T14:18:34.000Z", "function": "production", "functionValidFrom": "2014-12-27T02:28:17.000Z", - "catenaXSiteId": "BPNS00000003B3NX" + "catenaXsiteId": "BPNS00000003B3NX" } ] } ], - "urn:bamm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ + "urn:samm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ { "catenaXId": "urn:uuid:c7a2b803-f8fe-4b79-b6fc-967ce847c9a9", "childItems": [ @@ -353,7 +353,7 @@ { "catenaXId": "urn:uuid:86f69643-3b90-4e34-90bf-789edcf40e7e", "bpnl": "BPNL00000003B6LU", - "urn:bamm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ + "urn:samm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ { "validityPeriod": { "validFrom": "2013-04-11T05:30:04.000Z", @@ -367,7 +367,7 @@ } } ], - "urn:bamm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ + "urn:samm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ { "catenaXId": "urn:uuid:86f69643-3b90-4e34-90bf-789edcf40e7e", "sites": [ @@ -375,12 +375,12 @@ "functionValidUntil": "2026-11-05T11:21:29.000Z", "function": "production", "functionValidFrom": "2016-07-05T20:28:02.000Z", - "catenaXSiteId": "BPNS00000003B6LU" + "catenaXsiteId": "BPNS00000003B6LU" } ] } ], - "urn:bamm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ + "urn:samm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ { "catenaXId": "urn:uuid:86f69643-3b90-4e34-90bf-789edcf40e7e", "childItems": [] @@ -390,7 +390,7 @@ { "catenaXId": "urn:uuid:68904173-ad59-4a77-8412-3e73fcafbd8b", "bpnl": "BPNL00000003B6LU", - "urn:bamm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ + "urn:samm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ { "validityPeriod": { "validFrom": "2013-09-21T23:24:07.000Z", @@ -404,7 +404,7 @@ } } ], - "urn:bamm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ + "urn:samm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ { "catenaXId": "urn:uuid:68904173-ad59-4a77-8412-3e73fcafbd8b", "sites": [ @@ -412,12 +412,12 @@ "functionValidUntil": "2025-03-23T05:10:13.000Z", "function": "production", "functionValidFrom": "2018-12-09T05:11:28.000Z", - "catenaXSiteId": "BPNS00000003B6LU" + "catenaXsiteId": "BPNS00000003B6LU" } ] } ], - "urn:bamm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ + "urn:samm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ { "catenaXId": "urn:uuid:68904173-ad59-4a77-8412-3e73fcafbd8b", "childItems": [ @@ -442,7 +442,7 @@ { "catenaXId": "urn:uuid:e3e2a4d8-58bc-4ae9-afa2-e8946fda1f77", "bpnl": "BPNL00000004FAIL", - "urn:bamm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ + "urn:samm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ { "validityPeriod": { "validFrom": "2015-01-16T14:23:33.000Z", @@ -456,7 +456,7 @@ } } ], - "urn:bamm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ + "urn:samm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ { "catenaXId": "urn:uuid:e3e2a4d8-58bc-4ae9-afa2-e8946fda1f77", "sites": [ @@ -464,12 +464,12 @@ "functionValidUntil": "2024-06-08T03:49:26.000Z", "function": "production", "functionValidFrom": "2015-08-29T08:43:40.000Z", - "catenaXSiteId": "BPNS00000004FAIL" + "catenaXsiteId": "BPNS00000004FAIL" } ] } ], - "urn:bamm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ + "urn:samm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ { "catenaXId": "urn:uuid:e3e2a4d8-58bc-4ae9-afa2-e8946fda1f77", "childItems": [ @@ -494,7 +494,7 @@ { "catenaXId": "urn:uuid:b1d46d01-e308-4bd3-863a-331e64751d76", "bpnl": "BPNL00000003AXS3", - "urn:bamm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ + "urn:samm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ { "validityPeriod": { "validFrom": "2014-07-30T07:17:16.000Z", @@ -508,7 +508,7 @@ } } ], - "urn:bamm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ + "urn:samm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ { "catenaXId": "urn:uuid:b1d46d01-e308-4bd3-863a-331e64751d76", "sites": [ @@ -516,12 +516,12 @@ "functionValidUntil": "2026-03-11T19:58:28.000Z", "function": "production", "functionValidFrom": "2020-03-04T21:09:12.000Z", - "catenaXSiteId": "BPNS00000003AXS3" + "catenaXsiteId": "BPNS00000003AXS3" } ] } ], - "urn:bamm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ + "urn:samm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ { "catenaXId": "urn:uuid:b1d46d01-e308-4bd3-863a-331e64751d76", "childItems": [] @@ -531,7 +531,7 @@ { "catenaXId": "urn:uuid:1c7a25ea-0490-4944-b9c9-d8c666d47958", "bpnl": "BPNL00ARBITRARY4", - "urn:bamm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ + "urn:samm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ { "validityPeriod": { "validFrom": "2019-04-04T03:19:03.000Z", @@ -545,7 +545,7 @@ } } ], - "urn:bamm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ + "urn:samm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ { "catenaXId": "urn:uuid:1c7a25ea-0490-4944-b9c9-d8c666d47958", "sites": [ @@ -553,12 +553,12 @@ "functionValidUntil": "2025-02-08T04:30:48.000Z", "function": "production", "functionValidFrom": "2019-08-21T02:10:36.000Z", - "catenaXSiteId": "BPNS00ARBITRARY4" + "catenaXsiteId": "BPNS00ARBITRARY4" } ] } ], - "urn:bamm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ + "urn:samm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ { "catenaXId": "urn:uuid:1c7a25ea-0490-4944-b9c9-d8c666d47958", "childItems": [ @@ -583,7 +583,7 @@ { "catenaXId": "urn:uuid:2190e4b8-63ee-411d-bf57-6cdc495bc1df", "bpnl": "BPNL00ARBITRARY5", - "urn:bamm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ + "urn:samm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ { "validityPeriod": { "validFrom": "2016-12-09T05:06:53.000Z", @@ -597,7 +597,7 @@ } } ], - "urn:bamm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ + "urn:samm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ { "catenaXId": "urn:uuid:2190e4b8-63ee-411d-bf57-6cdc495bc1df", "sites": [ @@ -605,12 +605,12 @@ "functionValidUntil": "2029-03-01T06:04:34.000Z", "function": "production", "functionValidFrom": "2018-02-05T09:47:59.000Z", - "catenaXSiteId": "BPNS00ARBITRARY5" + "catenaXsiteId": "BPNS00ARBITRARY5" } ] } ], - "urn:bamm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ + "urn:samm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ { "catenaXId": "urn:uuid:2190e4b8-63ee-411d-bf57-6cdc495bc1df", "childItems": [ @@ -635,7 +635,7 @@ { "catenaXId": "urn:uuid:3d61ada2-1a50-42a0-b411-40a932dd56cc", "bpnl": "BPNL00ARBITRARY6", - "urn:bamm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ + "urn:samm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ { "validityPeriod": { "validFrom": "2014-03-22T06:27:39.000Z", @@ -649,7 +649,7 @@ } } ], - "urn:bamm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ + "urn:samm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ { "catenaXId": "urn:uuid:3d61ada2-1a50-42a0-b411-40a932dd56cc", "sites": [ @@ -657,12 +657,12 @@ "functionValidUntil": "2025-10-14T02:16:37.000Z", "function": "production", "functionValidFrom": "2014-07-09T06:57:44.000Z", - "catenaXSiteId": "BPNS00ARBITRARY6" + "catenaXsiteId": "BPNS00ARBITRARY6" } ] } ], - "urn:bamm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ + "urn:samm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ { "catenaXId": "urn:uuid:3d61ada2-1a50-42a0-b411-40a932dd56cc", "childItems": [ @@ -687,7 +687,7 @@ { "catenaXId": "urn:uuid:52207a60-e541-4bea-8ec4-3172f09e6dbb", "bpnl": "BPNL00ARBITRARY7", - "urn:bamm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ + "urn:samm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ { "validityPeriod": { "validFrom": "2015-06-20T09:16:05.000Z", @@ -701,7 +701,7 @@ } } ], - "urn:bamm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ + "urn:samm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ { "catenaXId": "urn:uuid:52207a60-e541-4bea-8ec4-3172f09e6dbb", "sites": [ @@ -709,12 +709,12 @@ "functionValidUntil": "2032-06-15T14:18:34.000Z", "function": "production", "functionValidFrom": "2014-12-27T02:28:17.000Z", - "catenaXSiteId": "BPNS00ARBITRARY7" + "catenaXsiteId": "BPNS00ARBITRARY7" } ] } ], - "urn:bamm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ + "urn:samm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ { "catenaXId": "urn:uuid:52207a60-e541-4bea-8ec4-3172f09e6dbb", "childItems": [ @@ -739,7 +739,7 @@ { "catenaXId": "urn:uuid:3a2a1ca9-c6c1-49c7-a7ae-1dfc5fb9881f", "bpnl": "BPNL00ARBITRARY8", - "urn:bamm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ + "urn:samm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ { "validityPeriod": { "validFrom": "2013-09-21T23:24:07.000Z", @@ -753,7 +753,7 @@ } } ], - "urn:bamm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ + "urn:samm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ { "catenaXId": "urn:uuid:3a2a1ca9-c6c1-49c7-a7ae-1dfc5fb9881f", "sites": [ @@ -761,12 +761,12 @@ "functionValidUntil": "2025-03-23T05:10:13.000Z", "function": "production", "functionValidFrom": "2018-12-09T05:11:28.000Z", - "catenaXSiteId": "BPNS00ARBITRARY8" + "catenaXsiteId": "BPNS00ARBITRARY8" } ] } ], - "urn:bamm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ + "urn:samm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ { "catenaXId": "urn:uuid:3a2a1ca9-c6c1-49c7-a7ae-1dfc5fb9881f", "childItems": [ @@ -795,7 +795,7 @@ }, "createdOn": "2022-02-03T14:48:54.709Z", "lastModifiedOn": "2022-02-03T14:48:54.709Z", - "businessPartner": "BPNL00ARBITRARY10", + "businessPartner": "BPNL0ARBITRARY10", "catenaXId": "urn:uuid:22847bfd-eb8d-41b7-b088-3a548b7541a8" } ] @@ -805,7 +805,7 @@ { "catenaXId": "urn:uuid:9846f1c6-0dd0-4d5a-9c7a-30af0b7e0247", "bpnl": "BPNL00000004FAIL", - "urn:bamm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ + "urn:samm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ { "validityPeriod": { "validFrom": "2014-07-30T07:17:16.000Z", @@ -819,7 +819,7 @@ } } ], - "urn:bamm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ + "urn:samm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ { "catenaXId": "urn:uuid:9846f1c6-0dd0-4d5a-9c7a-30af0b7e0247", "sites": [ @@ -827,7 +827,7 @@ "functionValidUntil": "2026-03-11T19:58:28.000Z", "function": "production", "functionValidFrom": "2020-03-04T21:09:12.000Z", - "catenaXSiteId": "BPNS00000004FAIL" + "catenaXsiteId": "BPNS00000004FAIL" } ] } @@ -836,7 +836,7 @@ { "catenaXId": "urn:uuid:22847bfd-eb8d-41b7-b088-3a548b7541a8", "bpnl": "BPNL0ARBITRARY10", - "urn:bamm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ + "urn:samm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ { "validityPeriod": { "validFrom": "2015-01-16T14:23:33.000Z", @@ -850,7 +850,7 @@ } } ], - "urn:bamm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ + "urn:samm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ { "catenaXId": "urn:uuid:22847bfd-eb8d-41b7-b088-3a548b7541a8", "sites": [ @@ -858,12 +858,12 @@ "functionValidUntil": "2024-06-08T03:49:26.000Z", "function": "production", "functionValidFrom": "2015-08-29T08:43:40.000Z", - "catenaXSiteId": "BPNS0ARBITRARY10" + "catenaXsiteId": "BPNS0ARBITRARY10" } ] } ], - "urn:bamm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ + "urn:samm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ { "catenaXId": "urn:uuid:22847bfd-eb8d-41b7-b088-3a548b7541a8", "childItems": [ @@ -878,7 +878,7 @@ }, "createdOn": "2022-02-03T14:48:54.709Z", "lastModifiedOn": "2022-02-03T14:48:54.709Z", - "businessPartner": "BPNS00ARBITRARY11", + "businessPartner": "BPNL0ARBITRARY11", "catenaXId": "urn:uuid:01796f87-9677-43f0-9c62-61665be29d85" } ] @@ -888,7 +888,7 @@ { "catenaXId": "urn:uuid:01796f87-9677-43f0-9c62-61665be29d85", "bpnl": "BPNL0ARBITRARY11", - "urn:bamm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ + "urn:samm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ { "validityPeriod": { "validFrom": "2014-07-30T07:17:16.000Z", @@ -902,7 +902,7 @@ } } ], - "urn:bamm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ + "urn:samm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ { "catenaXId": "urn:uuid:01796f87-9677-43f0-9c62-61665be29d85", "sites": [ @@ -910,7 +910,7 @@ "functionValidUntil": "2026-03-11T19:58:28.000Z", "function": "production", "functionValidFrom": "2020-03-04T21:09:12.000Z", - "catenaXSiteId": "BPNS0ARBITRARY11" + "catenaXsiteId": "BPNS0ARBITRARY11" } ] } @@ -919,7 +919,7 @@ { "catenaXId": "urn:uuid:b0faace3-d41f-45b8-9573-175a33efbaaf", "bpnl": "BPNL00ARBITRARY8", - "urn:bamm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ + "urn:samm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ { "validityPeriod": { "validFrom": "2013-09-21T23:24:07.000Z", @@ -933,7 +933,7 @@ } } ], - "urn:bamm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ + "urn:samm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ { "catenaXId": "urn:uuid:b0faace3-d41f-45b8-9573-175a33efbaaf", "childItems": [ @@ -972,7 +972,7 @@ { "catenaXId": "urn:uuid:ec759282-e8fb-4a94-aafe-71585a3f2948", "bpnl": "BPNL00ARBITRARY9", - "urn:bamm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ + "urn:samm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ { "catenaXId": "urn:uuid:ec759282-e8fb-4a94-aafe-71585a3f2948", "childItems": [] @@ -982,7 +982,7 @@ { "catenaXId": "urn:uuid:1d12d050-d388-4f3d-a880-c9ec4ac84786", "bpnl": "BPNL0ARBITRARY10", - "urn:bamm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ + "urn:samm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ { "catenaXId": "urn:uuid:1d12d050-d388-4f3d-a880-c9ec4ac84786", "childItems": [ @@ -1007,7 +1007,7 @@ { "catenaXId": "urn:uuid:b636c28a-6924-4498-88f9-5d073f16ed65", "bpnl": "BPNL0ARBITRARY11", - "urn:bamm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ + "urn:samm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ { "catenaXId": "urn:uuid:b636c28a-6924-4498-88f9-5d073f16ed65", "childItems": [] @@ -1017,7 +1017,7 @@ { "catenaXId": "urn:uuid:f5024c70-6c4f-4ec5-b23b-aa6a91110611", "bpnl": "BPNL00ARBITRARY8", - "urn:bamm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ + "urn:samm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ { "validityPeriod": { "validFrom": "2013-09-21T23:24:07.000Z", @@ -1031,7 +1031,7 @@ } } ], - "urn:bamm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ + "urn:samm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ { "catenaXId": "urn:uuid:f5024c70-6c4f-4ec5-b23b-aa6a91110611", "sites": [ @@ -1043,7 +1043,7 @@ ] } ], - "urn:bamm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ + "urn:samm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ { "catenaXId": "urn:uuid:f5024c70-6c4f-4ec5-b23b-aa6a91110611", "childItems": [ @@ -1082,7 +1082,7 @@ { "catenaXId": "urn:uuid:51eeafa1-a7a5-4f2d-8c7a-15036eb43553", "bpnl": "BPNL00ARBITRARY9", - "urn:bamm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ + "urn:samm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ { "catenaXId": "urn:uuid:51eeafa1-a7a5-4f2d-8c7a-15036eb43553", "childItems": [] @@ -1092,7 +1092,7 @@ { "catenaXId": "urn:uuid:5d827e81-ac88-4acb-8a0e-8565ddd729b1", "bpnl": "BPNL0ARBITRARY10", - "urn:bamm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ + "urn:samm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ { "catenaXId": "urn:uuid:5d827e81-ac88-4acb-8a0e-8565ddd729b1", "childItems": [ @@ -1117,7 +1117,7 @@ { "catenaXId": "urn:uuid:31557090-b504-41a2-8f13-e0e2c2c16932", "bpnl": "BPNL0ARBITRARY11", - "urn:bamm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ + "urn:samm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ { "catenaXId": "urn:uuid:31557090-b504-41a2-8f13-e0e2c2c16932", "childItems": [] @@ -1127,7 +1127,7 @@ { "catenaXId": "urn:uuid:e1bc2e62-165e-4f37-9d06-214476d5547f", "bpnl": "BPNL00ARBITRARY8", - "urn:bamm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ + "urn:samm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ { "validityPeriod": { "validFrom": "2013-09-21T23:24:07.000Z", @@ -1141,7 +1141,7 @@ } } ], - "urn:bamm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ + "urn:samm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ { "catenaXId": "urn:uuid:e1bc2e62-165e-4f37-9d06-214476d5547f", "sites": [ @@ -1149,12 +1149,12 @@ "functionValidUntil": "2025-03-23T05:10:13.000Z", "function": "production", "functionValidFrom": "2018-12-09T05:11:28.000Z", - "catenaXSiteId": "BPNS00ARBITRARY8" + "catenaXsiteId": "BPNS00ARBITRARY8" } ] } ], - "urn:bamm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ + "urn:samm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ { "catenaXId": "urn:uuid:e1bc2e62-165e-4f37-9d06-214476d5547f", "childItems": [ @@ -1183,7 +1183,7 @@ }, "createdOn": "2022-02-03T14:48:54.709Z", "lastModifiedOn": "2022-02-03T14:48:54.709Z", - "businessPartner": "BPNL00ARBITRARY10", + "businessPartner": "BPNL0ARBITRARY10", "catenaXId": "urn:uuid:22847bfd-eb8d-41b7-b088-3a548b7541a8" } ] @@ -1193,7 +1193,7 @@ { "catenaXId": "urn:uuid:642702fc-0987-4fd6-b29c-4b623a005c32", "bpnl": "BPNL00ARBITRARY8", - "urn:bamm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ + "urn:samm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ { "validityPeriod": { "validFrom": "2013-09-21T23:24:07.000Z", @@ -1207,7 +1207,7 @@ } } ], - "urn:bamm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ + "urn:samm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ { "catenaXId": "urn:uuid:642702fc-0987-4fd6-b29c-4b623a005c32", "sites": [ @@ -1215,12 +1215,12 @@ "functionValidUntil": "2025-03-23T05:10:13.000Z", "function": "production", "functionValidFrom": "2018-12-09T05:11:28.000Z", - "catenaXSiteId": "BPNS00ARBITRARY8" + "catenaXsiteId": "BPNS00ARBITRARY8" } ] } ], - "urn:bamm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ + "urn:samm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ { "catenaXId": "urn:uuid:642702fc-0987-4fd6-b29c-4b623a005c32", "childItems": [ @@ -1249,7 +1249,7 @@ }, "createdOn": "2022-02-03T14:48:54.709Z", "lastModifiedOn": "2022-02-03T14:48:54.709Z", - "businessPartner": "BPNL00ARBITRARY10", + "businessPartner": "BPNL0ARBITRARY10", "catenaXId": "urn:uuid:22847bfd-eb8d-41b7-b088-3a548b7541a8" } ] @@ -1259,7 +1259,7 @@ { "catenaXId": "urn:uuid:5f968e65-97fc-4156-a168-5dfbec8de76c", "bpnl": "BPNL00ARBITRARY8", - "urn:bamm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ + "urn:samm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ { "validityPeriod": { "validFrom": "2013-09-21T23:24:07.000Z", @@ -1273,7 +1273,7 @@ } } ], - "urn:bamm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ + "urn:samm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ { "catenaXId": "urn:uuid:5f968e65-97fc-4156-a168-5dfbec8de76c", "sites": [ @@ -1281,12 +1281,12 @@ "functionValidUntil": "2025-03-23T05:10:13.000Z", "function": "production", "functionValidFrom": "2018-12-09T05:11:28.000Z", - "catenaXSiteId": "BPNS00ARBITRARY8" + "catenaXsiteId": "BPNS00ARBITRARY8" } ] } ], - "urn:bamm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ + "urn:samm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ { "catenaXId": "urn:uuid:5f968e65-97fc-4156-a168-5dfbec8de76c", "childItems": [ @@ -1315,7 +1315,7 @@ }, "createdOn": "2022-02-03T14:48:54.709Z", "lastModifiedOn": "2022-02-03T14:48:54.709Z", - "businessPartner": "BPNL00ARBITRARY10", + "businessPartner": "BPNL0ARBITRARY10", "catenaXId": "urn:uuid:22847bfd-eb8d-41b7-b088-3a548b7541a8" } ] @@ -1325,7 +1325,7 @@ { "catenaXId": "urn:uuid:c8a7b53a-53f1-4c10-9a7f-864188ca1bdd", "bpnl": "BPNL00ARBITRARY8", - "urn:bamm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ + "urn:samm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ { "validityPeriod": { "validFrom": "2013-09-21T23:24:07.000Z", @@ -1339,7 +1339,7 @@ } } ], - "urn:bamm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ + "urn:samm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ { "catenaXId": "urn:uuid:c8a7b53a-53f1-4c10-9a7f-864188ca1bdd", "sites": [ @@ -1347,12 +1347,12 @@ "functionValidUntil": "2025-03-23T05:10:13.000Z", "function": "production", "functionValidFrom": "2018-12-09T05:11:28.000Z", - "catenaXSiteId": "BPNS00ARBITRARY8" + "catenaXsiteId": "BPNS00ARBITRARY8" } ] } ], - "urn:bamm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ + "urn:samm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ { "catenaXId": "urn:uuid:c8a7b53a-53f1-4c10-9a7f-864188ca1bdd", "childItems": [ @@ -1381,7 +1381,7 @@ }, "createdOn": "2022-02-03T14:48:54.709Z", "lastModifiedOn": "2022-02-03T14:48:54.709Z", - "businessPartner": "BPNL00ARBITRARY10", + "businessPartner": "BPNL0ARBITRARY10", "catenaXId": "urn:uuid:22847bfd-eb8d-41b7-b088-3a548b7541a8" } ] @@ -1391,7 +1391,7 @@ { "catenaXId": "urn:uuid:4af880f1-cf60-4f30-8338-e9901e1c3050", "bpnl": "BPNL00ARBITRARY4", - "urn:bamm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ + "urn:samm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ { "validityPeriod": { "validFrom": "2019-04-04T03:19:03.000Z", @@ -1405,7 +1405,7 @@ } } ], - "urn:bamm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ + "urn:samm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ { "catenaXId": "urn:uuid:4af880f1-cf60-4f30-8338-e9901e1c3050", "sites": [ @@ -1413,12 +1413,12 @@ "functionValidUntil": "2025-02-08T04:30:48.000Z", "function": "production", "functionValidFrom": "2019-08-21T02:10:36.000Z", - "catenaXSiteId": "BPNS00ARBITRARY4" + "catenaXsiteId": "BPNS00ARBITRARY4" } ] } ], - "urn:bamm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ + "urn:samm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ { "catenaXId": "urn:uuid:4af880f1-cf60-4f30-8338-e9901e1c3050", "childItems": [ @@ -1443,7 +1443,7 @@ { "catenaXId": "urn:uuid:c8c3e7af-c348-42ad-bc75-f83024d9c44c", "bpnl": "BPNL00ARBITRARY4", - "urn:bamm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ + "urn:samm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ { "validityPeriod": { "validFrom": "2019-04-04T03:19:03.000Z", @@ -1457,7 +1457,7 @@ } } ], - "urn:bamm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ + "urn:samm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ { "catenaXId": "urn:uuid:c8c3e7af-c348-42ad-bc75-f83024d9c44c", "sites": [ @@ -1465,12 +1465,12 @@ "functionValidUntil": "2025-02-08T04:30:48.000Z", "function": "production", "functionValidFrom": "2019-08-21T02:10:36.000Z", - "catenaXSiteId": "BPNS00ARBITRARY4" + "catenaXsiteId": "BPNS00ARBITRARY4" } ] } ], - "urn:bamm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ + "urn:samm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ { "catenaXId": "urn:uuid:c8c3e7af-c348-42ad-bc75-f83024d9c44c", "childItems": [ @@ -1495,7 +1495,7 @@ { "catenaXId": "urn:uuid:23565927-339d-48d0-be66-fb031fc21082", "bpnl": "BPNL00ARBITRARY4", - "urn:bamm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ + "urn:samm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ { "validityPeriod": { "validFrom": "2019-04-04T03:19:03.000Z", @@ -1509,7 +1509,7 @@ } } ], - "urn:bamm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ + "urn:samm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ { "catenaXId": "urn:uuid:23565927-339d-48d0-be66-fb031fc21082", "sites": [ @@ -1517,12 +1517,12 @@ "functionValidUntil": "2025-02-08T04:30:48.000Z", "function": "production", "functionValidFrom": "2019-08-21T02:10:36.000Z", - "catenaXSiteId": "BPNS00ARBITRARY4" + "catenaXsiteId": "BPNS00ARBITRARY4" } ] } ], - "urn:bamm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ + "urn:samm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ { "catenaXId": "urn:uuid:23565927-339d-48d0-be66-fb031fc21082", "childItems": [ @@ -1547,7 +1547,7 @@ { "catenaXId": "urn:uuid:8c325e8d-1340-427a-a622-5eddc017ae2b", "bpnl": "BPNL00ARBITRARY4", - "urn:bamm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ + "urn:samm:io.catenax.part_as_planned:1.0.1#PartAsPlanned": [ { "validityPeriod": { "validFrom": "2019-04-04T03:19:03.000Z", @@ -1561,7 +1561,7 @@ } } ], - "urn:bamm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ + "urn:samm:io.catenax.part_site_information_as_planned:1.0.0#PartSiteInformationAsPlanned": [ { "catenaXId": "urn:uuid:8c325e8d-1340-427a-a622-5eddc017ae2b", "sites": [ @@ -1569,12 +1569,12 @@ "functionValidUntil": "2025-02-08T04:30:48.000Z", "function": "production", "functionValidFrom": "2019-08-21T02:10:36.000Z", - "catenaXSiteId": "BPNS00ARBITRARY4" + "catenaXsiteId": "BPNS00ARBITRARY4" } ] } ], - "urn:bamm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ + "urn:samm:io.catenax.single_level_bom_as_planned:2.0.0#SingleLevelBomAsPlanned": [ { "catenaXId": "urn:uuid:8c325e8d-1340-427a-a622-5eddc017ae2b", "childItems": [ diff --git a/pom.xml b/pom.xml index c2a3bd8350..fb0c6f84d7 100644 --- a/pom.xml +++ b/pom.xml @@ -75,7 +75,7 @@ - 2.1.0-SNAPSHOT + 2.1.2-SNAPSHOT 3.1.11