From 8028ac4c66fec22d720ef340d5b42f5194883553 Mon Sep 17 00:00:00 2001 From: Pawel Sosnowski Date: Tue, 5 Mar 2024 15:26:02 +0100 Subject: [PATCH] feat(irs-api):[#199] register policy definition for certain bpnls --- .../configmap-spring-app-config.yaml | 2 - docs/src/api/irs-api.yaml | 146 +- .../job/delegate/AbstractDelegate.java | 8 +- .../configuration/RegistryConfiguration.java | 2 +- .../MockedNotificationReceiverController.java | 2 +- .../ess/service/EdcNotificationSender.java | 2 +- ...vestigationJobProcessingEventListener.java | 4 +- irs-api/src/main/resources/application.yml | 4 +- .../tractusx/irs/InMemoryBlobStore.java | 5 + .../job/delegate/AbstractDelegateTest.java | 18 +- .../delegate/RelationshipDelegateTest.java | 10 +- .../job/delegate/SubmodelDelegateTest.java | 4 +- ...kedNotificationReceiverControllerTest.java | 4 +- .../service/EdcNotificationSenderTest.java | 3 +- ...igationJobProcessingEventListenerTest.java | 34 +- .../common/persistence/BlobPersistence.java | 5 + .../BlobPersistenceRuntimeException.java | 30 + .../persistence/MinioBlobPersistence.java | 52 +- .../client/ContractNegotiationService.java | 8 +- .../irs/edc/client/EdcSubmodelClient.java | 10 +- .../irs/edc/client/EdcSubmodelClientImpl.java | 26 +- .../client/EdcSubmodelClientLocalStub.java | 9 +- .../irs/edc/client/EdcSubmodelFacade.java | 14 +- .../policy/AcceptedPoliciesProvider.java | 4 +- .../client/policy/PolicyCheckerService.java | 8 +- .../ContractNegotiationServiceTest.java | 28 +- .../EdcSubmodelClientLocalStubTest.java | 2 +- .../irs/edc/client/EdcSubmodelClientTest.java | 44 +- .../irs/edc/client/EdcSubmodelFacadeTest.java | 36 +- .../client/SubmodelFacadeWiremockTest.java | 62 +- .../irs/edc/client/SubmodelRetryerTest.java | 4 +- .../policy/AcceptedPoliciesProviderTest.java | 8 +- .../policy/PolicyCheckerServiceTest.java | 37 +- .../controllers/PolicyStoreController.java | 83 +- .../models/CreatePolicyRequest.java | 5 +- .../models/UpdatePolicyRequest.java | 5 +- .../persistence/PolicyPersistence.java | 57 +- .../services/PolicyStoreService.java | 93 +- .../PolicyStoreControllerTest.java | 15 +- .../persistence/PolicyPersistenceTest.java | 34 +- .../services/PolicyStoreServiceTest.java | 56 +- .../registryclient/DefaultConfiguration.java | 2 +- .../DefaultConfigurationTest.java | 6 +- local/testing/IRS_Request_Collection.json | 7489 ++++++++--------- 44 files changed, 4334 insertions(+), 4146 deletions(-) create mode 100644 irs-common/src/main/java/org/eclipse/tractusx/irs/common/persistence/BlobPersistenceRuntimeException.java diff --git a/charts/irs-helm/templates/configmap-spring-app-config.yaml b/charts/irs-helm/templates/configmap-spring-app-config.yaml index c5811fc1a7..8086564b97 100644 --- a/charts/irs-helm/templates/configmap-spring-app-config.yaml +++ b/charts/irs-helm/templates/configmap-spring-app-config.yaml @@ -157,8 +157,6 @@ data: {{- end }} {{- end }} - apiAllowedBpn: {{ tpl (.Values.bpn | default "") . | quote }} - {{- if .Values.config.content }} {{- tpl (toYaml .Values.config.content) . | nindent 4 }} {{- end }} diff --git a/docs/src/api/irs-api.yaml b/docs/src/api/irs-api.yaml index eae3930a15..62a9d82213 100644 --- a/docs/src/api/irs-api.yaml +++ b/docs/src/api/irs-api.yaml @@ -874,6 +874,50 @@ paths: summary: Register a policy that should be accepted in EDC negotiation. tags: - Item Relationship Service + put: + description: Updates an existing policy. + operationId: updateAllowedPolicy + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdatePolicyRequest' + required: true + responses: + "200": + description: OK + "400": + content: + application/json: + examples: + error: + $ref: '#/components/examples/error-response-400' + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Policy update failed. + "401": + content: + application/json: + examples: + error: + $ref: '#/components/examples/error-response-401' + schema: + $ref: '#/components/schemas/ErrorResponse' + description: No valid authentication credentials. + "403": + content: + application/json: + examples: + error: + $ref: '#/components/examples/error-response-403' + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Authorization refused by server. + security: + - api_key: [ ] + summary: Updates an existing policy. + tags: + - Item Relationship Service /irs/policies/{policyId}: delete: description: Removes a policy that should no longer be accepted in EDC negotiation. @@ -919,33 +963,27 @@ paths: summary: Removes a policy that should no longer be accepted in EDC negotiation. tags: - Item Relationship Service - put: - description: Updates an existing policy with new validUntil value. - operationId: updateAllowedPolicy + /irs/policies/{bpns}: + get: + description: Lists the registered policies that should be accepted in EDC negotiation. + operationId: getAllowedPoliciesByBpn parameters: - - in: path - name: policyId + - name: bpns + in: path required: true schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/UpdatePolicyRequest' - required: true + type: array + items: + type: string responses: "200": - description: OK - "400": content: application/json: - examples: - error: - $ref: '#/components/examples/error-response-400' schema: - $ref: '#/components/schemas/ErrorResponse' - description: Policy update failed. + type: array + items: + $ref: '#/components/schemas/Policy' + description: Returns the policies. "401": content: application/json: @@ -965,8 +1003,8 @@ paths: $ref: '#/components/schemas/ErrorResponse' description: Authorization refused by server. security: - - api_key: [] - summary: Updates an existing policy with new validUntil value. + - api_key: [ ] + summary: Lists the registered policies that should be accepted in EDC negotiation. tags: - Item Relationship Service components: @@ -1714,9 +1752,9 @@ components: description: Request to add a policy properties: payload: - type: object - additionalProperties: - $ref: '#/components/schemas/JsonValue' + type: array + items: + $ref: '#/components/schemas/JsonObject' example: payload: '@context': @@ -1736,23 +1774,14 @@ components: '@id': 'odrl:eq' 'odrl:rightOperand': ID 3.1 Trace validUntil: '2025-12-12T23:59:59.999Z' - properties: - empty: - type: boolean - valueType: - type: string - enum: - - '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 + businessPartnerNumbers: + type: array + items: + type: string required: - payload - validUntil @@ -2099,6 +2128,41 @@ components: items: $ref: '#/components/schemas/Tombstone' maxItems: 2147483647 + JsonObject: + type: object + additionalProperties: false + properties: + valueType: + type: string + enum: + - 'ARRAY' + - 'OBJECT' + - 'STRING' + - 'NUMBER' + - 'TRUE' + - 'FALSE' + - 'NULL' + empty: + type: boolean + example: + payload: + '@context': + odrl: http://www.w3.org/ns/odrl/2/ + '@id': policy-id + 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 + validUntil: '2025-12-12T23:59:59.999Z' JsonValue: type: object additionalProperties: false @@ -2744,6 +2808,14 @@ components: additionalProperties: false description: Request to add a policy properties: + businessPartnerNumbers: + type: array + items: + type: string + policiesIds: + type: array + items: + type: string validUntil: type: string format: date-time diff --git a/irs-api/src/main/java/org/eclipse/tractusx/irs/aaswrapper/job/delegate/AbstractDelegate.java b/irs-api/src/main/java/org/eclipse/tractusx/irs/aaswrapper/job/delegate/AbstractDelegate.java index 5823cff156..0f3664fc39 100644 --- a/irs-api/src/main/java/org/eclipse/tractusx/irs/aaswrapper/job/delegate/AbstractDelegate.java +++ b/irs-api/src/main/java/org/eclipse/tractusx/irs/aaswrapper/job/delegate/AbstractDelegate.java @@ -98,22 +98,22 @@ protected SubmodelDescriptor requestSubmodel(final EdcSubmodelFacade submodelFac log.debug("Using dspEndpoint of subprotocolBody '{}' to get submodel payload", subprotocolBody); return submodelFacade.getSubmodelPayload(dspEndpoint.get(), digitalTwinRegistryEndpoint.getProtocolInformation().getHref(), - extractAssetId(subprotocolBody)); + extractAssetId(subprotocolBody), bpn); } else { log.info("SubprotocolBody does not contain '{}'. Using Discovery Service as fallback.", DSP_ENDPOINT); final List connectorEndpoints = connectorEndpointsService.fetchConnectorEndpoints(bpn); - return getSubmodel(submodelFacade, digitalTwinRegistryEndpoint, connectorEndpoints); + return getSubmodel(submodelFacade, digitalTwinRegistryEndpoint, connectorEndpoints, bpn); } } private SubmodelDescriptor getSubmodel(final EdcSubmodelFacade submodelFacade, final Endpoint digitalTwinRegistryEndpoint, - final List connectorEndpoints) throws EdcClientException { + final List connectorEndpoints, final String bpn) throws EdcClientException { for (final String connectorEndpoint : connectorEndpoints) { try { return submodelFacade.getSubmodelPayload(connectorEndpoint, digitalTwinRegistryEndpoint.getProtocolInformation().getHref(), - extractAssetId(digitalTwinRegistryEndpoint.getProtocolInformation().getSubprotocolBody())); + extractAssetId(digitalTwinRegistryEndpoint.getProtocolInformation().getSubprotocolBody()), bpn); } catch (EdcClientException e) { log.info("EdcClientException while accessing digitalTwinRegistryEndpoint '{}'", connectorEndpoint, e); } diff --git a/irs-api/src/main/java/org/eclipse/tractusx/irs/configuration/RegistryConfiguration.java b/irs-api/src/main/java/org/eclipse/tractusx/irs/configuration/RegistryConfiguration.java index db7de31bb7..bb71edd17c 100644 --- a/irs-api/src/main/java/org/eclipse/tractusx/irs/configuration/RegistryConfiguration.java +++ b/irs-api/src/main/java/org/eclipse/tractusx/irs/configuration/RegistryConfiguration.java @@ -75,7 +75,7 @@ public DecentralDigitalTwinRegistryService decentralDigitalTwinRegistryService( return new DecentralDigitalTwinRegistryService(connectorEndpointsService, new EndpointDataForConnectorsService((edcConnectorEndpoint, assetType, assetValue) -> { try { - return facade.getEndpointReferenceForAsset(edcConnectorEndpoint, assetType, assetValue); + return facade.getEndpointReferenceForAsset(edcConnectorEndpoint, assetType, assetValue, null); } catch (EdcClientException e) { throw new EdcRetrieverException(e); } diff --git a/irs-api/src/main/java/org/eclipse/tractusx/irs/ess/controller/mock/MockedNotificationReceiverController.java b/irs-api/src/main/java/org/eclipse/tractusx/irs/ess/controller/mock/MockedNotificationReceiverController.java index a6e6bffabb..4f1eb9410e 100644 --- a/irs-api/src/main/java/org/eclipse/tractusx/irs/ess/controller/mock/MockedNotificationReceiverController.java +++ b/irs-api/src/main/java/org/eclipse/tractusx/irs/ess/controller/mock/MockedNotificationReceiverController.java @@ -107,7 +107,7 @@ public void receiveNotification( final EdcNotification edcRequest = edcRequest(notificationId, originalNotificationId, senderEdc, senderBpn, recipientBpn, notificationContent); - final var response = edcSubmodelFacade.sendNotification(recipientUrl, "ess-response-asset", edcRequest); + final var response = edcSubmodelFacade.sendNotification(recipientUrl, "ess-response-asset", edcRequest, recipientBpn); if (!response.deliveredSuccessfully()) { throw new EdcClientException( "EDC Provider did not accept message with notificationId " + notificationId); diff --git a/irs-api/src/main/java/org/eclipse/tractusx/irs/ess/service/EdcNotificationSender.java b/irs-api/src/main/java/org/eclipse/tractusx/irs/ess/service/EdcNotificationSender.java index 3987c12624..ebaa775c83 100644 --- a/irs-api/src/main/java/org/eclipse/tractusx/irs/ess/service/EdcNotificationSender.java +++ b/irs-api/src/main/java/org/eclipse/tractusx/irs/ess/service/EdcNotificationSender.java @@ -76,7 +76,7 @@ public void sendEdcNotification(final EdcNotification getBlob(final String sourceBlobName) { return Optional.ofNullable(store.get(sourceBlobName)); } + @Override + public Map getAllBlobs() { + return store; + } + @Override public Collection findBlobByPrefix(final String prefix) { return store.entrySet() diff --git a/irs-api/src/test/java/org/eclipse/tractusx/irs/aaswrapper/job/delegate/AbstractDelegateTest.java b/irs-api/src/test/java/org/eclipse/tractusx/irs/aaswrapper/job/delegate/AbstractDelegateTest.java index f38685a3a8..b4e81769db 100644 --- a/irs-api/src/test/java/org/eclipse/tractusx/irs/aaswrapper/job/delegate/AbstractDelegateTest.java +++ b/irs-api/src/test/java/org/eclipse/tractusx/irs/aaswrapper/job/delegate/AbstractDelegateTest.java @@ -62,7 +62,7 @@ void setUp() { @Test void shouldUseDspEndpointIfPresent() throws EdcClientException { // Arrange - when(submodelFacade.getSubmodelPayload(any(), any(), any())).thenReturn(new SubmodelDescriptor("cid", "test")); + when(submodelFacade.getSubmodelPayload(any(), any(), any(), any())).thenReturn(new SubmodelDescriptor("cid", "test")); final Endpoint endpoint = Endpoint.builder() .protocolInformation(ProtocolInformation.builder() .href("http://dataplane.test/123") @@ -77,7 +77,7 @@ void shouldUseDspEndpointIfPresent() throws EdcClientException { // Assert assertThat(submodel).isEqualTo("test"); - verify(submodelFacade, times(1)).getSubmodelPayload("http://edc.test", "http://dataplane.test/123", "123"); + verify(submodelFacade, times(1)).getSubmodelPayload("http://edc.test", "http://dataplane.test/123", "123", "BPN123"); } @Test @@ -85,9 +85,9 @@ void shouldUseDiscoveryFinderIfDspEndpointNotPresent() throws EdcClientException // Arrange final String connector1 = "http://edc.test1"; final String connector2 = "http://edc.test2"; - when(submodelFacade.getSubmodelPayload(eq(connector1), any(), any())).thenThrow( + when(submodelFacade.getSubmodelPayload(eq(connector1), any(), any(), any())).thenThrow( new EdcClientException("test")); - when(submodelFacade.getSubmodelPayload(eq(connector2), any(), any())).thenReturn(new SubmodelDescriptor("cid", "test")); + when(submodelFacade.getSubmodelPayload(eq(connector2), any(), any(), any())).thenReturn(new SubmodelDescriptor("cid", "test")); when(connectorEndpointsService.fetchConnectorEndpoints(any())).thenReturn(List.of(connector1, connector2)); final String dataplaneUrl = "http://dataplane.test/123"; final Endpoint endpoint = Endpoint.builder() @@ -104,8 +104,8 @@ void shouldUseDiscoveryFinderIfDspEndpointNotPresent() throws EdcClientException // Assert assertThat(submodel).isEqualTo("test"); - verify(submodelFacade, times(1)).getSubmodelPayload(connector1, dataplaneUrl, "123"); - verify(submodelFacade, times(1)).getSubmodelPayload(connector2, dataplaneUrl, "123"); + verify(submodelFacade, times(1)).getSubmodelPayload(connector1, dataplaneUrl, "123", "BPN123"); + verify(submodelFacade, times(1)).getSubmodelPayload(connector2, dataplaneUrl, "123", "BPN123"); verify(connectorEndpointsService, times(1)).fetchConnectorEndpoints(bpn); } @@ -114,7 +114,7 @@ void shouldThrowGenericEdcClientExceptionIfAllEndpointsThrowExceptions() throws // Arrange final String connector1 = "http://edc.test1"; final String connector2 = "http://edc.test2"; - when(submodelFacade.getSubmodelPayload(any(), any(), any())).thenThrow(new EdcClientException("test")); + when(submodelFacade.getSubmodelPayload(any(), any(), any(), any())).thenThrow(new EdcClientException("test")); when(connectorEndpointsService.fetchConnectorEndpoints(any())).thenReturn(List.of(connector1, connector2)); final String dataplaneUrl = "http://dataplane.test/123"; final Endpoint endpoint = Endpoint.builder() @@ -131,8 +131,8 @@ void shouldThrowGenericEdcClientExceptionIfAllEndpointsThrowExceptions() throws bpn)); // Assert - verify(submodelFacade, times(1)).getSubmodelPayload(connector1, dataplaneUrl, "123"); - verify(submodelFacade, times(1)).getSubmodelPayload(connector2, dataplaneUrl, "123"); + verify(submodelFacade, times(1)).getSubmodelPayload(connector1, dataplaneUrl, "123", "BPN123"); + verify(submodelFacade, times(1)).getSubmodelPayload(connector2, dataplaneUrl, "123", "BPN123"); verify(connectorEndpointsService, times(1)).fetchConnectorEndpoints(bpn); } } \ No newline at end of file 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 3b060bd29e..cc95f9d671 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 @@ -71,7 +71,7 @@ void shouldFillItemContainerWithRelationshipAndAddChildIdsToProcess() // given final String payload = Files.readString( Paths.get(Objects.requireNonNull(getClass().getResource("/singleLevelBomAsBuilt.json")).toURI())); - when(submodelFacade.getSubmodelPayload(anyString(), anyString(), anyString())).thenReturn(new SubmodelDescriptor("cid", payload)); + when(submodelFacade.getSubmodelPayload(anyString(), anyString(), anyString(), any())).thenReturn(new SubmodelDescriptor("cid", payload)); when(connectorEndpointsService.fetchConnectorEndpoints(any())).thenReturn(List.of("http://localhost")); final ItemContainer.ItemContainerBuilder itemContainerWithShell = ItemContainer.builder() @@ -98,7 +98,7 @@ void shouldFillItemContainerWithUpwardRelationshipAndAddChildIdsToProcess() // given final String payload = Files.readString( Paths.get(Objects.requireNonNull(getClass().getResource("/singleLevelUsageAsBuilt.json")).toURI())); - when(submodelFacade.getSubmodelPayload(anyString(), anyString(), anyString())).thenReturn(new SubmodelDescriptor("cid", payload)); + when(submodelFacade.getSubmodelPayload(anyString(), anyString(), anyString(), any())).thenReturn(new SubmodelDescriptor("cid", payload)); when(connectorEndpointsService.fetchConnectorEndpoints(any())).thenReturn(List.of("http://localhost")); final ItemContainer.ItemContainerBuilder itemContainerWithShell = ItemContainer.builder() @@ -142,7 +142,7 @@ void shouldPutTombstoneForMissingBpn() { @Test void shouldCatchRestClientExceptionAndPutTombstone() throws EdcClientException { // given - when(submodelFacade.getSubmodelPayload(anyString(), anyString(), anyString())).thenThrow( + when(submodelFacade.getSubmodelPayload(anyString(), anyString(), anyString(), any())).thenThrow( new EdcClientException("Unable to call endpoint")); when(connectorEndpointsService.fetchConnectorEndpoints(any())).thenReturn(List.of("http://localhost")); @@ -167,7 +167,7 @@ void shouldCatchRestClientExceptionAndPutTombstone() throws EdcClientException { @Test void shouldCatchJsonParseExceptionAndPutTombstone() throws EdcClientException { // given - when(submodelFacade.getSubmodelPayload(anyString(), anyString(), anyString())).thenThrow( + when(submodelFacade.getSubmodelPayload(anyString(), anyString(), anyString(), any())).thenThrow( new EdcClientException(new Exception("Payload did not match expected submodel"))); when(connectorEndpointsService.fetchConnectorEndpoints(any())).thenReturn(List.of("http://localhost")); final ItemContainer.ItemContainerBuilder itemContainerWithShell = ItemContainer.builder() @@ -198,7 +198,7 @@ void shouldCatchUsagePolicyExceptionAndPutTombstone() throws EdcClientException "address"))))); // when - when(submodelFacade.getSubmodelPayload(any(), any(), any())).thenThrow(new UsagePolicyException("itemId", null)); + when(submodelFacade.getSubmodelPayload(any(), any(), any(), any())).thenThrow(new UsagePolicyException("itemId", null)); 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 312113d974..a564cd78b5 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 @@ -149,7 +149,7 @@ void shouldCatchUsagePolicyExceptionAndPutTombstone() throws EdcClientException "testSingleLevelBomAsBuiltEndpoint"))))); // when - when(submodelFacade.getSubmodelPayload(any(), any(), any())).thenThrow(new UsagePolicyException("itemId", null)); + when(submodelFacade.getSubmodelPayload(any(), any(), any(), any())).thenThrow(new UsagePolicyException("itemId", null)); when(connectorEndpointsService.fetchConnectorEndpoints(any())).thenReturn(List.of("connector.endpoint.nl")); final ItemContainer result = submodelDelegate.process(itemContainerShellWithTwoSubmodels, jobParameterCollectAspects(), new AASTransferProcess(), createKey()); @@ -173,7 +173,7 @@ void shouldRequestForAllEndpoints() throws EdcClientException, InvalidSchemaExce ""))))); // when - when(submodelFacade.getSubmodelPayload(any(), any(), any())).thenThrow( + when(submodelFacade.getSubmodelPayload(any(), any(), any(), any())).thenThrow( new ItemNotFoundInCatalogException("test", "itemId")).thenReturn(new SubmodelDescriptor("cid", """ {"test": "test"} """)); diff --git a/irs-api/src/test/java/org/eclipse/tractusx/irs/ess/controller/mock/MockedNotificationReceiverControllerTest.java b/irs-api/src/test/java/org/eclipse/tractusx/irs/ess/controller/mock/MockedNotificationReceiverControllerTest.java index 4060cbeb86..4310d5582e 100644 --- a/irs-api/src/test/java/org/eclipse/tractusx/irs/ess/controller/mock/MockedNotificationReceiverControllerTest.java +++ b/irs-api/src/test/java/org/eclipse/tractusx/irs/ess/controller/mock/MockedNotificationReceiverControllerTest.java @@ -68,7 +68,7 @@ class MockedNotificationReceiverControllerTest { void shouldReceiveNotificationAndSendMockedNotificationResult() throws Exception { final String bpn = "BPN1"; when(edcDiscoveryMockConfig.getMockEdcResult()).thenReturn(Map.of(bpn, SupplyChainImpacted.YES)); - when(edcSubmodelFacade.sendNotification(anyString(), anyString(), any(EdcNotification.class))).thenReturn( + when(edcSubmodelFacade.sendNotification(anyString(), anyString(), any(EdcNotification.class), anyString())).thenReturn( () -> true); RequestContextHolder.setRequestAttributes(new ServletRequestAttributes(new MockHttpServletRequest())); RequestContextHolder.setRequestAttributes(new ServletRequestAttributes(new MockHttpServletRequest())); @@ -82,7 +82,7 @@ void shouldReceiveNotificationAndSendMockedNotificationResult() throws Exception .content(notificationContent) .build()); - verify(edcSubmodelFacade).sendNotification(anyString(), anyString(), any(EdcNotification.class)); + verify(edcSubmodelFacade).sendNotification(anyString(), anyString(), any(EdcNotification.class), anyString()); } @Test diff --git a/irs-api/src/test/java/org/eclipse/tractusx/irs/ess/service/EdcNotificationSenderTest.java b/irs-api/src/test/java/org/eclipse/tractusx/irs/ess/service/EdcNotificationSenderTest.java index f9e785a8f4..c01c2ebe31 100644 --- a/irs-api/src/test/java/org/eclipse/tractusx/irs/ess/service/EdcNotificationSenderTest.java +++ b/irs-api/src/test/java/org/eclipse/tractusx/irs/ess/service/EdcNotificationSenderTest.java @@ -24,6 +24,7 @@ package org.eclipse.tractusx.irs.ess.service; import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -64,7 +65,7 @@ void shouldSendEdcNotificationWithSuccess() throws EdcClientException { // given final EdcNotification edcNotification = prepareNotification( "notification-id"); - when(edcSubmodelFacade.sendNotification(anyString(), anyString(), notificationCaptor.capture())).thenReturn( + when(edcSubmodelFacade.sendNotification(anyString(), anyString(), notificationCaptor.capture(), any())).thenReturn( () -> true); when(connectorEndpointsService.fetchConnectorEndpoints("senderBpn")).thenReturn(List.of("senderEdc")); 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 c811a1817f..53bf84b9bb 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 @@ -101,7 +101,7 @@ void shouldSendEdcNotificationWhenJobCompleted() throws EdcClientException { // given final String edcBaseUrl = "http://edc-server-url.com"; when(connectorEndpointsService.fetchConnectorEndpoints(anyString())).thenReturn(List.of(edcBaseUrl)); - when(edcSubmodelFacade.sendNotification(anyString(), anyString(), any(EdcNotification.class))).thenReturn( + when(edcSubmodelFacade.sendNotification(anyString(), anyString(), any(EdcNotification.class), any())).thenReturn( () -> true); final JobProcessingFinishedEvent jobProcessingFinishedEvent = new JobProcessingFinishedEvent(jobId.toString(), JobState.COMPLETED.name(), "", Optional.empty()); @@ -111,7 +111,7 @@ void shouldSendEdcNotificationWhenJobCompleted() throws EdcClientException { // then verify(this.edcSubmodelFacade, times(1)).sendNotification(eq(edcBaseUrl), anyString(), - any(EdcNotification.class)); + any(EdcNotification.class), any()); } @Test @@ -121,7 +121,7 @@ void shouldStopProcessingIfNoRelationshipContainsBPN() throws EdcClientException List.of(createRelationship("asPlanned", null, "testParent", "testChild"))); final String edcBaseUrl = "http://edc-server-url.com"; when(connectorEndpointsService.fetchConnectorEndpoints(anyString())).thenReturn(List.of(edcBaseUrl)); - when(edcSubmodelFacade.sendNotification(anyString(), anyString(), any(EdcNotification.class))).thenReturn( + when(edcSubmodelFacade.sendNotification(anyString(), anyString(), any(EdcNotification.class), any())).thenReturn( () -> true); final JobProcessingFinishedEvent jobProcessingFinishedEvent = new JobProcessingFinishedEvent(jobId.toString(), JobState.COMPLETED.name(), "", Optional.empty()); @@ -142,7 +142,7 @@ void shouldHandleCaseWhenRelationshipDoesNotContainBPN() throws EdcClientExcepti createRelationship("asPlanned", null, "parentId2", "childId2"))); final String edcBaseUrl = "http://edc-server-url.com"; when(connectorEndpointsService.fetchConnectorEndpoints(anyString())).thenReturn(List.of(edcBaseUrl)); - when(edcSubmodelFacade.sendNotification(anyString(), anyString(), any(EdcNotification.class))).thenReturn( + when(edcSubmodelFacade.sendNotification(anyString(), anyString(), any(EdcNotification.class), any())).thenReturn( () -> true); final JobProcessingFinishedEvent jobProcessingFinishedEvent = new JobProcessingFinishedEvent(jobId.toString(), JobState.COMPLETED.name(), "", Optional.empty()); @@ -152,7 +152,7 @@ void shouldHandleCaseWhenRelationshipDoesNotContainBPN() throws EdcClientExcepti // then verify(this.edcSubmodelFacade, times(1)).sendNotification(eq(edcBaseUrl), anyString(), - any(EdcNotification.class)); + any(EdcNotification.class), any()); } @Test @@ -161,7 +161,7 @@ void shouldTriggerCorrectNotificationOnNextLevel() throws EdcClientException { createMockForJobIdAndShell(jobId, "bpn", List.of(createRelationship("asPlanned", "BPN1", "parentId1", "childId1"))); final String edcBaseUrl = "http://edc-server-url.com"; - when(edcSubmodelFacade.sendNotification(anyString(), anyString(), any(EdcNotification.class))).thenReturn( + when(edcSubmodelFacade.sendNotification(anyString(), anyString(), any(EdcNotification.class), any())).thenReturn( () -> true); when(connectorEndpointsService.fetchConnectorEndpoints(anyString())).thenReturn(List.of(edcBaseUrl)); final JobProcessingFinishedEvent jobProcessingFinishedEvent = new JobProcessingFinishedEvent(jobId.toString(), @@ -172,7 +172,7 @@ void shouldTriggerCorrectNotificationOnNextLevel() throws EdcClientException { // then verify(this.edcSubmodelFacade, times(1)).sendNotification(eq(edcBaseUrl), eq("notify-request-asset-recursive"), - edcNotificationCaptor.capture()); + edcNotificationCaptor.capture(), any()); assertThat(edcNotificationCaptor.getValue().getHeader().getNotificationType()).isEqualTo( "ess-supplier-request"); final InvestigationNotificationContent content = (InvestigationNotificationContent) edcNotificationCaptor.getValue() @@ -192,7 +192,7 @@ void shouldStopProcessingIfNoEdcAddressIsDiscovered() throws EdcClientException jobProcessingEventListener.handleJobProcessingFinishedEvent(jobProcessingFinishedEvent); // then - verify(this.edcSubmodelFacade, times(0)).sendNotification(anyString(), anyString(), any(EdcNotification.class)); + verify(this.edcSubmodelFacade, times(0)).sendNotification(anyString(), anyString(), any(EdcNotification.class), any()); } @Test @@ -207,7 +207,7 @@ void shouldSendCallbackIfNoMoreRelationshipsAreFound() throws EdcClientException jobProcessingEventListener.handleJobProcessingFinishedEvent(jobProcessingFinishedEvent); // then - verify(this.edcSubmodelFacade, times(0)).sendNotification(anyString(), anyString(), any(EdcNotification.class)); + verify(this.edcSubmodelFacade, times(0)).sendNotification(anyString(), anyString(), any(EdcNotification.class), any()); verify(this.recursiveNotificationHandler, times(1)).handleNotification(any(), eq(SupplyChainImpacted.NO), eq("bpn"), eq(0)); } @@ -226,7 +226,7 @@ void shouldStopProcessingIfOneOfEdcAddressesIsNotDiscovered() throws EdcClientEx jobProcessingEventListener.handleJobProcessingFinishedEvent(jobProcessingFinishedEvent); // then - verify(this.edcSubmodelFacade, times(0)).sendNotification(anyString(), anyString(), any(EdcNotification.class)); + verify(this.edcSubmodelFacade, times(0)).sendNotification(anyString(), anyString(), any(EdcNotification.class), any()); } @Test @@ -238,7 +238,7 @@ void shouldSendEdcRecursiveNotificationWhenJobCompleted() throws EdcClientExcept "urn:uuid:86f69643-3b90-4e34-90bf-789edcf40e7e"))); final String edcBaseUrl = "http://edc-server-url.com"; when(connectorEndpointsService.fetchConnectorEndpoints(anyString())).thenReturn(List.of(edcBaseUrl)); - when(edcSubmodelFacade.sendNotification(anyString(), anyString(), any(EdcNotification.class))).thenReturn( + when(edcSubmodelFacade.sendNotification(anyString(), anyString(), any(EdcNotification.class), any())).thenReturn( () -> true); final JobProcessingFinishedEvent jobProcessingFinishedEvent = new JobProcessingFinishedEvent( recursiveJobId.toString(), JobState.COMPLETED.name(), "", Optional.empty()); @@ -248,7 +248,7 @@ void shouldSendEdcRecursiveNotificationWhenJobCompleted() throws EdcClientExcept // then verify(this.edcSubmodelFacade, times(1)).sendNotification(eq(edcBaseUrl), eq(ASSET_ID_REQUEST_RECURSIVE), - edcNotificationCaptor.capture()); + edcNotificationCaptor.capture(), any()); assertThat(edcNotificationCaptor.getValue().getHeader().getNotificationType()).isEqualTo( "ess-supplier-request"); } @@ -259,7 +259,7 @@ void shouldSendEdcRecursiveNotificationWithMultipleIncidentBPNSs() throws EdcCli createMockForJobIdAndShell(jobId, "bpn", List.of(createRelationship("asPlanned", "BPN1", "parentId1", "childId1")), List.of("BPN1", "BPN2")); final String edcBaseUrl = "http://edc-server-url.com"; - when(edcSubmodelFacade.sendNotification(anyString(), anyString(), any(EdcNotification.class))).thenReturn( + when(edcSubmodelFacade.sendNotification(anyString(), anyString(), any(EdcNotification.class), any())).thenReturn( () -> true); when(connectorEndpointsService.fetchConnectorEndpoints(anyString())).thenReturn(List.of(edcBaseUrl)); final JobProcessingFinishedEvent jobProcessingFinishedEvent = new JobProcessingFinishedEvent(jobId.toString(), @@ -270,14 +270,14 @@ void shouldSendEdcRecursiveNotificationWithMultipleIncidentBPNSs() throws EdcCli // then verify(this.edcSubmodelFacade, times(1)).sendNotification(eq(edcBaseUrl), eq("notify-request-asset-recursive"), - edcNotificationCaptor.capture()); + edcNotificationCaptor.capture(), any()); final InvestigationNotificationContent content = (InvestigationNotificationContent) edcNotificationCaptor.getValue() .getContent(); assertThat(edcNotificationCaptor.getValue().getHeader().getNotificationType()).isEqualTo( "ess-supplier-request"); assertThat(content.getIncidentBPNSs()).containsAll(List.of("BPN1", "BPN2")); assertThat(content.getConcernedCatenaXIds()).containsAll(List.of("childId1")); - verify(this.edcSubmodelFacade, times(1)).sendNotification(any(), any(), any(EdcNotification.class)); + verify(this.edcSubmodelFacade, times(1)).sendNotification(any(), any(), any(EdcNotification.class), any()); } @Test @@ -292,7 +292,7 @@ void shouldCreateTombstoneWhenAspectModelsMissing() throws EdcClientException { jobProcessingEventListener.handleJobProcessingFinishedEvent(finishedEvent); // then - verify(this.edcSubmodelFacade, times(0)).sendNotification(anyString(), anyString(), any(EdcNotification.class)); + verify(this.edcSubmodelFacade, times(0)).sendNotification(anyString(), anyString(), any(EdcNotification.class), any()); final Optional job = bpnInvestigationJobCache.findByJobId(jobId); assertThat(job).isPresent(); assertThat(job.get().getJobSnapshot().getTombstones()).hasSize(2); @@ -310,7 +310,7 @@ void shouldCreateTombstoneWhenSiteIdIsMissing() throws EdcClientException { jobProcessingEventListener.handleJobProcessingFinishedEvent(finishedEvent); // then - verify(this.edcSubmodelFacade, times(0)).sendNotification(anyString(), anyString(), any(EdcNotification.class)); + verify(this.edcSubmodelFacade, times(0)).sendNotification(anyString(), anyString(), any(EdcNotification.class), any()); final Optional job = bpnInvestigationJobCache.findByJobId(jobId); assertThat(job).isPresent(); assertThat(job.get().getJobSnapshot().getTombstones()).hasSize(1); diff --git a/irs-common/src/main/java/org/eclipse/tractusx/irs/common/persistence/BlobPersistence.java b/irs-common/src/main/java/org/eclipse/tractusx/irs/common/persistence/BlobPersistence.java index d8a38fe6be..03e2256ff5 100644 --- a/irs-common/src/main/java/org/eclipse/tractusx/irs/common/persistence/BlobPersistence.java +++ b/irs-common/src/main/java/org/eclipse/tractusx/irs/common/persistence/BlobPersistence.java @@ -26,6 +26,7 @@ import java.util.Collection; import java.util.List; +import java.util.Map; import java.util.Optional; /** @@ -33,10 +34,14 @@ */ public interface BlobPersistence { + String DEFAULT_BLOB_NAME = "default"; + void putBlob(String targetBlobName, byte[] blob) throws BlobPersistenceException; Optional getBlob(String sourceBlobName) throws BlobPersistenceException; + Map getAllBlobs() throws BlobPersistenceException; + Collection findBlobByPrefix(String prefix) throws BlobPersistenceException; boolean delete(String blobId, List processIds) throws BlobPersistenceException; diff --git a/irs-common/src/main/java/org/eclipse/tractusx/irs/common/persistence/BlobPersistenceRuntimeException.java b/irs-common/src/main/java/org/eclipse/tractusx/irs/common/persistence/BlobPersistenceRuntimeException.java new file mode 100644 index 0000000000..9a30f25b51 --- /dev/null +++ b/irs-common/src/main/java/org/eclipse/tractusx/irs/common/persistence/BlobPersistenceRuntimeException.java @@ -0,0 +1,30 @@ +/******************************************************************************** + * Copyright (c) 2022,2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + * Copyright (c) 2021,2024 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + ********************************************************************************/ +package org.eclipse.tractusx.irs.common.persistence; + +/** + * Runtime Exception for everything related to BlobPersistence actions + */ +public class BlobPersistenceRuntimeException extends RuntimeException { + + public BlobPersistenceRuntimeException(final String message, final Throwable cause) { + super(message, cause); + } +} diff --git a/irs-common/src/main/java/org/eclipse/tractusx/irs/common/persistence/MinioBlobPersistence.java b/irs-common/src/main/java/org/eclipse/tractusx/irs/common/persistence/MinioBlobPersistence.java index 5bbe56598c..8ed7f9490b 100644 --- a/irs-common/src/main/java/org/eclipse/tractusx/irs/common/persistence/MinioBlobPersistence.java +++ b/irs-common/src/main/java/org/eclipse/tractusx/irs/common/persistence/MinioBlobPersistence.java @@ -29,7 +29,9 @@ import java.security.NoSuchAlgorithmException; import java.util.Collection; import java.util.List; +import java.util.Map; import java.util.Optional; +import java.util.concurrent.ConcurrentHashMap; import java.util.stream.Stream; import java.util.stream.StreamSupport; @@ -78,14 +80,17 @@ public MinioBlobPersistence(final String endpoint, final String accessKey, final this(bucketName, createClient(endpoint, accessKey, secretKey), daysToLive); } - public MinioBlobPersistence(final String bucketName, final MinioClient client, final int daysToLive) throws BlobPersistenceException { + public MinioBlobPersistence(final String bucketName, final MinioClient client, final int daysToLive) + throws BlobPersistenceException { this.bucketName = bucketName; this.minioClient = client; this.daysToLive = daysToLive; try { createBucketIfNotExists(bucketName); - } catch (ServerException | InsufficientDataException | ErrorResponseException | IOException | NoSuchAlgorithmException | InvalidKeyException | InvalidResponseException | XmlParserException | InternalException e) { + } catch (ServerException | InsufficientDataException | ErrorResponseException | IOException + | NoSuchAlgorithmException | InvalidKeyException | InvalidResponseException | XmlParserException + | InternalException e) { throw new BlobPersistenceException("Encountered error while trying to create min.io client", e); } } @@ -140,7 +145,9 @@ public void putBlob(final String targetBlobName, final byte[] blob) throws BlobP .stream(byteArrayInputStream, byteArrayInputStream.available(), -1) .build()); log.debug("Saving to bucket name {} with object name {}", bucketName, targetBlobName); - } catch (ServerException | InsufficientDataException | ErrorResponseException | IOException | NoSuchAlgorithmException | InvalidKeyException | InvalidResponseException | XmlParserException | InternalException e) { + } catch (ServerException | InsufficientDataException | ErrorResponseException | IOException + | NoSuchAlgorithmException | InvalidKeyException | InvalidResponseException | XmlParserException + | InternalException e) { throw new BlobPersistenceException("Encountered error while trying to store blob", e); } } @@ -155,7 +162,8 @@ public Optional getBlob(final String sourceBlobName) throws BlobPersiste return Optional.empty(); } throw createLoadFailedException(e); - } catch (ServerException | InsufficientDataException | IOException | NoSuchAlgorithmException | InvalidKeyException | InvalidResponseException | XmlParserException | InternalException e) { + } catch (ServerException | InsufficientDataException | IOException | NoSuchAlgorithmException + | InvalidKeyException | InvalidResponseException | XmlParserException | InternalException e) { throw createLoadFailedException(e); } try (response) { @@ -163,7 +171,28 @@ public Optional getBlob(final String sourceBlobName) throws BlobPersiste } catch (IOException e) { throw createLoadFailedException(e); } + } + + @Override + public Map getAllBlobs() throws BlobPersistenceException { + final Iterable> items = getItems(); + final Map result = new ConcurrentHashMap<>(); + for (final Result item : items) { + try { + final String objectName = item.get().objectName(); + try (GetObjectResponse response = minioClient.getObject( + GetObjectArgs.builder().bucket(bucketName).object(objectName).build())) { + result.put(objectName, response.readAllBytes()); + } + } catch (ErrorResponseException | InsufficientDataException | InternalException | InvalidKeyException + | InvalidResponseException | IOException | NoSuchAlgorithmException | ServerException + | XmlParserException e) { + throw createLoadFailedException(e); + } + } + + return result; } private BlobPersistenceException createLoadFailedException(final Throwable cause) { @@ -194,7 +223,8 @@ public boolean delete(final String sourceBlobName, final List processIds } else { throw new BlobPersistenceException("Encountered error while trying to delete blob", e); } - } catch (ServerException | InsufficientDataException | IOException | NoSuchAlgorithmException | InvalidKeyException | InvalidResponseException | XmlParserException | InternalException e) { + } catch (ServerException | InsufficientDataException | IOException | NoSuchAlgorithmException + | InvalidKeyException | InvalidResponseException | XmlParserException | InternalException e) { throw new BlobPersistenceException("Encountered error while trying to delete blob", e); } } @@ -203,7 +233,9 @@ private void deleteConnectedProcessesBlobs(final List processIds) { processIds.forEach(processId -> { try { minioClient.removeObject(RemoveObjectArgs.builder().bucket(bucketName).object(processId).build()); - } catch (ServerException | InsufficientDataException | IOException | NoSuchAlgorithmException | InvalidKeyException | InvalidResponseException | XmlParserException | InternalException | ErrorResponseException e) { + } catch (ServerException | InsufficientDataException | IOException | NoSuchAlgorithmException + | InvalidKeyException | InvalidResponseException | XmlParserException | InternalException + | ErrorResponseException e) { log.info("No object data with process Id {} found", processId); } }); @@ -221,10 +253,16 @@ private Stream getBlobIfPresent(final String sourceBlobName) { private Stream getItem(final Result result) { try { return Stream.of(result.get()); - } catch (ServerException | InsufficientDataException | ErrorResponseException | IOException | NoSuchAlgorithmException | InvalidKeyException | InvalidResponseException | XmlParserException | InternalException e) { + } catch (ServerException | InsufficientDataException | ErrorResponseException | IOException + | NoSuchAlgorithmException | InvalidKeyException | InvalidResponseException | XmlParserException + | InternalException e) { log.error("Encountered error while trying to retrieve result content", e); return Stream.empty(); } } + private Iterable> getItems() { + return minioClient.listObjects(ListObjectsArgs.builder().bucket(bucketName).build()); + } + } 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 63def1d591..26e4d5ac66 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 @@ -63,7 +63,7 @@ public class ContractNegotiationService { private final EdcConfiguration config; public NegotiationResponse negotiate(final String providerConnectorUrl, final CatalogItem catalogItem, - final EndpointDataReferenceStatus endpointDataReferenceStatus) + final EndpointDataReferenceStatus endpointDataReferenceStatus, final String bpn) throws ContractNegotiationException, UsagePolicyException, TransferProcessException { EndpointDataReferenceStatus resultEndpointDataReferenceStatus; @@ -83,7 +83,7 @@ public NegotiationResponse negotiate(final String providerConnectorUrl, final Ca switch (resultEndpointDataReferenceStatus.tokenStatus()) { case REQUIRED_NEW -> { final CompletableFuture responseFuture = startNewNegotiation(providerConnectorUrl, - catalogItem); + catalogItem, bpn); negotiationResponse = Objects.requireNonNull(getNegotiationResponse(responseFuture)); contractAgreementId = negotiationResponse.getContractAgreementId(); } @@ -119,10 +119,10 @@ public NegotiationResponse negotiate(final String providerConnectorUrl, final Ca } private CompletableFuture startNewNegotiation(final String providerConnectorUrl, - final CatalogItem catalogItem) throws UsagePolicyException { + final CatalogItem catalogItem, final String bpn) throws UsagePolicyException { log.info("Staring new contract negotiation."); - if (!policyCheckerService.isValid(catalogItem.getPolicy())) { + if (!policyCheckerService.isValid(catalogItem.getPolicy(), bpn)) { log.info("Policy was not allowed, canceling negotiation."); throw new UsagePolicyException(catalogItem.getItemId(), catalogItem.getPolicy()); } diff --git a/irs-edc-client/src/main/java/org/eclipse/tractusx/irs/edc/client/EdcSubmodelClient.java b/irs-edc-client/src/main/java/org/eclipse/tractusx/irs/edc/client/EdcSubmodelClient.java index ccc37dd532..7b670294e8 100644 --- a/irs-edc-client/src/main/java/org/eclipse/tractusx/irs/edc/client/EdcSubmodelClient.java +++ b/irs-edc-client/src/main/java/org/eclipse/tractusx/irs/edc/client/EdcSubmodelClient.java @@ -36,19 +36,19 @@ /** * Public API facade for EDC domain */ -@SuppressWarnings("PMD.ExcessiveImports") +@SuppressWarnings({"PMD.ExcessiveImports", "PMD.UseObjectForClearerAPI"}) public interface EdcSubmodelClient { CompletableFuture getSubmodelPayload(String connectorEndpoint, String submodelDataplaneUrl, - String assetId) throws EdcClientException; + String assetId, String bpn) throws EdcClientException; CompletableFuture sendNotification(String submodelEndpointAddress, String assetId, - EdcNotification notification) throws EdcClientException; + EdcNotification notification, String bpn) throws EdcClientException; CompletableFuture getEndpointReferenceForAsset(String endpointAddress, String filterKey, - String filterValue) throws EdcClientException; + String filterValue, String bpn) throws EdcClientException; CompletableFuture getEndpointReferenceForAsset(String endpointAddress, String filterKey, - String filterValue, EndpointDataReferenceStatus cachedEndpointDataReference) throws EdcClientException; + String filterValue, EndpointDataReferenceStatus cachedEndpointDataReference, String bpn) throws EdcClientException; } diff --git a/irs-edc-client/src/main/java/org/eclipse/tractusx/irs/edc/client/EdcSubmodelClientImpl.java b/irs-edc-client/src/main/java/org/eclipse/tractusx/irs/edc/client/EdcSubmodelClientImpl.java index 3cee65c88a..c36cb003c8 100644 --- a/irs-edc-client/src/main/java/org/eclipse/tractusx/irs/edc/client/EdcSubmodelClientImpl.java +++ b/irs-edc-client/src/main/java/org/eclipse/tractusx/irs/edc/client/EdcSubmodelClientImpl.java @@ -58,7 +58,7 @@ */ @Slf4j @RequiredArgsConstructor -@SuppressWarnings("PMD.TooManyMethods") +@SuppressWarnings({"PMD.TooManyMethods", "PMD.UseObjectForClearerAPI"}) public class EdcSubmodelClientImpl implements EdcSubmodelClient { private final EdcConfiguration config; @@ -138,13 +138,13 @@ private Optional sendSubmodelNotification(final String @Override public CompletableFuture getSubmodelPayload(final String connectorEndpoint, - final String submodelDataplaneUrl, final String assetId) throws EdcClientException { + final String submodelDataplaneUrl, final String assetId, final String bpn) throws EdcClientException { return execute(connectorEndpoint, () -> { log.info("Requesting raw SubmodelPayload for endpoint '{}'.", connectorEndpoint); final StopWatch stopWatch = new StopWatch(); stopWatch.start("Get EDC Submodel task for raw payload, endpoint " + connectorEndpoint); - final EndpointDataReference endpointDataReference = getEndpointDataReference(connectorEndpoint, assetId); + final EndpointDataReference endpointDataReference = getEndpointDataReference(connectorEndpoint, assetId, bpn); return pollingService.createJob() .action(() -> retrieveSubmodelData(submodelDataplaneUrl, stopWatch, @@ -156,7 +156,7 @@ public CompletableFuture getSubmodelPayload(final String con }); } - private EndpointDataReference getEndpointDataReference(final String connectorEndpoint, final String assetId) + private EndpointDataReference getEndpointDataReference(final String connectorEndpoint, final String assetId, final String bpn) throws EdcClientException { log.info("Retrieving endpoint data reference from cache for asset id: {}", assetId); final EndpointDataReferenceStatus cachedEndpointDataReference = endpointDataReferenceCacheService.getEndpointDataReference( @@ -168,18 +168,18 @@ private EndpointDataReference getEndpointDataReference(final String connectorEnd endpointDataReference = cachedEndpointDataReference.endpointDataReference(); } else { endpointDataReference = getEndpointDataReferenceAndAddToStorage(connectorEndpoint, assetId, - cachedEndpointDataReference); + cachedEndpointDataReference, bpn); } return endpointDataReference; } private EndpointDataReference getEndpointDataReferenceAndAddToStorage(final String connectorEndpoint, - final String assetId, final EndpointDataReferenceStatus cachedEndpointDataReference) + final String assetId, final EndpointDataReferenceStatus cachedEndpointDataReference, final String bpn) throws EdcClientException { try { final EndpointDataReference endpointDataReference = getEndpointReferenceForAsset(connectorEndpoint, - NAMESPACE_EDC_ID, assetId, cachedEndpointDataReference).get(); + NAMESPACE_EDC_ID, assetId, cachedEndpointDataReference, bpn).get(); endpointDataReferenceStorage.put(assetId, endpointDataReference); return endpointDataReference; @@ -193,11 +193,11 @@ private EndpointDataReference getEndpointDataReferenceAndAddToStorage(final Stri @Override public CompletableFuture sendNotification(final String connectorEndpoint, - final String assetId, final EdcNotification notification) throws EdcClientException { + final String assetId, final EdcNotification notification, final String bpn) throws EdcClientException { return execute(connectorEndpoint, () -> { final StopWatch stopWatch = new StopWatch(); stopWatch.start("Send EDC notification task, endpoint " + connectorEndpoint); - final EndpointDataReference endpointDataReference = getEndpointDataReference(connectorEndpoint, assetId); + final EndpointDataReference endpointDataReference = getEndpointDataReference(connectorEndpoint, assetId, bpn); return sendNotificationAsync(assetId, notification, stopWatch, endpointDataReference); }); @@ -205,15 +205,15 @@ public CompletableFuture sendNotification(final String @Override public CompletableFuture getEndpointReferenceForAsset(final String endpointAddress, - final String filterKey, final String filterValue) throws EdcClientException { + final String filterKey, final String filterValue, final String bpn) throws EdcClientException { return execute(endpointAddress, () -> getEndpointReferenceForAsset(endpointAddress, filterKey, filterValue, - new EndpointDataReferenceStatus(null, TokenStatus.REQUIRED_NEW))); + new EndpointDataReferenceStatus(null, TokenStatus.REQUIRED_NEW), bpn)); } @Override public CompletableFuture getEndpointReferenceForAsset(final String endpointAddress, final String filterKey, final String filterValue, - final EndpointDataReferenceStatus endpointDataReferenceStatus) throws EdcClientException { + final EndpointDataReferenceStatus endpointDataReferenceStatus, final String bpn) throws EdcClientException { final StopWatch stopWatch = new StopWatch(); stopWatch.start("Get EDC Submodel task for shell descriptor, endpoint " + endpointAddress); @@ -224,7 +224,7 @@ public CompletableFuture getEndpointReferenceForAsset(fin filterValue); final NegotiationResponse response = contractNegotiationService.negotiate(providerWithSuffix, - items.stream().findFirst().orElseThrow(), endpointDataReferenceStatus); + items.stream().findFirst().orElseThrow(), endpointDataReferenceStatus, bpn); final String storageId = getStorageId(endpointDataReferenceStatus, response); diff --git a/irs-edc-client/src/main/java/org/eclipse/tractusx/irs/edc/client/EdcSubmodelClientLocalStub.java b/irs-edc-client/src/main/java/org/eclipse/tractusx/irs/edc/client/EdcSubmodelClientLocalStub.java index 7e0e37275a..3257bf9b85 100644 --- a/irs-edc-client/src/main/java/org/eclipse/tractusx/irs/edc/client/EdcSubmodelClientLocalStub.java +++ b/irs-edc-client/src/main/java/org/eclipse/tractusx/irs/edc/client/EdcSubmodelClientLocalStub.java @@ -40,6 +40,7 @@ /** * Submodel facade stub used in local environment */ +@SuppressWarnings("PMD.UseObjectForClearerAPI") public class EdcSubmodelClientLocalStub implements EdcSubmodelClient { private final SubmodelTestdataCreator testdataCreator; @@ -51,7 +52,7 @@ public EdcSubmodelClientLocalStub(final CxTestDataContainer cxTestDataContainer) @Override public CompletableFuture getSubmodelPayload(final String connectorEndpoint, - final String submodelDataplaneUrl, final String assetId) throws EdcClientException { + final String submodelDataplaneUrl, final String assetId, final String bpn) throws EdcClientException { if ("urn:uuid:c35ee875-5443-4a2d-bc14-fdacd64b9446".equals(assetId)) { throw new EdcClientException("Dummy Exception"); } @@ -62,7 +63,7 @@ public CompletableFuture getSubmodelPayload(final String con @Override public CompletableFuture sendNotification(final String submodelEndpointAddress, - final String assetId, final EdcNotification notification) { + final String assetId, final EdcNotification notification, final String bpn) { // not actually sending anything, just return success response return CompletableFuture.completedFuture(() -> true); } @@ -70,13 +71,13 @@ public CompletableFuture sendNotification(final String @Override public CompletableFuture getEndpointReferenceForAsset(final String endpointAddress, final String filterKey, final String filterValue, - final EndpointDataReferenceStatus cachedEndpointDataReference) throws EdcClientException { + final EndpointDataReferenceStatus cachedEndpointDataReference, final String bpn) throws EdcClientException { throw new EdcClientException("Not implemented"); } @Override public CompletableFuture getEndpointReferenceForAsset(final String endpointAddress, - final String filterKey, final String filterValue) throws EdcClientException { + final String filterKey, final String filterValue, final String bpn) throws EdcClientException { throw new EdcClientException("Not implemented"); } } diff --git a/irs-edc-client/src/main/java/org/eclipse/tractusx/irs/edc/client/EdcSubmodelFacade.java b/irs-edc-client/src/main/java/org/eclipse/tractusx/irs/edc/client/EdcSubmodelFacade.java index 0b5e0558f5..281b981983 100644 --- a/irs-edc-client/src/main/java/org/eclipse/tractusx/irs/edc/client/EdcSubmodelFacade.java +++ b/irs-edc-client/src/main/java/org/eclipse/tractusx/irs/edc/client/EdcSubmodelFacade.java @@ -39,16 +39,16 @@ */ @Slf4j @RequiredArgsConstructor -@SuppressWarnings("PMD.AvoidDuplicateLiterals") +@SuppressWarnings({"PMD.AvoidDuplicateLiterals", "PMD.UseObjectForClearerAPI"}) public class EdcSubmodelFacade { private final EdcSubmodelClient client; @SuppressWarnings("PMD.PreserveStackTrace") public SubmodelDescriptor getSubmodelPayload(final String connectorEndpoint, final String submodelDataplaneUrl, - final String assetId) throws EdcClientException { + final String assetId, final String bpn) throws EdcClientException { try { - return client.getSubmodelPayload(connectorEndpoint, submodelDataplaneUrl, assetId).get(); + return client.getSubmodelPayload(connectorEndpoint, submodelDataplaneUrl, assetId, bpn).get(); } catch (InterruptedException e) { log.debug("InterruptedException occurred.", e); Thread.currentThread().interrupt(); @@ -65,10 +65,10 @@ public SubmodelDescriptor getSubmodelPayload(final String connectorEndpoint, fin @SuppressWarnings("PMD.PreserveStackTrace") public EdcNotificationResponse sendNotification(final String submodelEndpointAddress, final String assetId, - final EdcNotification notification) throws EdcClientException { + final EdcNotification notification, final String bpn) throws EdcClientException { try { log.debug("Sending EDC Notification '{}'", notification); - return client.sendNotification(submodelEndpointAddress, assetId, notification).get(); + return client.sendNotification(submodelEndpointAddress, assetId, notification, bpn).get(); } catch (InterruptedException e) { Thread.currentThread().interrupt(); return null; @@ -83,9 +83,9 @@ public EdcNotificationResponse sendNotification(final String submodelEndpointAdd @SuppressWarnings("PMD.PreserveStackTrace") public EndpointDataReference getEndpointReferenceForAsset(final String endpointAddress, final String filterKey, - final String filterValue) throws EdcClientException { + final String filterValue, final String bpn) throws EdcClientException { try { - return client.getEndpointReferenceForAsset(endpointAddress, filterKey, filterValue).get(); + return client.getEndpointReferenceForAsset(endpointAddress, filterKey, filterValue, bpn).get(); } catch (InterruptedException e) { Thread.currentThread().interrupt(); return null; diff --git a/irs-edc-client/src/main/java/org/eclipse/tractusx/irs/edc/client/policy/AcceptedPoliciesProvider.java b/irs-edc-client/src/main/java/org/eclipse/tractusx/irs/edc/client/policy/AcceptedPoliciesProvider.java index 8f4ffbce3d..263848689e 100644 --- a/irs-edc-client/src/main/java/org/eclipse/tractusx/irs/edc/client/policy/AcceptedPoliciesProvider.java +++ b/irs-edc-client/src/main/java/org/eclipse/tractusx/irs/edc/client/policy/AcceptedPoliciesProvider.java @@ -33,7 +33,7 @@ * Provides policies to be accepted during EDC negotiation */ public interface AcceptedPoliciesProvider { - List getAcceptedPolicies(); + List getAcceptedPolicies(List bpns); /** * Default provider if no other beans are loaded. @@ -46,7 +46,7 @@ class DefaultAcceptedPoliciesProvider implements AcceptedPoliciesProvider { private final List acceptedPolicies = new ArrayList<>(); @Override - public List getAcceptedPolicies() { + public List getAcceptedPolicies(final List bpns) { return List.copyOf(acceptedPolicies); } 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 0dbe398aad..8461976b8e 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 @@ -43,8 +43,8 @@ public class PolicyCheckerService { private final AcceptedPoliciesProvider policyStore; private final ConstraintCheckerService constraintCheckerService; - public boolean isValid(final Policy policy) { - return policy.getPermissions().stream().allMatch(permission -> isValid(permission, getValidStoredPolicies())); + public boolean isValid(final Policy policy, final String bpn) { + return policy.getPermissions().stream().allMatch(permission -> isValid(permission, getValidStoredPolicies(bpn))); } private boolean isValid(final Permission permission, final List validStoredPolicies) { @@ -53,8 +53,8 @@ private boolean isValid(final Permission permission, final List acceptedPolicy.policy(), permission.getConstraints())); } - private List getValidStoredPolicies() { - return policyStore.getAcceptedPolicies() + private List getValidStoredPolicies(final String bpn) { + return policyStore.getAcceptedPolicies(bpn == null ? null : List.of(bpn)) .stream() .filter(p -> p.validUntil().isAfter(OffsetDateTime.now())) .toList(); diff --git a/irs-edc-client/src/test/java/org/eclipse/tractusx/irs/edc/client/ContractNegotiationServiceTest.java b/irs-edc-client/src/test/java/org/eclipse/tractusx/irs/edc/client/ContractNegotiationServiceTest.java index 8ac92edb92..18ee578180 100644 --- a/irs-edc-client/src/test/java/org/eclipse/tractusx/irs/edc/client/ContractNegotiationServiceTest.java +++ b/irs-edc-client/src/test/java/org/eclipse/tractusx/irs/edc/client/ContractNegotiationServiceTest.java @@ -84,7 +84,7 @@ void shouldNegotiateSuccessfully() final var assetId = "testTarget"; final String offerId = "offerId"; final CatalogItem catalogItem = createCatalogItem(assetId, offerId); - when(policyCheckerService.isValid(any())).thenReturn(Boolean.TRUE); + when(policyCheckerService.isValid(any(), any())).thenReturn(Boolean.TRUE); when(edcControlPlaneClient.startNegotiations(any())).thenReturn( Response.builder().responseId("negotiationId").build()); CompletableFuture response = CompletableFuture.completedFuture( @@ -97,7 +97,7 @@ void shouldNegotiateSuccessfully() // act NegotiationResponse result = testee.negotiate(CONNECTOR_URL, catalogItem, - new EndpointDataReferenceStatus(null, EndpointDataReferenceStatus.TokenStatus.REQUIRED_NEW)); + new EndpointDataReferenceStatus(null, EndpointDataReferenceStatus.TokenStatus.REQUIRED_NEW), "bpn"); // assert assertThat(result).isNotNull(); @@ -110,7 +110,7 @@ void shouldThrowErrorWhenRetrievingNegotiationResult() { final var assetId = "testTarget"; final String offerId = "offerId"; final CatalogItem catalogItem = createCatalogItem(assetId, offerId); - when(policyCheckerService.isValid(any())).thenReturn(Boolean.TRUE); + when(policyCheckerService.isValid(any(), any())).thenReturn(Boolean.TRUE); when(edcControlPlaneClient.startNegotiations(any())).thenReturn( Response.builder().responseId("negotiationId").build()); CompletableFuture response = CompletableFuture.failedFuture( @@ -119,7 +119,7 @@ void shouldThrowErrorWhenRetrievingNegotiationResult() { // act & assert assertThatThrownBy(() -> testee.negotiate(CONNECTOR_URL, catalogItem, new EndpointDataReferenceStatus(null, - EndpointDataReferenceStatus.TokenStatus.REQUIRED_NEW))).isInstanceOf(EdcClientException.class); + EndpointDataReferenceStatus.TokenStatus.REQUIRED_NEW), "bpn")).isInstanceOf(EdcClientException.class); } @Test @@ -128,7 +128,7 @@ void shouldThrowErrorWhenRetrievingTransferResult() { final var assetId = "testTarget"; final String offerId = "offerId"; final CatalogItem catalogItem = createCatalogItem(assetId, offerId); - when(policyCheckerService.isValid(any())).thenReturn(Boolean.TRUE); + when(policyCheckerService.isValid(any(), any())).thenReturn(Boolean.TRUE); when(edcControlPlaneClient.startNegotiations(any())).thenReturn( Response.builder().responseId("negotiationId").build()); @@ -144,7 +144,7 @@ void shouldThrowErrorWhenRetrievingTransferResult() { // act & assert assertThatThrownBy(() -> testee.negotiate(CONNECTOR_URL, catalogItem, new EndpointDataReferenceStatus(null, - EndpointDataReferenceStatus.TokenStatus.REQUIRED_NEW))).isInstanceOf(EdcClientException.class); + EndpointDataReferenceStatus.TokenStatus.REQUIRED_NEW), "bpn")).isInstanceOf(EdcClientException.class); } @Test @@ -156,11 +156,11 @@ void shouldThrowErrorWhenPolicyCheckerReturnFalse() { .policy(createPolicy(assetId)) .assetPropId(assetId) .build(); - when(policyCheckerService.isValid(any())).thenReturn(Boolean.FALSE); + when(policyCheckerService.isValid(any(), any())).thenReturn(Boolean.FALSE); // act & assert assertThatThrownBy(() -> testee.negotiate(CONNECTOR_URL, catalogItem, new EndpointDataReferenceStatus(null, - EndpointDataReferenceStatus.TokenStatus.REQUIRED_NEW))).isInstanceOf(EdcClientException.class); + EndpointDataReferenceStatus.TokenStatus.REQUIRED_NEW), "bpn")).isInstanceOf(EdcClientException.class); } @Test @@ -170,7 +170,7 @@ void shouldStartNegotiationProcessWhenTokenStatusIsRequiredNew() final var assetId = "testTarget"; final String offerId = "offerId"; final CatalogItem catalogItem = createCatalogItem(assetId, offerId); - when(policyCheckerService.isValid(any())).thenReturn(Boolean.TRUE); + when(policyCheckerService.isValid(any(), any())).thenReturn(Boolean.TRUE); when(edcControlPlaneClient.startNegotiations(any())).thenReturn( Response.builder().responseId("negotiationId").build()); CompletableFuture negotiationResponse = CompletableFuture.completedFuture( @@ -183,7 +183,7 @@ void shouldStartNegotiationProcessWhenTokenStatusIsRequiredNew() // when testee.negotiate(CONNECTOR_URL, catalogItem, - new EndpointDataReferenceStatus(null, EndpointDataReferenceStatus.TokenStatus.REQUIRED_NEW)); + new EndpointDataReferenceStatus(null, EndpointDataReferenceStatus.TokenStatus.REQUIRED_NEW), "bpn"); // then verify(edcControlPlaneClient).startNegotiations(any()); @@ -196,7 +196,7 @@ void shouldStartNegotiationProcessWhenTokenStatusIsMissing() final var assetId = "testTarget"; final String offerId = "offerId"; final CatalogItem catalogItem = createCatalogItem(assetId, offerId); - when(policyCheckerService.isValid(any())).thenReturn(Boolean.TRUE); + when(policyCheckerService.isValid(any(), any())).thenReturn(Boolean.TRUE); when(edcControlPlaneClient.startNegotiations(any())).thenReturn( Response.builder().responseId("negotiationId").build()); CompletableFuture negotiationResponse = CompletableFuture.completedFuture( @@ -208,7 +208,7 @@ void shouldStartNegotiationProcessWhenTokenStatusIsMissing() CompletableFuture.completedFuture(TransferProcessResponse.builder().build())); // when - testee.negotiate(CONNECTOR_URL, catalogItem, null); + testee.negotiate(CONNECTOR_URL, catalogItem, null, "bpn"); // then verify(edcControlPlaneClient).startNegotiations(any()); @@ -231,7 +231,7 @@ void shouldNotStartNewNegotiationWhenTokenIsExpired() // when testee.negotiate(CONNECTOR_URL, catalogItem, new EndpointDataReferenceStatus( EndpointDataReference.Builder.newInstance().authKey("").authCode(encodedAuthCode).endpoint("").build(), - EndpointDataReferenceStatus.TokenStatus.EXPIRED)); + EndpointDataReferenceStatus.TokenStatus.EXPIRED), "bpn"); // then verify(edcControlPlaneClient, never()).startNegotiations(any()); @@ -248,7 +248,7 @@ void shouldThrowInvalidStateExceptionWhenTokenIsValid() { // then assertThatThrownBy(() -> testee.negotiate(CONNECTOR_URL, catalogItem, new EndpointDataReferenceStatus( EndpointDataReference.Builder.newInstance().authKey("").endpoint("").authCode("").build(), - EndpointDataReferenceStatus.TokenStatus.VALID))).isInstanceOf(IllegalStateException.class); + EndpointDataReferenceStatus.TokenStatus.VALID), "bpn")).isInstanceOf(IllegalStateException.class); } } \ No newline at end of file diff --git a/irs-edc-client/src/test/java/org/eclipse/tractusx/irs/edc/client/EdcSubmodelClientLocalStubTest.java b/irs-edc-client/src/test/java/org/eclipse/tractusx/irs/edc/client/EdcSubmodelClientLocalStubTest.java index 9be5557c9c..f979c91a8e 100644 --- a/irs-edc-client/src/test/java/org/eclipse/tractusx/irs/edc/client/EdcSubmodelClientLocalStubTest.java +++ b/irs-edc-client/src/test/java/org/eclipse/tractusx/irs/edc/client/EdcSubmodelClientLocalStubTest.java @@ -47,6 +47,6 @@ void shouldThrowExceptionFor() { String assetId = "urn:uuid:c35ee875-5443-4a2d-bc14-fdacd64b9446"; // when - assertThrows(EdcClientException.class, () -> edcSubmodelClientLocalStub.getSubmodelPayload("", "", assetId)); + assertThrows(EdcClientException.class, () -> edcSubmodelClientLocalStub.getSubmodelPayload("", "", assetId, "")); } } \ No newline at end of file diff --git a/irs-edc-client/src/test/java/org/eclipse/tractusx/irs/edc/client/EdcSubmodelClientTest.java b/irs-edc-client/src/test/java/org/eclipse/tractusx/irs/edc/client/EdcSubmodelClientTest.java index 5e2b06ea4b..54f6ebf6f5 100644 --- a/irs-edc-client/src/test/java/org/eclipse/tractusx/irs/edc/client/EdcSubmodelClientTest.java +++ b/irs-edc-client/src/test/java/org/eclipse/tractusx/irs/edc/client/EdcSubmodelClientTest.java @@ -136,7 +136,7 @@ void shouldRetrieveValidRelationship() throws Exception { when(catalogFacade.fetchCatalogByFilter(any(), any(), any())).thenReturn( List.of(CatalogItem.builder().itemId("itemId").build())); when(contractNegotiationService.negotiate(any(), any(), - eq(new EndpointDataReferenceStatus(null, TokenStatus.REQUIRED_NEW)))).thenReturn( + eq(new EndpointDataReferenceStatus(null, TokenStatus.REQUIRED_NEW)), any())).thenReturn( NegotiationResponse.builder().contractAgreementId("agreementId").build()); final EndpointDataReference ref = TestMother.endpointDataReference("agreementId"); endpointDataReferenceStorage.put("agreementId", ref); @@ -146,7 +146,7 @@ void shouldRetrieveValidRelationship() throws Exception { new EndpointDataReferenceStatus(null, TokenStatus.REQUIRED_NEW)); // act - final var result = testee.getSubmodelPayload(ENDPOINT_ADDRESS, "suffix", "assetId"); + final var result = testee.getSubmodelPayload(ENDPOINT_ADDRESS, "suffix", "assetId", "bpn"); final String resultingRelationships = result.get(5, TimeUnit.SECONDS).getPayload(); // assert @@ -159,7 +159,7 @@ void shouldSendNotificationSuccessfully() throws Exception { final EdcNotification notification = EdcNotification.builder().build(); when(catalogFacade.fetchCatalogByFilter(any(), any(), any())).thenReturn( List.of(CatalogItem.builder().itemId("itemId").build())); - when(contractNegotiationService.negotiate(any(), any(), any())).thenReturn( + when(contractNegotiationService.negotiate(any(), any(), any(), any())).thenReturn( NegotiationResponse.builder().contractAgreementId("agreementId").build()); final EndpointDataReference ref = mock(EndpointDataReference.class); endpointDataReferenceStorage.put("agreementId", ref); @@ -168,7 +168,7 @@ void shouldSendNotificationSuccessfully() throws Exception { new EndpointDataReferenceStatus(null, TokenStatus.REQUIRED_NEW)); // act - final var result = testee.sendNotification(CONNECTOR_ENDPOINT, "notify-request-asset", notification); + final var result = testee.sendNotification(CONNECTOR_ENDPOINT, "notify-request-asset", notification, "bpn"); final EdcNotificationResponse response = result.get(5, TimeUnit.SECONDS); // assert @@ -195,7 +195,7 @@ void shouldReturnRelationshipsWhenRequestingWithCatenaXIdAndSingleLevelBomAsBuil when(endpointDataReferenceCacheService.getEndpointDataReference(any())).thenReturn( new EndpointDataReferenceStatus(null, TokenStatus.REQUIRED_NEW)); - final String submodelResponse = testee.getSubmodelPayload("http://localhost/", "/submodel", ASSET_ID) + final String submodelResponse = testee.getSubmodelPayload("http://localhost/", "/submodel", ASSET_ID, "bpn") .get(5, TimeUnit.SECONDS).getPayload(); assertThat(submodelResponse).contains(existingCatenaXId); @@ -210,7 +210,7 @@ void shouldReturnRelationshipsWhenRequestingWithCatenaXIdAndSingleLevelBomAsPlan when(endpointDataReferenceCacheService.getEndpointDataReference(any())).thenReturn( new EndpointDataReferenceStatus(null, TokenStatus.REQUIRED_NEW)); - final String submodelResponse = testee.getSubmodelPayload("http://localhost/", "/submodel", ASSET_ID) + final String submodelResponse = testee.getSubmodelPayload("http://localhost/", "/submodel", ASSET_ID, "bpn") .get(5, TimeUnit.SECONDS).getPayload(); assertThat(submodelResponse).contains("urn:uuid:e5c96ab5-896a-482c-8761-efd74777ca97"); @@ -225,7 +225,7 @@ void shouldReturnRelationshipsWhenRequestingWithCatenaXIdAndSingleLevelBomAsSpec when(endpointDataReferenceCacheService.getEndpointDataReference(any())).thenReturn( new EndpointDataReferenceStatus(null, TokenStatus.REQUIRED_NEW)); - final String submodelResponse = testee.getSubmodelPayload("http://localhost/", "/submodel", ASSET_ID) + final String submodelResponse = testee.getSubmodelPayload("http://localhost/", "/submodel", ASSET_ID, "bpn") .get(5, TimeUnit.SECONDS).getPayload(); assertThat(submodelResponse).contains("urn:uuid:2afbac90-a662-4f16-9058-4f030e692631"); @@ -240,7 +240,7 @@ void shouldReturnEmptyRelationshipsWhenRequestingWithCatenaXIdAndSingleLevelUsag when(endpointDataReferenceCacheService.getEndpointDataReference(any())).thenReturn( new EndpointDataReferenceStatus(null, TokenStatus.REQUIRED_NEW)); - final String submodelResponse = testee.getSubmodelPayload("http://localhost/", "/submodel", ASSET_ID) + final String submodelResponse = testee.getSubmodelPayload("http://localhost/", "/submodel", ASSET_ID, "bpn") .get(5, TimeUnit.SECONDS).getPayload(); assertThat(submodelResponse).isNotEmpty(); @@ -256,7 +256,7 @@ void shouldReturnEmptyRelationshipsWhenRequestingWithNotExistingCatenaXIdAndSing when(endpointDataReferenceCacheService.getEndpointDataReference(ASSET_ID)).thenReturn( new EndpointDataReferenceStatus(null, TokenStatus.REQUIRED_NEW)); - final String submodelResponse = testee.getSubmodelPayload("http://localhost/", "/submodel", ASSET_ID) + final String submodelResponse = testee.getSubmodelPayload("http://localhost/", "/submodel", ASSET_ID, "bpn") .get(5, TimeUnit.SECONDS).getPayload(); assertThat(submodelResponse).isEqualTo("{}"); @@ -272,7 +272,7 @@ void shouldReturnRawSerialPartWhenExisting() throws Exception { new EndpointDataReferenceStatus(null, TokenStatus.REQUIRED_NEW)); final String submodelResponse = testee.getSubmodelPayload("https://connector.endpoint.com", - "/shells/{aasIdentifier}/submodels/{submodelIdentifier}/submodel", ASSET_ID) + "/shells/{aasIdentifier}/submodels/{submodelIdentifier}/submodel", ASSET_ID, "bpn") .get(5, TimeUnit.SECONDS).getPayload(); assertThat(submodelResponse).startsWith( @@ -290,7 +290,7 @@ void shouldUseDecodedTargetId() throws Exception { new EndpointDataReferenceStatus(null, TokenStatus.REQUIRED_NEW)); final String submodelResponse = testee.getSubmodelPayload("https://connector.endpoint.com", - "/shells/{aasIdentifier}/submodels/{submodelIdentifier}/submodel", ASSET_ID) + "/shells/{aasIdentifier}/submodels/{submodelIdentifier}/submodel", ASSET_ID, "bpn") .get(5, TimeUnit.SECONDS).getPayload(); assertThat(submodelResponse).startsWith( @@ -307,7 +307,7 @@ void shouldReturnSameRelationshipsForDifferentDirections() throws Exception { when(endpointDataReferenceCacheService.getEndpointDataReference(ASSET_ID)).thenReturn( new EndpointDataReferenceStatus(null, TokenStatus.REQUIRED_NEW)); final String relationshipsJson = testee.getSubmodelPayload("http://localhost/", "_singleLevelBomAsBuilt", - ASSET_ID).get(5, TimeUnit.SECONDS).getPayload(); + ASSET_ID, "bpn").get(5, TimeUnit.SECONDS).getPayload(); final var relationships = StringMapper.mapFromString(relationshipsJson, RelationshipAspect.from(asBuilt, Direction.DOWNWARD).getSubmodelClazz()).asRelationships(); @@ -320,7 +320,7 @@ void shouldReturnSameRelationshipsForDifferentDirections() throws Exception { prepareTestdata(childCatenaXId.getGlobalAssetId(), "_singleLevelUsageAsBuilt"); final String singleLevelUsageRelationshipsJson = testee.getSubmodelPayload("http://localhost/", - "_singleLevelUsageAsBuilt", ASSET_ID).get(5, TimeUnit.SECONDS).getPayload(); + "_singleLevelUsageAsBuilt", ASSET_ID, "bpn").get(5, TimeUnit.SECONDS).getPayload(); final var singleLevelUsageRelationships = StringMapper.mapFromString(singleLevelUsageRelationshipsJson, RelationshipAspect.from(asBuilt, Direction.UPWARD).getSubmodelClazz()).asRelationships(); @@ -340,14 +340,14 @@ void shouldRetrieveEndpointReferenceForAsset() throws Exception { when(catalogFacade.fetchCatalogByFilter(any(), any(), any())).thenReturn( List.of(CatalogItem.builder().itemId("asset-id").build())); when(contractNegotiationService.negotiate(any(), any(), - eq(new EndpointDataReferenceStatus(null, TokenStatus.REQUIRED_NEW)))).thenReturn( + eq(new EndpointDataReferenceStatus(null, TokenStatus.REQUIRED_NEW)), any())).thenReturn( NegotiationResponse.builder().contractAgreementId(agreementId).build()); final EndpointDataReference expected = mock(EndpointDataReference.class); endpointDataReferenceStorage.put(agreementId, expected); // act final var result = testee.getEndpointReferenceForAsset(ENDPOINT_ADDRESS, filterKey, filterValue, - new EndpointDataReferenceStatus(null, TokenStatus.REQUIRED_NEW)); + new EndpointDataReferenceStatus(null, TokenStatus.REQUIRED_NEW), "bpn"); final EndpointDataReference actual = result.get(5, TimeUnit.SECONDS); // assert @@ -363,13 +363,13 @@ void shouldRetrieveEndpointReferenceForAsset2() throws Exception { when(catalogFacade.fetchCatalogByFilter(any(), any(), any())).thenReturn( List.of(CatalogItem.builder().itemId("asset-id").build())); when(contractNegotiationService.negotiate(any(), any(), - eq(new EndpointDataReferenceStatus(null, TokenStatus.REQUIRED_NEW)))).thenReturn( + eq(new EndpointDataReferenceStatus(null, TokenStatus.REQUIRED_NEW)), any())).thenReturn( NegotiationResponse.builder().contractAgreementId(agreementId).build()); final EndpointDataReference expected = mock(EndpointDataReference.class); endpointDataReferenceStorage.put(agreementId, expected); // act - final var result = testee.getEndpointReferenceForAsset(ENDPOINT_ADDRESS, filterKey, filterValue); + final var result = testee.getEndpointReferenceForAsset(ENDPOINT_ADDRESS, filterKey, filterValue, "bpn"); final EndpointDataReference actual = result.get(5, TimeUnit.SECONDS); // assert @@ -387,11 +387,11 @@ void shouldUseCachedEndpointReferenceValueWhenTokenIsValid() when(edcDataPlaneClient.getData(any(), any())).thenReturn(value); // when - final var resultFuture = testee.getSubmodelPayload(ENDPOINT_ADDRESS, "suffix", "assetId"); + final var resultFuture = testee.getSubmodelPayload(ENDPOINT_ADDRESS, "suffix", "assetId", "bpn"); // then final String result = resultFuture.get().getPayload(); - verify(contractNegotiationService, never()).negotiate(any(), any(), any()); + verify(contractNegotiationService, never()).negotiate(any(), any(), any(), any()); assertThat(result).isEqualTo(value); } @@ -401,7 +401,7 @@ void shouldCreateCacheRecordWhenTokenIsNotValid() throws EdcClientException { when(catalogFacade.fetchCatalogByFilter(any(), any(), any())).thenReturn( List.of(CatalogItem.builder().itemId("itemId").build())); when(contractNegotiationService.negotiate(any(), any(), - eq(new EndpointDataReferenceStatus(null, TokenStatus.REQUIRED_NEW)))).thenReturn( + eq(new EndpointDataReferenceStatus(null, TokenStatus.REQUIRED_NEW)), any())).thenReturn( NegotiationResponse.builder().contractAgreementId("agreementId").build()); final EndpointDataReference ref = mock(EndpointDataReference.class); endpointDataReferenceStorage.put("agreementId", ref); @@ -409,7 +409,7 @@ void shouldCreateCacheRecordWhenTokenIsNotValid() throws EdcClientException { new EndpointDataReferenceStatus(null, TokenStatus.REQUIRED_NEW)); // when - testee.getSubmodelPayload(ENDPOINT_ADDRESS, "suffix", "assetId"); + testee.getSubmodelPayload(ENDPOINT_ADDRESS, "suffix", "assetId", "bpn"); // then final Optional referenceFromStorage = endpointDataReferenceStorage.get("assetId"); @@ -420,7 +420,7 @@ private void prepareTestdata(final String catenaXId, final String submodelDataSu throws ContractNegotiationException, IOException, UsagePolicyException, TransferProcessException { when(contractNegotiationService.negotiate(any(), any(), - eq(new EndpointDataReferenceStatus(null, TokenStatus.REQUIRED_NEW)))).thenReturn( + eq(new EndpointDataReferenceStatus(null, TokenStatus.REQUIRED_NEW)), any())).thenReturn( NegotiationResponse.builder().contractAgreementId("agreementId").build()); final EndpointDataReference ref = TestMother.endpointDataReference("agreementId"); endpointDataReferenceStorage.put("agreementId", ref); diff --git a/irs-edc-client/src/test/java/org/eclipse/tractusx/irs/edc/client/EdcSubmodelFacadeTest.java b/irs-edc-client/src/test/java/org/eclipse/tractusx/irs/edc/client/EdcSubmodelFacadeTest.java index 5b384f1ccc..d757c87b2b 100644 --- a/irs-edc-client/src/test/java/org/eclipse/tractusx/irs/edc/client/EdcSubmodelFacadeTest.java +++ b/irs-edc-client/src/test/java/org/eclipse/tractusx/irs/edc/client/EdcSubmodelFacadeTest.java @@ -67,11 +67,11 @@ void shouldThrowExecutionExceptionForSubmodel() throws EdcClientException { // arrange final ExecutionException e = new ExecutionException(new EdcClientException("test")); final CompletableFuture future = CompletableFuture.failedFuture(e); - when(client.getSubmodelPayload(any(), any(), any())).thenReturn(future); + when(client.getSubmodelPayload(any(), any(), any(), any())).thenReturn(future); // act ThrowableAssert.ThrowingCallable action = () -> testee.getSubmodelPayload(CONNECTOR_ENDPOINT, - SUBMODEL_SUFIX, ASSET_ID); + SUBMODEL_SUFIX, ASSET_ID, "bpn"); // assert assertThatThrownBy(action).isInstanceOf(EdcClientException.class); @@ -81,11 +81,11 @@ void shouldThrowExecutionExceptionForSubmodel() throws EdcClientException { void shouldThrowEdcClientExceptionForSubmodel() throws EdcClientException { // arrange final EdcClientException e = new EdcClientException("test"); - when(client.getSubmodelPayload(any(), any(), any())).thenThrow(e); + when(client.getSubmodelPayload(any(), any(), any(), any())).thenThrow(e); // act ThrowableAssert.ThrowingCallable action = () -> testee.getSubmodelPayload(CONNECTOR_ENDPOINT, - SUBMODEL_SUFIX, ASSET_ID); + SUBMODEL_SUFIX, ASSET_ID, "bpn"); // assert assertThatThrownBy(action).isInstanceOf(EdcClientException.class); @@ -98,10 +98,10 @@ void shouldRestoreInterruptOnInterruptExceptionForSubmodel() final CompletableFuture future = mock(CompletableFuture.class); final InterruptedException e = new InterruptedException(); when(future.get()).thenThrow(e); - when(client.getSubmodelPayload(any(), any(), any())).thenReturn(future); + when(client.getSubmodelPayload(any(), any(), any(), any())).thenReturn(future); // act - testee.getSubmodelPayload(CONNECTOR_ENDPOINT, SUBMODEL_SUFIX, ASSET_ID); + testee.getSubmodelPayload(CONNECTOR_ENDPOINT, SUBMODEL_SUFIX, ASSET_ID, "bpn"); // assert assertThat(Thread.currentThread().isInterrupted()).isTrue(); @@ -120,10 +120,10 @@ void shouldRestoreInterruptOnInterruptExceptionForNotification() final CompletableFuture future = mock(CompletableFuture.class); final InterruptedException e = new InterruptedException(); when(future.get()).thenThrow(e); - when(client.sendNotification(any(), any(), any())).thenReturn(future); + when(client.sendNotification(any(), any(), any(), any())).thenReturn(future); // act - testee.sendNotification("", "notify-request-asset", null); + testee.sendNotification("", "notify-request-asset", null, "bpn"); // assert assertThat(Thread.currentThread().isInterrupted()).isTrue(); @@ -134,10 +134,10 @@ void shouldThrowExecutionExceptionForNotification() throws EdcClientException { // arrange final ExecutionException e = new ExecutionException(new EdcClientException("test")); final CompletableFuture future = CompletableFuture.failedFuture(e); - when(client.sendNotification(any(), any(), any())).thenReturn(future); + when(client.sendNotification(any(), any(), any(), any())).thenReturn(future); // act - ThrowableAssert.ThrowingCallable action = () -> testee.sendNotification("", "notify-request-asset", null); + ThrowableAssert.ThrowingCallable action = () -> testee.sendNotification("", "notify-request-asset", null, "bpn"); // assert assertThatThrownBy(action).isInstanceOf(EdcClientException.class); @@ -147,10 +147,10 @@ void shouldThrowExecutionExceptionForNotification() throws EdcClientException { void shouldThrowEdcClientExceptionForNotification() throws EdcClientException { // arrange final EdcClientException e = new EdcClientException("test"); - when(client.sendNotification(any(), any(), any())).thenThrow(e); + when(client.sendNotification(any(), any(), any(), any())).thenThrow(e); // act - ThrowableAssert.ThrowingCallable action = () -> testee.sendNotification("", "notify-request-asset", null); + ThrowableAssert.ThrowingCallable action = () -> testee.sendNotification("", "notify-request-asset", null, "bpn"); // assert assertThatThrownBy(action).isInstanceOf(EdcClientException.class); @@ -165,10 +165,10 @@ class GetEndpointReferenceForAssetTests { void shouldThrowEdcClientExceptionForEndpointReference() throws EdcClientException { // arrange final EdcClientException e = new EdcClientException("test"); - when(client.getEndpointReferenceForAsset(any(), any(), any())).thenThrow(e); + when(client.getEndpointReferenceForAsset(any(), any(), any(), any())).thenThrow(e); // act - ThrowableAssert.ThrowingCallable action = () -> testee.getEndpointReferenceForAsset("", "", ""); + ThrowableAssert.ThrowingCallable action = () -> testee.getEndpointReferenceForAsset("", "", "", ""); // assert assertThatThrownBy(action).isInstanceOf(EdcClientException.class); @@ -179,10 +179,10 @@ void shouldThrowExecutionExceptionForEndpointReference() throws EdcClientExcepti // arrange final ExecutionException e = new ExecutionException(new EdcClientException("test")); final CompletableFuture future = CompletableFuture.failedFuture(e); - when(client.getEndpointReferenceForAsset(any(), any(), any())).thenReturn(future); + when(client.getEndpointReferenceForAsset(any(), any(), any(), any())).thenReturn(future); // act - ThrowableAssert.ThrowingCallable action = () -> testee.getEndpointReferenceForAsset("", "", ""); + ThrowableAssert.ThrowingCallable action = () -> testee.getEndpointReferenceForAsset("", "", "", ""); // assert assertThatThrownBy(action).isInstanceOf(EdcClientException.class); @@ -195,10 +195,10 @@ void shouldRestoreInterruptOnInterruptExceptionForEndpointReference() final CompletableFuture future = mock(CompletableFuture.class); final InterruptedException e = new InterruptedException(); when(future.get()).thenThrow(e); - when(client.getEndpointReferenceForAsset(any(), any(), any())).thenReturn(future); + when(client.getEndpointReferenceForAsset(any(), any(), any(), any())).thenReturn(future); // act - testee.getEndpointReferenceForAsset("", "", ""); + testee.getEndpointReferenceForAsset("", "", "", ""); // assert assertThat(Thread.currentThread().isInterrupted()).isTrue(); 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 f96987c366..88525c208f 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 @@ -33,6 +33,7 @@ import static org.eclipse.tractusx.irs.testing.wiremock.SubmodelFacadeWiremockSupport.PATH_DATAPLANE_PUBLIC; 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.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -125,7 +126,7 @@ void configureSystemUnderTest(WireMockRuntimeInfo wireMockRuntimeInfo) { new EndpointDataReferenceStorage(Duration.ofMinutes(1))); acceptedPoliciesProvider = mock(AcceptedPoliciesProvider.class); - when(acceptedPoliciesProvider.getAcceptedPolicies()).thenReturn(List.of(new AcceptedPolicy(policy("IRS Policy", + when(acceptedPoliciesProvider.getAcceptedPolicies(List.of("BPN"))).thenReturn(List.of(new AcceptedPolicy(policy("IRS Policy", List.of(new Permission(PolicyType.USE, new Constraints( List.of(new Constraint("Membership", new Operator(OperatorType.EQ), "active"), new Constraint("FrameworkAgreement.traceability", new Operator(OperatorType.EQ), "active")), @@ -148,9 +149,18 @@ void shouldReturnAssemblyPartRelationshipAsString() givenThat(get(urlPathEqualTo(SUBMODEL_DATAPLANE_PATH)).willReturn( responseWithStatus(200).withBodyFile("singleLevelBomAsBuilt.json"))); + final List andConstraints = List.of( + new Constraint("Membership", new Operator(OperatorType.EQ), "active"), new Constraint("FrameworkAgreement.traceability", new Operator(OperatorType.EQ), "active")); + final ArrayList orConstraints = new ArrayList<>(); + final Permission permission = new Permission(PolicyType.USE, + new Constraints(andConstraints, orConstraints)); + final AcceptedPolicy acceptedPolicy = new AcceptedPolicy(policy("IRS Policy", List.of(permission)), + OffsetDateTime.now().plusYears(1)); + when(acceptedPoliciesProvider.getAcceptedPolicies(eq(List.of("bpn")))).thenReturn(List.of(acceptedPolicy)); + // Act final String submodel = edcSubmodelClient.getSubmodelPayload(CONNECTOR_ENDPOINT_URL, SUBMODEL_DATAPLANE_URL, - ASSET_ID).get().getPayload(); + ASSET_ID, "bpn").get().getPayload(); // Assert assertThat(submodel).contains("\"catenaXId\": \"urn:uuid:fe99da3d-b0de-4e80-81da-882aebcca978\""); @@ -164,9 +174,18 @@ void shouldReturnMaterialForRecyclingAsString() givenThat(get(urlPathEqualTo(SUBMODEL_DATAPLANE_PATH)).willReturn( responseWithStatus(200).withBodyFile("materialForRecycling.json"))); + final List andConstraints = List.of( + new Constraint("Membership", new Operator(OperatorType.EQ), "active"), new Constraint("FrameworkAgreement.traceability", new Operator(OperatorType.EQ), "active")); + final ArrayList orConstraints = new ArrayList<>(); + final Permission permission = new Permission(PolicyType.USE, + new Constraints(andConstraints, orConstraints)); + final AcceptedPolicy acceptedPolicy = new AcceptedPolicy(policy("IRS Policy", List.of(permission)), + OffsetDateTime.now().plusYears(1)); + when(acceptedPoliciesProvider.getAcceptedPolicies(eq(List.of("bpn")))).thenReturn(List.of(acceptedPolicy)); + // Act final String submodel = edcSubmodelClient.getSubmodelPayload(CONNECTOR_ENDPOINT_URL, SUBMODEL_DATAPLANE_URL, - ASSET_ID).get().getPayload(); + ASSET_ID, "bpn").get().getPayload(); // Assert assertThat(submodel).contains("\"materialName\": \"Cooper\","); @@ -179,9 +198,18 @@ void shouldReturnObjectAsStringWhenResponseNotJSON() prepareNegotiation(); givenThat(get(urlPathEqualTo(SUBMODEL_DATAPLANE_PATH)).willReturn(responseWithStatus(200).withBody("test"))); + final List andConstraints = List.of( + new Constraint("Membership", new Operator(OperatorType.EQ), "active"), new Constraint("FrameworkAgreement.traceability", new Operator(OperatorType.EQ), "active")); + final ArrayList orConstraints = new ArrayList<>(); + final Permission permission = new Permission(PolicyType.USE, + new Constraints(andConstraints, orConstraints)); + final AcceptedPolicy acceptedPolicy = new AcceptedPolicy(policy("IRS Policy", List.of(permission)), + OffsetDateTime.now().plusYears(1)); + when(acceptedPoliciesProvider.getAcceptedPolicies(eq(List.of("bpn")))).thenReturn(List.of(acceptedPolicy)); + // Act final String submodel = edcSubmodelClient.getSubmodelPayload(CONNECTOR_ENDPOINT_URL, SUBMODEL_DATAPLANE_URL, - ASSET_ID).get().getPayload(); + ASSET_ID, "bpn").get().getPayload(); // Assert assertThat(submodel).isEqualTo("test"); @@ -198,7 +226,7 @@ void shouldThrowExceptionWhenPoliciesAreNotAccepted() { final AcceptedPolicy acceptedPolicy = new AcceptedPolicy(policy("IRS Policy", List.of(permission)), OffsetDateTime.now().plusYears(1)); - when(acceptedPoliciesProvider.getAcceptedPolicies()).thenReturn(List.of(acceptedPolicy)); + when(acceptedPoliciesProvider.getAcceptedPolicies(List.of("bpn"))).thenReturn(List.of(acceptedPolicy)); prepareNegotiation(); givenThat(get(urlPathEqualTo(SUBMODEL_DATAPLANE_PATH)).willReturn(responseWithStatus(200).withBody("test"))); @@ -206,7 +234,7 @@ void shouldThrowExceptionWhenPoliciesAreNotAccepted() { // Act & Assert final String errorMessage = "Consumption of asset '58505404-4da1-427a-82aa-b79482bcd1f0' is not permitted as the required catalog offer policies do not comply with defined IRS policies."; assertThatExceptionOfType(UsagePolicyException.class).isThrownBy( - () -> edcSubmodelClient.getSubmodelPayload(CONNECTOR_ENDPOINT_URL, SUBMODEL_DATAPLANE_URL, ASSET_ID) + () -> edcSubmodelClient.getSubmodelPayload(CONNECTOR_ENDPOINT_URL, SUBMODEL_DATAPLANE_URL, ASSET_ID, "bpn") .get()).withMessageEndingWith(errorMessage); } @@ -217,9 +245,18 @@ void shouldThrowExceptionWhenResponse_400() { givenThat(get(urlPathEqualTo(SUBMODEL_DATAPLANE_PATH)).willReturn( responseWithStatus(400).withBody("{ error: '400'}"))); + final List andConstraints = List.of( + new Constraint("Membership", new Operator(OperatorType.EQ), "active"), new Constraint("FrameworkAgreement.traceability", new Operator(OperatorType.EQ), "active")); + final ArrayList orConstraints = new ArrayList<>(); + final Permission permission = new Permission(PolicyType.USE, + new Constraints(andConstraints, orConstraints)); + final AcceptedPolicy acceptedPolicy = new AcceptedPolicy(policy("IRS Policy", List.of(permission)), + OffsetDateTime.now().plusYears(1)); + when(acceptedPoliciesProvider.getAcceptedPolicies(eq(List.of("bpn")))).thenReturn(List.of(acceptedPolicy)); + // Act final ThrowableAssert.ThrowingCallable throwingCallable = () -> edcSubmodelClient.getSubmodelPayload( - CONNECTOR_ENDPOINT_URL, SUBMODEL_DATAPLANE_URL, ASSET_ID).get(5, TimeUnit.SECONDS); + CONNECTOR_ENDPOINT_URL, SUBMODEL_DATAPLANE_URL, ASSET_ID, "bpn").get(5, TimeUnit.SECONDS); // Assert assertThatExceptionOfType(ExecutionException.class).isThrownBy(throwingCallable) @@ -233,9 +270,18 @@ void shouldThrowExceptionWhenResponse_500() { givenThat(get(urlPathEqualTo(SUBMODEL_DATAPLANE_PATH)).willReturn( responseWithStatus(500).withBody("{ error: '500'}"))); + final List andConstraints = List.of( + new Constraint("Membership", new Operator(OperatorType.EQ), "active"), new Constraint("FrameworkAgreement.traceability", new Operator(OperatorType.EQ), "active")); + final ArrayList orConstraints = new ArrayList<>(); + final Permission permission = new Permission(PolicyType.USE, + new Constraints(andConstraints, orConstraints)); + final AcceptedPolicy acceptedPolicy = new AcceptedPolicy(policy("IRS Policy", List.of(permission)), + OffsetDateTime.now().plusYears(1)); + when(acceptedPoliciesProvider.getAcceptedPolicies(eq(List.of("bpn")))).thenReturn(List.of(acceptedPolicy)); + // Act final ThrowableAssert.ThrowingCallable throwingCallable = () -> edcSubmodelClient.getSubmodelPayload( - CONNECTOR_ENDPOINT_URL, SUBMODEL_DATAPLANE_URL, ASSET_ID).get(5, TimeUnit.SECONDS); + CONNECTOR_ENDPOINT_URL, SUBMODEL_DATAPLANE_URL, ASSET_ID, "bpn").get(5, TimeUnit.SECONDS); // Assert assertThatExceptionOfType(ExecutionException.class).isThrownBy(throwingCallable) diff --git a/irs-edc-client/src/test/java/org/eclipse/tractusx/irs/edc/client/SubmodelRetryerTest.java b/irs-edc-client/src/test/java/org/eclipse/tractusx/irs/edc/client/SubmodelRetryerTest.java index 7758811e42..9ea8201595 100644 --- a/irs-edc-client/src/test/java/org/eclipse/tractusx/irs/edc/client/SubmodelRetryerTest.java +++ b/irs-edc-client/src/test/java/org/eclipse/tractusx/irs/edc/client/SubmodelRetryerTest.java @@ -100,7 +100,7 @@ void shouldRetryExecutionOfGetSubmodelOnClientMaxAttemptTimes() { assertThatThrownBy(() -> testee.getSubmodelPayload( "https://connector.endpoint.com", "/shells/{aasIdentifier}/submodels/{submodelIdentifier}/submodel", - "9300395e-c0a5-4e88-bc57-a3973fec4c26")).hasCauseInstanceOf( + "9300395e-c0a5-4e88-bc57-a3973fec4c26", "bpn")).hasCauseInstanceOf( HttpServerErrorException.class); // Assert @@ -119,7 +119,7 @@ void shouldRetryOnAnyRuntimeException() { assertThatThrownBy(() -> testee.getSubmodelPayload( "https://connector.endpoint.com", "/shells/{aasIdentifier}/submodels/{submodelIdentifier}/submodel", - "9300395e-c0a5-4e88-bc57-a3973fec4c26")).hasCauseInstanceOf(RuntimeException.class); + "9300395e-c0a5-4e88-bc57-a3973fec4c26", "bpn")).hasCauseInstanceOf(RuntimeException.class); // Assert verify(restTemplate, times(retryRegistry.getDefaultConfig().getMaxAttempts())).exchange(any(String.class), diff --git a/irs-edc-client/src/test/java/org/eclipse/tractusx/irs/edc/client/policy/AcceptedPoliciesProviderTest.java b/irs-edc-client/src/test/java/org/eclipse/tractusx/irs/edc/client/policy/AcceptedPoliciesProviderTest.java index a0d042703f..d38386f03c 100644 --- a/irs-edc-client/src/test/java/org/eclipse/tractusx/irs/edc/client/policy/AcceptedPoliciesProviderTest.java +++ b/irs-edc-client/src/test/java/org/eclipse/tractusx/irs/edc/client/policy/AcceptedPoliciesProviderTest.java @@ -37,7 +37,7 @@ class AcceptedPoliciesProviderTest { @Test void getAcceptedPolicies() { - final var acceptedPolicies = testee.getAcceptedPolicies(); + final var acceptedPolicies = testee.getAcceptedPolicies(List.of("testBpn")); assertThat(acceptedPolicies).isEmpty(); } @@ -45,20 +45,20 @@ void getAcceptedPolicies() { @Test void shouldReturnStoredPolicies() { testee.addAcceptedPolicies(List.of(policy())); - final var acceptedPolicies = testee.getAcceptedPolicies(); + final var acceptedPolicies = testee.getAcceptedPolicies(List.of("testBpn")); assertThat(acceptedPolicies).hasSize(1); } @Test void shouldRemoveStoredPolicies() { testee.addAcceptedPolicies(List.of(policy())); - final var acceptedPolicies = testee.getAcceptedPolicies(); + final var acceptedPolicies = testee.getAcceptedPolicies(List.of("testBpn")); assertThat(acceptedPolicies).hasSize(1); testee.removeAcceptedPolicies(acceptedPolicies); - assertThat(testee.getAcceptedPolicies()).isEmpty(); + assertThat(testee.getAcceptedPolicies(List.of("testBpn"))).isEmpty(); } @NotNull private static AcceptedPolicy policy() { diff --git a/irs-edc-client/src/test/java/org/eclipse/tractusx/irs/edc/client/policy/PolicyCheckerServiceTest.java b/irs-edc-client/src/test/java/org/eclipse/tractusx/irs/edc/client/policy/PolicyCheckerServiceTest.java index 1954360597..8b2f020021 100644 --- a/irs-edc-client/src/test/java/org/eclipse/tractusx/irs/edc/client/policy/PolicyCheckerServiceTest.java +++ b/irs-edc-client/src/test/java/org/eclipse/tractusx/irs/edc/client/policy/PolicyCheckerServiceTest.java @@ -29,6 +29,7 @@ import static org.eclipse.tractusx.irs.edc.client.testutil.TestMother.createAtomicConstraintPolicy; import static org.eclipse.tractusx.irs.edc.client.testutil.TestMother.createOrConstraintPolicy; import static org.eclipse.tractusx.irs.edc.client.testutil.TestMother.createXOneConstraintPolicy; +import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.when; import java.time.OffsetDateTime; @@ -56,7 +57,7 @@ void setUp() { new AcceptedPolicy(policy(TestConstants.ID_3_0_TRACE), OffsetDateTime.now().plusYears(1)), new AcceptedPolicy(policy(TestConstants.FRAMEWORK_AGREEMENT_TRACEABILITY), OffsetDateTime.now().plusYears(1))); - when(policyStore.getAcceptedPolicies()).thenReturn(policyList); +// when(policyStore.getAcceptedPolicies(List.of("bpn"))).thenReturn(policyList); policyCheckerService = new PolicyCheckerService(policyStore, new ConstraintCheckerService()); } @@ -66,7 +67,7 @@ void shouldRejectWrongPolicy() { final String unknownRightExpression = "Wrong_Trace"; Policy policy = createAtomicConstraintPolicy(TestConstants.PURPOSE, unknownRightExpression); // when - boolean result = policyCheckerService.isValid(policy); + boolean result = policyCheckerService.isValid(policy, "bpn"); // then assertThat(result).isFalse(); @@ -76,9 +77,9 @@ void shouldRejectWrongPolicy() { void shouldRejectWhenPolicyStoreIsEmpty() { // given Policy policy = createAtomicConstraintPolicy(TestConstants.PURPOSE, TestConstants.ID_3_0_TRACE); - when(policyStore.getAcceptedPolicies()).thenReturn(List.of()); + when(policyStore.getAcceptedPolicies(any())).thenReturn(List.of()); // when - boolean result = policyCheckerService.isValid(policy); + boolean result = policyCheckerService.isValid(policy, "bpn"); // then assertThat(result).isFalse(); @@ -91,13 +92,13 @@ void shouldRejectAndConstraintsWhenOnlyOneMatch() { OffsetDateTime.now().plusYears(1)), new AcceptedPolicy(policy(TestConstants.FRAMEWORK_AGREEMENT_DISMANTLER), OffsetDateTime.now().plusYears(1))); - when(policyStore.getAcceptedPolicies()).thenReturn(policyList); + when(policyStore.getAcceptedPolicies(any())).thenReturn(policyList); Policy policy = createAndConstraintPolicy( List.of(createAtomicConstraint(TestConstants.FRAMEWORK_AGREEMENT_TRACEABILITY, TestConstants.STATUS_ACTIVE), createAtomicConstraint(TestConstants.MEMBERSHIP, TestConstants.STATUS_ACTIVE))); // when - boolean result = policyCheckerService.isValid(policy); + boolean result = policyCheckerService.isValid(policy, "bpn"); // then assertThat(result).isFalse(); @@ -116,13 +117,13 @@ void shouldAcceptAndConstraintsWhenAcceptedPolicyContainsMoreConstraintsSuperSet new AcceptedPolicy(policy("and-policy", List.of(constraint1, constraint2, constraint3), List.of()), OffsetDateTime.now().plusYears(1))); - when(policyStore.getAcceptedPolicies()).thenReturn(policyList); + when(policyStore.getAcceptedPolicies(any())).thenReturn(policyList); Policy policy = createAndConstraintPolicy( List.of(createAtomicConstraint(TestConstants.FRAMEWORK_AGREEMENT_TRACEABILITY, TestConstants.STATUS_ACTIVE), createAtomicConstraint(TestConstants.MEMBERSHIP, TestConstants.STATUS_ACTIVE))); // when - boolean result = policyCheckerService.isValid(policy); + boolean result = policyCheckerService.isValid(policy, "bpn"); // then assertThat(result).isTrue(); @@ -141,13 +142,13 @@ void shouldAcceptOrConstraintsWhenAcceptedPolicyContainsMoreConstraintsSuperSetO new AcceptedPolicy(policy("and-policy", List.of(), List.of(constraint1, constraint2, constraint3)), OffsetDateTime.now().plusYears(1))); - when(policyStore.getAcceptedPolicies()).thenReturn(policyList); + when(policyStore.getAcceptedPolicies(any())).thenReturn(policyList); Policy policy = createOrConstraintPolicy( List.of(createAtomicConstraint(TestConstants.FRAMEWORK_AGREEMENT_TRACEABILITY, TestConstants.STATUS_ACTIVE), createAtomicConstraint(TestConstants.MEMBERSHIP, TestConstants.STATUS_ACTIVE))); // when - boolean result = policyCheckerService.isValid(policy); + boolean result = policyCheckerService.isValid(policy, "bpn"); // then assertThat(result).isTrue(); @@ -166,14 +167,14 @@ void shouldAcceptConstraintsWithDefaultPolicy() { final var policyList = List.of(new AcceptedPolicy( policy("default-policy", List.of(constraint1, constraint2, constraint3), List.of(constraint1, constraint2, constraint3)), OffsetDateTime.now().plusYears(1))); - when(policyStore.getAcceptedPolicies()).thenReturn(policyList); + when(policyStore.getAcceptedPolicies(any())).thenReturn(policyList); Policy policy = createOrConstraintPolicy( List.of(createAtomicConstraint(TestConstants.FRAMEWORK_AGREEMENT_TRACEABILITY, TestConstants.STATUS_ACTIVE), createAtomicConstraint(TestConstants.MEMBERSHIP, TestConstants.STATUS_ACTIVE))); // when - boolean result = policyCheckerService.isValid(policy); + boolean result = policyCheckerService.isValid(policy, "bpn"); // then assertThat(result).isTrue(); @@ -186,13 +187,13 @@ void shouldRejectOrConstraintsWhenNoneMatch() { new AcceptedPolicy(policy(TestConstants.FRAMEWORK_AGREEMENT_TEST), OffsetDateTime.now().plusYears(1)), new AcceptedPolicy(policy(TestConstants.FRAMEWORK_AGREEMENT_DISMANTLER), OffsetDateTime.now().plusYears(1))); - when(policyStore.getAcceptedPolicies()).thenReturn(policyList); + when(policyStore.getAcceptedPolicies(any())).thenReturn(policyList); Policy policy = createAndConstraintPolicy( List.of(createAtomicConstraint(TestConstants.FRAMEWORK_AGREEMENT_TRACEABILITY, TestConstants.STATUS_ACTIVE), createAtomicConstraint(TestConstants.MEMBERSHIP, TestConstants.STATUS_ACTIVE))); // when - boolean result = policyCheckerService.isValid(policy); + boolean result = policyCheckerService.isValid(policy, "bpn"); // then assertThat(result).isFalse(); @@ -205,13 +206,13 @@ void shouldRejectXOneConstraintsWhenNoneMatch() { new AcceptedPolicy(policy(TestConstants.FRAMEWORK_AGREEMENT_TEST), OffsetDateTime.now().plusYears(1)), new AcceptedPolicy(policy(TestConstants.FRAMEWORK_AGREEMENT_DISMANTLER), OffsetDateTime.now().plusYears(1))); - when(policyStore.getAcceptedPolicies()).thenReturn(policyList); + when(policyStore.getAcceptedPolicies(any())).thenReturn(policyList); Policy policy = createXOneConstraintPolicy( List.of(createAtomicConstraint(TestConstants.FRAMEWORK_AGREEMENT_TRACEABILITY, TestConstants.STATUS_ACTIVE), createAtomicConstraint(TestConstants.MEMBERSHIP, TestConstants.STATUS_ACTIVE))); // when - boolean result = policyCheckerService.isValid(policy); + boolean result = policyCheckerService.isValid(policy, "bpn"); // then assertThat(result).isFalse(); @@ -223,13 +224,13 @@ void shouldRejectXOneConstraintsWhenMoreThanOneMatch() { final var policyList = List.of(new AcceptedPolicy(policy(TestConstants.FRAMEWORK_AGREEMENT_TRACEABILITY), OffsetDateTime.now().plusYears(1)), new AcceptedPolicy(policy(TestConstants.MEMBERSHIP), OffsetDateTime.now().plusYears(1))); - when(policyStore.getAcceptedPolicies()).thenReturn(policyList); + when(policyStore.getAcceptedPolicies(any())).thenReturn(policyList); Policy policy = createXOneConstraintPolicy( List.of(createAtomicConstraint(TestConstants.FRAMEWORK_AGREEMENT_TRACEABILITY, TestConstants.STATUS_ACTIVE), createAtomicConstraint(TestConstants.MEMBERSHIP, TestConstants.STATUS_ACTIVE))); // when - boolean result = policyCheckerService.isValid(policy); + boolean result = policyCheckerService.isValid(policy, "bpn"); // then assertThat(result).isFalse(); diff --git a/irs-policy-store/src/main/java/org/eclipse/tractusx/irs/policystore/controllers/PolicyStoreController.java b/irs-policy-store/src/main/java/org/eclipse/tractusx/irs/policystore/controllers/PolicyStoreController.java index 56aa0e1b72..a9a61d1fd7 100644 --- a/irs-policy-store/src/main/java/org/eclipse/tractusx/irs/policystore/controllers/PolicyStoreController.java +++ b/irs-policy-store/src/main/java/org/eclipse/tractusx/irs/policystore/controllers/PolicyStoreController.java @@ -27,6 +27,12 @@ import static org.eclipse.tractusx.irs.common.ApiConstants.UNAUTHORIZED_DESC; import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE; +import java.util.AbstractMap; +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.media.ArraySchema; import io.swagger.v3.oas.annotations.media.Content; @@ -36,7 +42,6 @@ import io.swagger.v3.oas.annotations.responses.ApiResponses; import io.swagger.v3.oas.annotations.security.SecurityRequirement; import jakarta.validation.Valid; -import java.util.List; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.eclipse.tractusx.irs.common.auth.IrsRoles; @@ -67,7 +72,8 @@ @RequestMapping("irs") @RequiredArgsConstructor @SuppressWarnings({ "PMD.AvoidDuplicateLiterals", - "PMD.ExcessiveImports" + "PMD.ExcessiveImports", + "PMD.UseVarargs" }) public class PolicyStoreController { @@ -76,8 +82,7 @@ public class PolicyStoreController { @Operation(operationId = "registerAllowedPolicy", summary = "Register a policy that should be accepted in EDC negotiation.", - security = @SecurityRequirement(name = "api_key"), - tags = { "Item Relationship Service" }, + security = @SecurityRequirement(name = "api_key"), tags = { "Item Relationship Service" }, description = "Register a policy that should be accepted in EDC negotiation.") @ApiResponses(value = { @ApiResponse(responseCode = "201"), @ApiResponse(responseCode = "400", description = "Policy registration failed.", @@ -103,15 +108,16 @@ public class PolicyStoreController { @ResponseStatus(HttpStatus.CREATED) @PreAuthorize("hasAuthority('" + IrsRoles.ADMIN_IRS + "')") public void registerAllowedPolicy(final @RequestBody CreatePolicyRequest request) { - final Policy policy = edcTransformer.transformToPolicy(request.payload()); - policy.setValidUntil(request.validUntil()); - service.registerPolicy(policy); + request.payload().stream().map(payload -> { + final Policy policy = edcTransformer.transformToPolicy(payload); + policy.setValidUntil(request.validUntil()); + return policy; + }).forEach(policy -> service.registerPolicy(policy, request.businessPartnerNumbers())); } - @Operation(operationId = "getAllowedPolicies", + @Operation(operationId = "getAllowedPoliciesByBpn", summary = "Lists the registered policies that should be accepted in EDC negotiation.", - security = @SecurityRequirement(name = "api_key"), - tags = { "Item Relationship Service" }, + security = @SecurityRequirement(name = "api_key"), tags = { "Item Relationship Service" }, description = "Lists the registered policies that should be accepted in EDC negotiation.") @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "Returns the policies.", content = { @Content(mediaType = APPLICATION_JSON_VALUE, array = @ArraySchema( @@ -130,19 +136,52 @@ public void registerAllowedPolicy(final @RequestBody CreatePolicyRequest request ref = "#/components/examples/error-response-403")) }), }) - @GetMapping("/policies") + @GetMapping("/policies/{bpns}") @ResponseStatus(HttpStatus.OK) @PreAuthorize("hasAuthority('" + IrsRoles.ADMIN_IRS + "')") - public List getPolicies() { - return service.getStoredPolicies().stream() + public List getPolicies(@PathVariable final String[] bpns) { + return service.getStoredPolicies(Arrays.stream(bpns).toList()) + .stream() .map(PolicyResponse::fromPolicy) .toList(); } + @Operation(operationId = "getAllowedPolicies", + summary = "Lists the registered policies that should be accepted in EDC negotiation.", + security = @SecurityRequirement(name = "api_key"), tags = { "Item Relationship Service" }, + description = "Lists the registered policies that should be accepted in EDC negotiation.") + @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "Returns the policies.", + content = { @Content(mediaType = APPLICATION_JSON_VALUE, array = @ArraySchema( + schema = @Schema(implementation = Policy.class))) + }), + @ApiResponse(responseCode = "401", description = UNAUTHORIZED_DESC, + content = { @Content(mediaType = APPLICATION_JSON_VALUE, + schema = @Schema(implementation = ErrorResponse.class), + examples = @ExampleObject(name = "error", + ref = "#/components/examples/error-response-401")) + }), + @ApiResponse(responseCode = "403", description = FORBIDDEN_DESC, + content = { @Content(mediaType = APPLICATION_JSON_VALUE, + schema = @Schema(implementation = ErrorResponse.class), + examples = @ExampleObject(name = "error", + ref = "#/components/examples/error-response-403")) + }), + }) + @GetMapping("/policies") + @ResponseStatus(HttpStatus.OK) + @PreAuthorize("hasAuthority('" + IrsRoles.ADMIN_IRS + "')") + public Map> getAllPolicies() { + return service.getAllStoredPolicies() + .entrySet() + .stream() + .map(entry -> new AbstractMap.SimpleEntry<>(entry.getKey(), + entry.getValue().stream().map(PolicyResponse::fromPolicy).collect(Collectors.toList()))) + .collect(Collectors.toMap(AbstractMap.SimpleEntry::getKey, AbstractMap.SimpleEntry::getValue)); + } + @Operation(operationId = "deleteAllowedPolicy", summary = "Removes a policy that should no longer be accepted in EDC negotiation.", - security = @SecurityRequirement(name = "api_key"), - tags = { "Item Relationship Service" }, + security = @SecurityRequirement(name = "api_key"), tags = { "Item Relationship Service" }, description = "Removes a policy that should no longer be accepted in EDC negotiation.") @ApiResponses(value = { @ApiResponse(responseCode = "200"), @ApiResponse(responseCode = "400", description = "Policy deletion failed.", @@ -171,10 +210,9 @@ public void deleteAllowedPolicy(@PathVariable("policyId") final String policyId) service.deletePolicy(policyId); } - @Operation(operationId = "updateAllowedPolicy", summary = "Updates an existing policy with new validUntil value.", - security = @SecurityRequirement(name = "api_key"), - tags = { "Item Relationship Service" }, - description = "Updates an existing policy with new validUntil value.") + @Operation(operationId = "updateAllowedPolicy", summary = "Updates an existing policy.", + security = @SecurityRequirement(name = "api_key"), tags = { "Item Relationship Service" }, + description = "Updates an existing policy.") @ApiResponses(value = { @ApiResponse(responseCode = "200"), @ApiResponse(responseCode = "400", description = "Policy update failed.", content = { @Content(mediaType = APPLICATION_JSON_VALUE, @@ -195,11 +233,10 @@ public void deleteAllowedPolicy(@PathVariable("policyId") final String policyId) ref = "#/components/examples/error-response-403")) }), }) - @PutMapping("/policies/{policyId}") + @PutMapping("/policies") @ResponseStatus(HttpStatus.OK) @PreAuthorize("hasAuthority('" + IrsRoles.ADMIN_IRS + "')") - public void updateAllowedPolicy(@PathVariable("policyId") final String policyId, - final @Valid @RequestBody UpdatePolicyRequest request) { - service.updatePolicy(policyId, request); + public void updateAllowedPolicy(final @Valid @RequestBody UpdatePolicyRequest request) { + request.policiesIds().forEach(policyId -> service.updatePolicy(policyId, request)); } } diff --git a/irs-policy-store/src/main/java/org/eclipse/tractusx/irs/policystore/models/CreatePolicyRequest.java b/irs-policy-store/src/main/java/org/eclipse/tractusx/irs/policystore/models/CreatePolicyRequest.java index 06fbee3f36..3154a363ee 100644 --- a/irs-policy-store/src/main/java/org/eclipse/tractusx/irs/policystore/models/CreatePolicyRequest.java +++ b/irs-policy-store/src/main/java/org/eclipse/tractusx/irs/policystore/models/CreatePolicyRequest.java @@ -24,7 +24,9 @@ package org.eclipse.tractusx.irs.policystore.models; import java.time.OffsetDateTime; +import java.util.List; +import io.swagger.v3.oas.annotations.media.ArraySchema; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.json.JsonObject; import jakarta.validation.constraints.NotNull; @@ -36,7 +38,8 @@ @Schema(description = "Request to add a policy") public record CreatePolicyRequest( @NotNull @Schema(description = "Timestamp after which the policy will no longer be accepted in negotiations") OffsetDateTime validUntil, - @NotNull @Schema(example = CreatePolicyRequest.EXAMPLE_PAYLOAD) JsonObject payload) { + @ArraySchema() List businessPartnerNumbers, + @NotNull @Schema(example = CreatePolicyRequest.EXAMPLE_PAYLOAD) List payload) { @SuppressWarnings("java:S2479") // this value is used by open-api to show example payload diff --git a/irs-policy-store/src/main/java/org/eclipse/tractusx/irs/policystore/models/UpdatePolicyRequest.java b/irs-policy-store/src/main/java/org/eclipse/tractusx/irs/policystore/models/UpdatePolicyRequest.java index 4b4c455bd3..ead5a738bc 100644 --- a/irs-policy-store/src/main/java/org/eclipse/tractusx/irs/policystore/models/UpdatePolicyRequest.java +++ b/irs-policy-store/src/main/java/org/eclipse/tractusx/irs/policystore/models/UpdatePolicyRequest.java @@ -24,6 +24,7 @@ package org.eclipse.tractusx.irs.policystore.models; import java.time.OffsetDateTime; +import java.util.List; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotNull; @@ -33,5 +34,7 @@ */ @Schema(description = "Request to add a policy") public record UpdatePolicyRequest( - @Schema(description = "Timestamp after which the policy will no longer be accepted in negotiations") @NotNull OffsetDateTime validUntil) { + @Schema(description = "Timestamp after which the policy will no longer be accepted in negotiations") @NotNull OffsetDateTime validUntil, + List businessPartnerNumbers, + List policiesIds) { } diff --git a/irs-policy-store/src/main/java/org/eclipse/tractusx/irs/policystore/persistence/PolicyPersistence.java b/irs-policy-store/src/main/java/org/eclipse/tractusx/irs/policystore/persistence/PolicyPersistence.java index b2991563c5..74bae5be3e 100644 --- a/irs-policy-store/src/main/java/org/eclipse/tractusx/irs/policystore/persistence/PolicyPersistence.java +++ b/irs-policy-store/src/main/java/org/eclipse/tractusx/irs/policystore/persistence/PolicyPersistence.java @@ -26,16 +26,19 @@ import static org.eclipse.tractusx.irs.policystore.config.PolicyConfiguration.POLICY_BLOB_PERSISTENCE; import java.io.IOException; -import java.time.OffsetDateTime; +import java.util.AbstractMap; import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.ReentrantReadWriteLock; +import java.util.stream.Collectors; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import org.eclipse.tractusx.irs.common.persistence.BlobPersistence; import org.eclipse.tractusx.irs.common.persistence.BlobPersistenceException; +import org.eclipse.tractusx.irs.common.persistence.BlobPersistenceRuntimeException; import org.eclipse.tractusx.irs.edc.client.policy.Policy; import org.eclipse.tractusx.irs.policystore.exceptions.PolicyStoreException; import org.springframework.beans.factory.annotation.Qualifier; @@ -66,13 +69,28 @@ public PolicyPersistence(@Qualifier(POLICY_BLOB_PERSISTENCE) final BlobPersisten this.mapper = mapper; } - public void save(final String bpn, final Policy policy) { - final var policies = readAll(bpn); + public void save(final List bpns, final Policy policy) { + if (bpns == null) { + final List policies = readAll(BlobPersistence.DEFAULT_BLOB_NAME); + checkIfPolicyAlreadyExists(policy, policies); + policies.add(policy); + save(BlobPersistence.DEFAULT_BLOB_NAME, policies); + } else { + final Map> storedBpnToPolicies = bpns.stream() + .collect(Collectors.toMap(bpn -> bpn, + this::readAll)); + storedBpnToPolicies.forEach((bpn, policies) -> { + checkIfPolicyAlreadyExists(policy, policies); + policies.add(policy); + save(bpn, policies); + }); + } + } + + private static void checkIfPolicyAlreadyExists(final Policy policy, final List policies) { if (policies.stream().map(Policy::getPolicyId).anyMatch(policy.getPolicyId()::equals)) { throw new PolicyStoreException("Policy with id '" + policy.getPolicyId() + "' already exists!"); } - policies.add(policy); - save(bpn, policies); } public void delete(final String bpn, final String policyId) { @@ -84,18 +102,6 @@ public void delete(final String bpn, final String policyId) { save(bpn, modifiedPolicies); } - public void update(final String bpn, final String policyId, final OffsetDateTime validUntil) { - final var policies = readAll(bpn); - final Policy policy = policies.stream() - .filter(p -> p.getPolicyId().equals(policyId)) - .findFirst() - .orElseThrow(() -> new PolicyStoreException( - "Policy with id '" + policyId + "' doesn't exists!")); - - policy.update(validUntil); - save(bpn, policies); - } - private void save(final String bpn, final List modifiedPolicies) { writeLock(() -> { try { @@ -123,6 +129,23 @@ public List readAll(final String bpn) { } + public Map> readAll() { + try { + + + return policyStorePersistence.getAllBlobs().entrySet().stream().map(entry -> { + try { + return new AbstractMap.SimpleEntry<>(entry.getKey(), + mapper.readerForListOf(Policy.class).>readValue(entry.getValue())); + } catch (IOException e) { + throw new PolicyStoreException("Could not read the policies from the store", e); + } + }).collect(Collectors.toMap(AbstractMap.SimpleEntry::getKey, AbstractMap.SimpleEntry::getValue)); + } catch (BlobPersistenceException | BlobPersistenceRuntimeException e) { + throw new PolicyStoreException("Could not read the policies from the store", e); + } + } + private void writeLock(final Runnable work) { try { if (!lock.writeLock().tryLock(TIMEOUT, TimeUnit.MILLISECONDS)) { diff --git a/irs-policy-store/src/main/java/org/eclipse/tractusx/irs/policystore/services/PolicyStoreService.java b/irs-policy-store/src/main/java/org/eclipse/tractusx/irs/policystore/services/PolicyStoreService.java index 3f16e4a90b..5c4118b46e 100644 --- a/irs-policy-store/src/main/java/org/eclipse/tractusx/irs/policystore/services/PolicyStoreService.java +++ b/irs-policy-store/src/main/java/org/eclipse/tractusx/irs/policystore/services/PolicyStoreService.java @@ -23,10 +23,17 @@ ********************************************************************************/ package org.eclipse.tractusx.irs.policystore.services; +import static org.eclipse.tractusx.irs.common.persistence.BlobPersistence.DEFAULT_BLOB_NAME; + import java.time.Clock; import java.time.OffsetDateTime; import java.util.ArrayList; +import java.util.Collection; +import java.util.Comparator; +import java.util.LinkedList; import java.util.List; +import java.util.Map; +import java.util.TreeSet; import lombok.extern.slf4j.Slf4j; import org.eclipse.tractusx.irs.edc.client.policy.AcceptedPoliciesProvider; @@ -42,7 +49,6 @@ import org.eclipse.tractusx.irs.policystore.exceptions.PolicyStoreException; import org.eclipse.tractusx.irs.policystore.models.UpdatePolicyRequest; import org.eclipse.tractusx.irs.policystore.persistence.PolicyPersistence; -import org.springframework.beans.factory.annotation.Value; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; import org.springframework.web.server.ResponseStatusException; @@ -55,26 +61,24 @@ public class PolicyStoreService implements AcceptedPoliciesProvider { public static final int DEFAULT_POLICY_LIFETIME_YEARS = 5; - private final String apiAllowedBpn; private final List allowedPoliciesFromConfig; private final PolicyPersistence persistence; private final Clock clock; private static final String MISSING_REQUEST_FIELD_MESSAGE = "Request does not contain all required fields. Missing: %s"; - public PolicyStoreService(@Value("${apiAllowedBpn:}") final String apiAllowedBpn, - final DefaultAcceptedPoliciesConfig defaultAcceptedPoliciesConfig, final PolicyPersistence persistence, final Clock clock) { - this.apiAllowedBpn = apiAllowedBpn; + public PolicyStoreService(final DefaultAcceptedPoliciesConfig defaultAcceptedPoliciesConfig, + final PolicyPersistence persistence, final Clock clock) { this.allowedPoliciesFromConfig = createDefaultPolicyFromConfig(defaultAcceptedPoliciesConfig); this.persistence = persistence; this.clock = clock; } - public void registerPolicy(final Policy policy) { + public void registerPolicy(final Policy policy, final List businessPartnersNumbers) { validatePolicy(policy); policy.setCreatedOn(OffsetDateTime.now(clock)); log.info("Registering new policy with id {}, valid until {}", policy.getPolicyId(), policy.getValidUntil()); try { - persistence.save(apiAllowedBpn, policy); + persistence.save(businessPartnersNumbers, policy); } catch (final PolicyStoreException e) { throw new ResponseStatusException(HttpStatus.BAD_REQUEST, e.getMessage(), e); } @@ -82,20 +86,25 @@ public void registerPolicy(final Policy policy) { /** * Checks whether policy from register policy request has all required fields + * * @param policy policy to register */ private void validatePolicy(final Policy policy) { if (policy.getPermissions() == null) { - throw new ResponseStatusException(HttpStatus.BAD_REQUEST, String.format(MISSING_REQUEST_FIELD_MESSAGE, "odrl:permission")); + throw new ResponseStatusException(HttpStatus.BAD_REQUEST, + String.format(MISSING_REQUEST_FIELD_MESSAGE, "odrl:permission")); } if (policy.getPermissions().stream().anyMatch(p -> p.getConstraint() == null)) { - throw new ResponseStatusException(HttpStatus.BAD_REQUEST, String.format(MISSING_REQUEST_FIELD_MESSAGE, "odrl:constraint")); + throw new ResponseStatusException(HttpStatus.BAD_REQUEST, + String.format(MISSING_REQUEST_FIELD_MESSAGE, "odrl:constraint")); } } - public List getStoredPolicies() { - log.info("Reading all stored polices for BPN {}", apiAllowedBpn); - final var storedPolicies = persistence.readAll(apiAllowedBpn); + public List getStoredPolicies(final List bpns) { + log.info("Reading all stored polices for BPN {}", bpns); + final List storedPolicies = new LinkedList<>(); + bpns.forEach(bpn -> storedPolicies.addAll(persistence.readAll(bpn))); + if (storedPolicies.isEmpty()) { log.info("Policy store is empty, returning default values from config"); return allowedPoliciesFromConfig; @@ -104,10 +113,29 @@ public List getStoredPolicies() { } } + public Map> getAllStoredPolicies() { + final Map> bpnToPolicies = persistence.readAll(); + if (bpnToPolicies.isEmpty()) { + return Map.of("", allowedPoliciesFromConfig); + } + return bpnToPolicies; + } + public void deletePolicy(final String policyId) { try { + log.info("Getting all policies to find correct bpn number"); + final List bpnsContainingPolicyId = getAllStoredPolicies().entrySet() + .stream() + .filter(entry -> entry.getValue() + .stream() + .anyMatch( + policy -> policy.getPolicyId() + .equals(policyId))) + .map(Map.Entry::getKey) + .toList(); + log.info("Deleting policy with id {}", policyId); - persistence.delete(apiAllowedBpn, policyId); + bpnsContainingPolicyId.forEach(bpn -> persistence.delete(bpn, policyId)); } catch (final PolicyStoreException e) { throw new ResponseStatusException(HttpStatus.NOT_FOUND, e.getMessage(), e); } @@ -117,15 +145,48 @@ public void deletePolicy(final String policyId) { public void updatePolicy(final String policyId, final UpdatePolicyRequest request) { try { log.info("Updating policy with id {}", policyId); - persistence.update(apiAllowedBpn, policyId, request.validUntil()); + final List bpnsContainingPolicyId = getAllStoredPolicies().entrySet() + .stream() + .filter(entry -> entry.getValue() + .stream() + .anyMatch( + policy -> policy.getPolicyId() + .equals(policyId))) + .map(Map.Entry::getKey) + .toList(); + + final Policy policyToUpdate = getStoredPolicies(bpnsContainingPolicyId).stream() + .filter(policy -> policy.getPolicyId() + .equals(policyId)) + .findAny() + .orElseThrow( + () -> new PolicyStoreException( + "Policy with id '" + + policyId + + "' doesn't exists!")); + + policyToUpdate.update(request.validUntil()); + bpnsContainingPolicyId.forEach(bpn -> persistence.delete(bpn, policyId)); + persistence.save(request.businessPartnerNumbers(), policyToUpdate); } catch (final PolicyStoreException e) { throw new ResponseStatusException(HttpStatus.NOT_FOUND, e.getMessage(), e); } } @Override - public List getAcceptedPolicies() { - return getStoredPolicies().stream().map(this::toAcceptedPolicy).toList(); + public List getAcceptedPolicies(final List bpns) { + if (bpns == null) { + return getAllStoredPolicies().values().stream().flatMap(Collection::stream).map(this::toAcceptedPolicy).toList(); + } + + final ArrayList policies = new ArrayList<>(); + policies.addAll(getStoredPolicies(bpns)); + policies.addAll(getStoredPolicies(List.of(DEFAULT_BLOB_NAME))); + + final TreeSet result = new TreeSet<>(Comparator.comparing(Policy::getPolicyId)); + result.addAll(policies); + + return result.stream().map(this::toAcceptedPolicy).toList(); } private AcceptedPolicy toAcceptedPolicy(final Policy policy) { diff --git a/irs-policy-store/src/test/java/org/eclipse/tractusx/irs/policystore/controllers/PolicyStoreControllerTest.java b/irs-policy-store/src/test/java/org/eclipse/tractusx/irs/policystore/controllers/PolicyStoreControllerTest.java index f685cd33ab..66f1edf631 100644 --- a/irs-policy-store/src/test/java/org/eclipse/tractusx/irs/policystore/controllers/PolicyStoreControllerTest.java +++ b/irs-policy-store/src/test/java/org/eclipse/tractusx/irs/policystore/controllers/PolicyStoreControllerTest.java @@ -25,6 +25,7 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -121,10 +122,10 @@ void registerAllowedPolicy() { // act testee.registerAllowedPolicy( - new CreatePolicyRequest(now.plusMinutes(1), jsonObject.get("payload").asJsonObject())); + new CreatePolicyRequest(now.plusMinutes(1), null, List.of(jsonObject.get("payload").asJsonObject()))); // assert - verify(service).registerPolicy(any()); + verify(service).registerPolicy(any(), eq(null)); } @Test @@ -132,10 +133,10 @@ void getPolicies() { // arrange final List policies = List.of( new Policy("testId", OffsetDateTime.now(), OffsetDateTime.now(), createPermissions())); - when(service.getStoredPolicies()).thenReturn(policies); + when(service.getStoredPolicies(List.of("bpn1"))).thenReturn(policies); // act - final List returnedPolicies = testee.getPolicies(); + final List returnedPolicies = testee.getPolicies(new String[]{"bpn1"}); // assert assertThat(returnedPolicies).isEqualTo( @@ -154,11 +155,11 @@ void deleteAllowedPolicy() { @Test void updateAllowedPolicy() { // arrange - final UpdatePolicyRequest request = new UpdatePolicyRequest(OffsetDateTime.now()); + final String policyId = "policyId"; + final UpdatePolicyRequest request = new UpdatePolicyRequest(OffsetDateTime.now(), List.of("bpn"),List.of(policyId)); // act - final String policyId = "policyId"; - testee.updateAllowedPolicy(policyId, request); + testee.updateAllowedPolicy(request); // assert verify(service).updatePolicy(policyId, request); diff --git a/irs-policy-store/src/test/java/org/eclipse/tractusx/irs/policystore/persistence/PolicyPersistenceTest.java b/irs-policy-store/src/test/java/org/eclipse/tractusx/irs/policystore/persistence/PolicyPersistenceTest.java index 7fe7aedbc1..7264c7b3f6 100644 --- a/irs-policy-store/src/test/java/org/eclipse/tractusx/irs/policystore/persistence/PolicyPersistenceTest.java +++ b/irs-policy-store/src/test/java/org/eclipse/tractusx/irs/policystore/persistence/PolicyPersistenceTest.java @@ -73,7 +73,7 @@ void save() throws BlobPersistenceException { final var policy = new Policy("test", OffsetDateTime.now(), OffsetDateTime.now(), emptyList()); // act - testee.save("testBpn", policy); + testee.save(List.of("testBpn"), policy); // assert verify(mockPersistence).putBlob(anyString(), any()); @@ -87,7 +87,7 @@ void saveDuplicate() throws BlobPersistenceException, JsonProcessingException { when(mockPersistence.getBlob(anyString())).thenReturn(Optional.of(mapper.writeValueAsBytes(policies))); // act & assert - assertThatThrownBy(() -> testee.save("testBpn", policy)).isInstanceOf(PolicyStoreException.class); + assertThatThrownBy(() -> testee.save(List.of("testBpn"), policy)).isInstanceOf(PolicyStoreException.class); } @Test @@ -98,7 +98,7 @@ void saveWithError() throws BlobPersistenceException { new BlobPersistenceException("test", new IllegalStateException())); // act & assert - assertThatThrownBy(() -> testee.save("testBpn", policy)).isInstanceOf(PolicyStoreException.class); + assertThatThrownBy(() -> testee.save(List.of("testBpn"), policy)).isInstanceOf(PolicyStoreException.class); } @Test @@ -109,7 +109,7 @@ void saveWithWriteError() throws BlobPersistenceException { .putBlob(any(), any()); // act & assert - assertThatThrownBy(() -> testee.save("testBpn", policy)).isInstanceOf(PolicyStoreException.class); + assertThatThrownBy(() -> testee.save(List.of("testBpn"), policy)).isInstanceOf(PolicyStoreException.class); } @Test @@ -127,21 +127,6 @@ void delete() throws BlobPersistenceException, JsonProcessingException { verify(mockPersistence).putBlob(anyString(), any()); } - @Test - void update() throws BlobPersistenceException, JsonProcessingException { - // arrange - final String policyId = "test"; - final var policy = new Policy(policyId, OffsetDateTime.now(), OffsetDateTime.now(), emptyList()); - final var policies = List.of(policy); - when(mockPersistence.getBlob(anyString())).thenReturn(Optional.of(mapper.writeValueAsBytes(policies))); - - // act - testee.update("testBpn", policyId, OffsetDateTime.now()); - - // assert - verify(mockPersistence).putBlob(anyString(), any()); - } - @Test void deleteShouldThrowExceptionIfPolicyWithIdDoesntExists() throws BlobPersistenceException, JsonProcessingException { // arrange @@ -152,17 +137,6 @@ void deleteShouldThrowExceptionIfPolicyWithIdDoesntExists() throws BlobPersisten assertThrows(PolicyStoreException.class, () -> testee.delete("testBpn", "notExistingPolicyId")); } - @Test - void updateShouldThrowExceptionIfPolicyWithIdDoesntExists() throws BlobPersistenceException, JsonProcessingException { - // arrange - final OffsetDateTime now = OffsetDateTime.now(); - final var policy = new Policy("policyId", now, now, emptyList()); - when(mockPersistence.getBlob(anyString())).thenReturn(Optional.of(mapper.writeValueAsBytes(List.of(policy)))); - - // act - assertThrows(PolicyStoreException.class, () -> testee.update("testBpn", "notExistingPolicyId", now)); - } - @Test void readAll() throws BlobPersistenceException, JsonProcessingException { // arrange diff --git a/irs-policy-store/src/test/java/org/eclipse/tractusx/irs/policystore/services/PolicyStoreServiceTest.java b/irs-policy-store/src/test/java/org/eclipse/tractusx/irs/policystore/services/PolicyStoreServiceTest.java index e218ca2b94..03edeeed12 100644 --- a/irs-policy-store/src/test/java/org/eclipse/tractusx/irs/policystore/services/PolicyStoreServiceTest.java +++ b/irs-policy-store/src/test/java/org/eclipse/tractusx/irs/policystore/services/PolicyStoreServiceTest.java @@ -36,6 +36,7 @@ import java.time.OffsetDateTime; import java.util.Collections; import java.util.List; +import java.util.Map; import org.eclipse.tractusx.irs.edc.client.policy.Constraint; import org.eclipse.tractusx.irs.edc.client.policy.Constraints; @@ -46,7 +47,6 @@ import org.eclipse.tractusx.irs.edc.client.policy.PolicyType; import org.eclipse.tractusx.irs.policystore.config.DefaultAcceptedPoliciesConfig; import org.eclipse.tractusx.irs.policystore.exceptions.PolicyStoreException; -import org.eclipse.tractusx.irs.policystore.models.UpdatePolicyRequest; import org.eclipse.tractusx.irs.policystore.persistence.PolicyPersistence; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -74,7 +74,7 @@ class PolicyStoreServiceTest { void setUp() { final DefaultAcceptedPoliciesConfig defaultAcceptedPoliciesConfig = new DefaultAcceptedPoliciesConfig(); defaultAcceptedPoliciesConfig.setAcceptedPolicies(List.of()); - testee = new PolicyStoreService(BPN, defaultAcceptedPoliciesConfig, persistence, clock); + testee = new PolicyStoreService(defaultAcceptedPoliciesConfig, persistence, clock); } @Test @@ -84,10 +84,10 @@ void registerPolicy() { final Policy policy = new Policy("testId", now, now.plusMinutes(1), emptyList()); // act - testee.registerPolicy(policy); + testee.registerPolicy(policy, List.of(BPN)); // assert - verify(persistence).save(eq(BPN), any()); + verify(persistence).save(eq(List.of(BPN)), any()); } @Test @@ -97,10 +97,10 @@ void registerPolicyWithPermission() { final Policy policy = new Policy("testId", now, now.plusMinutes(1), createPermissions()); // act - testee.registerPolicy(policy); + testee.registerPolicy(policy, List.of(BPN)); // assert - verify(persistence).save(eq(BPN), policyCaptor.capture()); + verify(persistence).save(eq(List.of(BPN)), policyCaptor.capture()); assertThat(policyCaptor.getValue()).isNotNull(); List permissionList = policyCaptor.getValue().getPermissions(); @@ -115,10 +115,11 @@ void registerPolicyShouldThrowResponseStatusException() { final String policyId = "testId"; final OffsetDateTime now = OffsetDateTime.now(clock); final Policy policy = new Policy(policyId, now, now.plusMinutes(1), createPermissions()); - doThrow(new PolicyStoreException("")).when(persistence).save(eq(BPN), any()); + doThrow(new PolicyStoreException("")).when(persistence).save(any(), any()); // assert - assertThrows(ResponseStatusException.class, () -> testee.registerPolicy(policy)); + assertThrows(ResponseStatusException.class, () -> testee.registerPolicy(policy, + List.of(BPN))); } @Test @@ -128,7 +129,7 @@ void getStoredPolicies() { when(persistence.readAll(BPN)).thenReturn(policies); // act - final var storedPolicies = testee.getStoredPolicies(); + final var storedPolicies = testee.getStoredPolicies(List.of(BPN)); // assert assertThat(storedPolicies).hasSize(3); @@ -143,10 +144,10 @@ void getDefaultStoredPoliciesWhenEmpty() { EXAMPLE_ACCEPTED_LEFT_OPERAND, "eq", EXAMPLE_ALLOWED_NAME); final DefaultAcceptedPoliciesConfig defaultAcceptedPoliciesConfig = new DefaultAcceptedPoliciesConfig(); defaultAcceptedPoliciesConfig.setAcceptedPolicies(List.of(acceptedPolicy1, acceptedPolicy2)); - testee = new PolicyStoreService(BPN, defaultAcceptedPoliciesConfig, persistence, clock); + testee = new PolicyStoreService(defaultAcceptedPoliciesConfig, persistence, clock); // act - final var defaultPolicies = testee.getStoredPolicies(); + final var defaultPolicies = testee.getStoredPolicies(List.of(BPN)); // assert assertThat(defaultPolicies).hasSize(1); @@ -175,6 +176,9 @@ private Constraints createConstraints() { @Test void deletePolicy() { + // arrange + when(persistence.readAll()).thenReturn(Map.of(BPN, List.of(new Policy("testId", null, null, null)))); + // act testee.deletePolicy("testId"); @@ -186,35 +190,13 @@ void deletePolicy() { void deletePolicyShouldThrowResponseStatusException() { // act final String policyId = "testId"; + when(persistence.readAll()).thenReturn(Map.of(BPN, List.of(new Policy("testId", null, null, null)))); doThrow(new PolicyStoreException("")).when(persistence).delete(BPN, policyId); // assert assertThrows(ResponseStatusException.class, () -> testee.deletePolicy(policyId)); } - @Test - void updatePolicy() { - // act - final String policyId = "testId"; - final OffsetDateTime validUntil = OffsetDateTime.now(); - testee.updatePolicy(policyId, new UpdatePolicyRequest(validUntil)); - - // assert - verify(persistence).update(BPN, policyId, validUntil); - } - - @Test - void updatePolicyShouldThrowResponseStatusException() { - // act - final String policyId = "testId"; - final OffsetDateTime validUntil = OffsetDateTime.now(); - doThrow(new PolicyStoreException("")).when(persistence).update(BPN, policyId, validUntil); - final UpdatePolicyRequest request = new UpdatePolicyRequest(validUntil); - - // assert - assertThrows(ResponseStatusException.class, () -> testee.updatePolicy(policyId, request)); - } - @Test void whenRegisterPolicyWithMissingPermissionsShouldThrowException() { // arrange @@ -222,7 +204,8 @@ void whenRegisterPolicyWithMissingPermissionsShouldThrowException() { // act // assert - assertThrows(ResponseStatusException.class, () -> testee.registerPolicy(policy)); + assertThrows(ResponseStatusException.class, () -> testee.registerPolicy(policy, + null)); } @Test @@ -237,6 +220,7 @@ void whenRegisterPolicyWithMissingConstraintShouldThrowException() { // act // assert - assertThrows(ResponseStatusException.class, () -> testee.registerPolicy(policy)); + assertThrows(ResponseStatusException.class, () -> testee.registerPolicy(policy, + null)); } } \ No newline at end of file diff --git a/irs-registry-client/src/main/java/org/eclipse/tractusx/irs/registryclient/DefaultConfiguration.java b/irs-registry-client/src/main/java/org/eclipse/tractusx/irs/registryclient/DefaultConfiguration.java index 613c12db3c..0bf5abba69 100644 --- a/irs-registry-client/src/main/java/org/eclipse/tractusx/irs/registryclient/DefaultConfiguration.java +++ b/irs-registry-client/src/main/java/org/eclipse/tractusx/irs/registryclient/DefaultConfiguration.java @@ -118,7 +118,7 @@ public ConnectorEndpointsService connectorEndpointsService(final DiscoveryFinder public EndpointDataForConnectorsService endpointDataForConnectorsService(final EdcSubmodelFacade facade) { return new EndpointDataForConnectorsService((edcConnectorEndpoint, assetType, assetValue) -> { try { - return facade.getEndpointReferenceForAsset(edcConnectorEndpoint, assetType, assetValue); + return facade.getEndpointReferenceForAsset(edcConnectorEndpoint, assetType, assetValue, null); } catch (EdcClientException e) { throw new EdcRetrieverException(e); } diff --git a/irs-registry-client/src/test/java/org/eclipse/tractusx/irs/registryclient/DefaultConfigurationTest.java b/irs-registry-client/src/test/java/org/eclipse/tractusx/irs/registryclient/DefaultConfigurationTest.java index 4a3b67fd5f..38a1e4a1de 100644 --- a/irs-registry-client/src/test/java/org/eclipse/tractusx/irs/registryclient/DefaultConfigurationTest.java +++ b/irs-registry-client/src/test/java/org/eclipse/tractusx/irs/registryclient/DefaultConfigurationTest.java @@ -82,7 +82,7 @@ void endpointDataForConnectorsService() throws EdcClientException { final var mock = mock(EdcSubmodelFacade.class); final var endpointAddress = "endpointaddress"; final var endpointDataReference = EndpointDataReference.Builder.newInstance().endpoint(endpointAddress).build(); - when(mock.getEndpointReferenceForAsset(eq(endpointAddress), any(), any())).thenReturn(endpointDataReference); + when(mock.getEndpointReferenceForAsset(eq(endpointAddress), any(), any(), any())).thenReturn(endpointDataReference); // ACT final var endpointDataForConnectorsService = testee.endpointDataForConnectorsService(mock); @@ -97,13 +97,13 @@ void endpointDataForConnectorsService() throws EdcClientException { }); // ASSERT - verify(mock).getEndpointReferenceForAsset(eq(endpointAddress), any(), any()); + verify(mock).getEndpointReferenceForAsset(eq(endpointAddress), any(), any(), any()); } @Test void endpointDataForConnectorsService_withException() throws EdcClientException { final var mock = mock(EdcSubmodelFacade.class); - when(mock.getEndpointReferenceForAsset(any(), any(), any())).thenThrow(new EdcClientException("test")); + when(mock.getEndpointReferenceForAsset(any(), any(), any(), any())).thenThrow(new EdcClientException("test")); final var endpointDataForConnectorsService = testee.endpointDataForConnectorsService(mock); final var dummyEndpoints = List.of("test"); diff --git a/local/testing/IRS_Request_Collection.json b/local/testing/IRS_Request_Collection.json index 246addc92b..a843c0b0ae 100644 --- a/local/testing/IRS_Request_Collection.json +++ b/local/testing/IRS_Request_Collection.json @@ -1,3793 +1,3700 @@ { - "_type": "export", - "__export_format": 4, - "__export_date": "2024-02-05T09:54:46.629Z", - "__export_source": "insomnia.desktop.app:v8.6.0", - "resources": [ - { - "_id": "req_168bf1cb28a043d18f376c8d93c82d1a", - "parentId": "fld_ce20d8a3c9d441178febcb303a052551", - "modified": 1705006817408, - "created": 1705005887617, - "url": "{{IRS_HOST}}/irs/policies", - "name": "Get all policies", - "description": "", - "method": "GET", - "body": {}, - "parameters": [], - "headers": [], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.ADMIN_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1705005887617, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "fld_ce20d8a3c9d441178febcb303a052551", - "parentId": "fld_7ea21da81d7f43b59b1eadd5558a0d4e", - "modified": 1687243055015, - "created": 1687243055015, - "name": "Policy Store", - "description": "", - "environment": {}, - "environmentPropertyOrder": null, - "metaSortKey": -1687243055015, - "_type": "request_group" - }, - { - "_id": "fld_7ea21da81d7f43b59b1eadd5558a0d4e", - "parentId": "wrk_dbeadb1e56e942299e6c920265e6c667", - "modified": 1691572726194, - "created": 1680682418636, - "name": "IRS DEMO Collection", - "description": "", - "environment": {}, - "environmentPropertyOrder": null, - "metaSortKey": -1680682418636, - "_type": "request_group" - }, - { - "_id": "wrk_dbeadb1e56e942299e6c920265e6c667", - "parentId": null, - "modified": 1706524702729, - "created": 1706524692257, - "name": "IRS", - "description": "", - "scope": "collection", - "_type": "workspace" - }, - { - "_id": "req_d9aec188d27d4e26922788e029f48cb3", - "parentId": "fld_ce20d8a3c9d441178febcb303a052551", - "modified": 1702990529632, - "created": 1687243204155, - "url": "{{IRS_HOST}}/irs/policies/{% prompt 'policyId', '', 'traceability-test', '', false, true %}", - "name": "Delete policy", - "description": "", - "method": "DELETE", - "body": {}, - "parameters": [], - "headers": [], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.ADMIN_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1685602897140.75, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_f23abf2cce914010bc0a1b6cca091ad2", - "parentId": "fld_ce20d8a3c9d441178febcb303a052551", - "modified": 1702990565006, - "created": 1693576003390, - "url": "{{IRS_HOST}}/irs/policies/{% prompt 'id', '', 'traceability-test', '', false, true %}", - "name": "Update policy", - "description": "", - "method": "PUT", - "body": { - "mimeType": "application/json", - "text": "{\n \"validUntil\": \"2025-12-12T23:59:59.999Z\"\n}" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.ADMIN_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1684874704117.875, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_5d5596ef316341198185c3dab431235c", - "parentId": "fld_ce20d8a3c9d441178febcb303a052551", - "modified": 1707126688041, - "created": 1687243182397, - "url": "{{IRS_HOST}}/irs/policies", - "name": "Register policy", - "description": "", - "method": "POST", - "body": { - "mimeType": "application/json", - "text": "{\n\t\"validUntil\": \"2025-12-12T23:59:59.999Z\",\n\t\"payload\": {\n\t\t\"@context\": {\n\t\t\t\"odrl\": \"http://www.w3.org/ns/odrl/2/\"\n\t\t},\n\t\t\"@id\": \"policy-id12\",\n\t\t\"policy\": {\n\t\t\t\"odrl:permission\": [\n\t\t\t\t{\n\t\t\t\t\t\"odrl:action\": \"USE\",\n\t\t\t\t\t\"odrl:constraint\": {\n\t\t\t\t\t\t\"odrl:and\": [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"odrl:leftOperand\": \"Membership\",\n\t\t\t\t\t\t\t\t\"odrl:operator\": {\n\t\t\t\t\t\t\t\t\t\"@id\": \"odrl:eq\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"odrl:rightOperand\": \"active\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"odrl:leftOperand\": \"PURPOSE\",\n\t\t\t\t\t\t\t\t\"odrl:operator\": {\n\t\t\t\t\t\t\t\t\t\"@id\": \"odrl:eq\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"odrl:rightOperand\": \"ID 3.1 Trace\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t}\n}" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.ADMIN_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1683962737633.5, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_0ea20f07e6384c87aec64b664f1f1936", - "parentId": "fld_4990991deee940668b0772802a92dad7", - "modified": 1706003275081, - "created": 1680682418619, - "url": "{{DIGITAL_TWIN_REGISTRY}}/api/v3.0/shell-descriptors/{% prompt 'aasIdentifier', '', _.GLOBAL_ASSET_ID, '', false, true %}", - "name": "Get Shell by aasIdentifier", - "description": "", - "method": "GET", - "body": {}, - "parameters": [], - "headers": [ - { - "id": "pair_7877c58fd3ae46758cabf9f6cb397818", - "name": "Edc-Bpn", - "value": "BPNL00000001CRHK", - "description": "", - "disabled": false - } - ], - "authentication": {}, - "metaSortKey": -1680682418619, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "fld_4990991deee940668b0772802a92dad7", - "parentId": "fld_7ea21da81d7f43b59b1eadd5558a0d4e", - "modified": 1691504187689, - "created": 1680682418630, - "name": "Digital Twin Registry", - "description": "", - "environment": {}, - "environmentPropertyOrder": null, - "metaSortKey": -1680682418630, - "_type": "request_group" - }, - { - "_id": "req_645f097057dd4d0b8a94530853402acc", - "parentId": "fld_4990991deee940668b0772802a92dad7", - "modified": 1706002920212, - "created": 1690529035794, - "url": "{{DIGITAL_TWIN_REGISTRY}}/api/v3.0/shell-descriptors", - "name": "Get Shells", - "description": "", - "method": "GET", - "body": {}, - "parameters": [], - "headers": [ - { - "id": "pair_7877c58fd3ae46758cabf9f6cb397818", - "name": "Edc-Bpn", - "value": "BPNL00000001CRHK", - "description": "", - "disabled": false - } - ], - "authentication": {}, - "metaSortKey": -1680682418614, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_b3e47af3e76746539ca0bf30c60e39ea", - "parentId": "fld_4990991deee940668b0772802a92dad7", - "modified": 1706003278149, - "created": 1680682418609, - "url": "{{DIGITAL_TWIN_REGISTRY}}/api/v3.0/lookup/shells", - "name": "Query Registry By BPN", - "description": "", - "method": "GET", - "body": {}, - "parameters": [ - { - "name": "assetIds", - "value": "[{\"name\": \"manufacturerId\",\"value\":\"BPNL00000003AYRE\"}],", - "disabled": true, - "id": "pair_c8a20aa6fd7647a98da9b91abfe0cfa8" - }, - { - "name": "assetIds", - "value": "[{\"name\": \"manufacturerId\",\"value\":\"BPNL00000003AVTH\"}],", - "disabled": true, - "id": "pair_cc48c08e3b834497a2d88bd4201c3867" - }, - { - "name": "assetIds", - "value": "[{\"name\": \"manufacturerId\",\"value\":\"BPNL00000003AZQP\"}]", - "disabled": false, - "id": "pair_4187c8b0b8894410a17eb0ff2cf1523a" - }, - { - "name": "assetIds", - "value": "[{\"name\": \"manufacturerId\",\"value\":\"BPNL00000003B2OM\"}],", - "disabled": true, - "id": "pair_706e6930cc874343941b744a054ef388" - }, - { - "name": "assetIds", - "value": "[{\"name\": \"manufacturerId\",\"value\":\"BPNL00000003B3NX\"}],", - "disabled": true, - "id": "pair_45c6bcf3266a475891ebbbba6cde0798" - }, - { - "name": "assetIds", - "value": "[{\"name\": \"manufacturerId\",\"value\":\"BPNL00000003B5MJ\"}],", - "disabled": true, - "id": "pair_89445c9795e54bbfa1e26dae0fe4756a" - }, - { - "name": "assetIds", - "value": "[{\"name\": \"manufacturerId\",\"value\":\"BPNL00000003B0Q0\"}],", - "disabled": true, - "id": "pair_d72f55c7bf714c7c9aae58456c778443" - }, - { - "name": "assetIds", - "value": "[{\"name\": \"manufacturerId\",\"value\":\"BPNL00000003AXS3\"}],", - "disabled": true, - "id": "pair_406c9da4dc014fb297f70bb3da7128c1" - } - ], - "headers": [ - { - "id": "pair_72e0b43ab2ba4417bbc72bf08182edd0", - "name": "Edc-Bpn", - "value": "BPNL00000001CRHK", - "description": "" - } - ], - "authentication": {}, - "metaSortKey": -1680682418609, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_d7172466c4bc48e986679e0895b8a2cc", - "parentId": "fld_4990991deee940668b0772802a92dad7", - "modified": 1706003280850, - "created": 1680682418595, - "url": "{{DIGITAL_TWIN_REGISTRY}}/api/v3.0/lookup/shells", - "name": "Query Registry By VAN", - "description": "", - "method": "GET", - "body": {}, - "parameters": [ - { - "name": "assetIds", - "value": "[{\"name\":\"van\",\"value\": \"OMBSWNHVABEWMQTAV\"}]", - "disabled": false, - "id": "pair_50d86e928e9f448d97da8ada0390e12f" - } - ], - "headers": [ - { - "id": "pair_ed11c2a6df9248e292914df944e8ba93", - "name": "Edc-Bpn", - "value": "BPNL00000001CRHK", - "description": "" - } - ], - "authentication": {}, - "metaSortKey": -1680682418595, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_3e07acae12c54acb94dd7aa9a9237b00", - "parentId": "fld_4990991deee940668b0772802a92dad7", - "modified": 1706003354109, - "created": 1680682418581, - "url": "{{DIGITAL_TWIN_REGISTRY}}/api/v3.0/lookup/shells", - "name": "Query Registry By globalAssetId", - "description": "", - "method": "GET", - "body": {}, - "parameters": [ - { - "name": "assetIds", - "value": "[{\"name\":\"globalAssetId\",\"value\":\"{% prompt 'id', '', '', '', false, true %}\"}]", - "disabled": false, - "id": "pair_f5f3d12fb2224c1d9e577c42128aa3d9" - } - ], - "headers": [ - { - "id": "pair_71ae5e562e9c414a82e84220f3c00343", - "name": "Edc-Bpn", - "value": "BPNL00000001CRHK", - "description": "" - } - ], - "authentication": {}, - "metaSortKey": -1680682418581, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_b2e720c47f6145e9915b098cfb162bf4", - "parentId": "fld_4990991deee940668b0772802a92dad7", - "modified": 1706003284715, - "created": 1680682418570, - "url": "{{DIGITAL_TWIN_REGISTRY}}/api/v3.0/lookup/shells/query", - "name": "Query Registry By VAN", - "description": "", - "method": "POST", - "body": { - "mimeType": "", - "text": "{\n \"query\": {\n \"assetIds\": [\n {\n \"value\" : \"OMCOFCRMXMBASAFZY\",\n \"name\" : \"van\"\n },\n {\n \"value\" : \"OMCNAXRMATEMEDENV\",\n \"name\" : \"van\"\n }\n ,\n {\n \"value\" : \"OMCODXGPGLPLKEAIQ\",\n \"name\" : \"van\"\n },\n {\n \"value\" : \"OMBGHXHATHICIEYOU\",\n \"name\" : \"van\"\n },\n {\n \"value\" : \"OMAGCJCBDQGPYRQCS\",\n \"name\" : \"van\"\n },\n {\n \"value\" : \"OMBIBCLBMGCJNUKUW\",\n \"name\" : \"van\"\n },\n {\n \"value\" : \"OMCRHSMILXFLDSPTT\",\n \"name\" : \"van\"\n },\n {\n \"value\" : \"OMCLNVPYKUQCNIBOW\",\n \"name\" : \"van\"\n },\n {\n \"value\" : \"OMCXYXGFMJIBYQLBL\",\n \"name\" : \"van\"\n }\n ]\n }\n}" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json", - "id": "pair_2f4c445074514f92a4dee92554053d0a" - }, - { - "id": "pair_35fe7a71647f4aea91ba03bfc87f0cd0", - "name": "Edc-Bpn", - "value": "BPNL00000001CRHK", - "description": "" - } - ], - "authentication": {}, - "metaSortKey": -1680682418570, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_c25fd37611874fb9b9d614c5119fc9f2", - "parentId": "fld_4990991deee940668b0772802a92dad7", - "modified": 1706003286642, - "created": 1691408320970, - "url": "{{DIGITAL_TWIN_REGISTRY}}/api/v3.0/lookup/shells/query", - "name": "Query Registry By globalAssetId", - "description": "", - "method": "POST", - "body": { - "mimeType": "", - "text": "{\n\t\"query\": {\n\t\t\"assetIds\": [\n\t\t\t{\n\t\t\t\t\"value\": \"urn:uuid:da53d429-5770-410e-a13e-424e77952d8a\",\n\t\t\t\t\"name\": \"globalAssetId\"\n\t\t\t}\n\t\t]\n\t}\n}" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json", - "id": "pair_c1f8de03ff8f4f92aeeeef63510f755e" - }, - { - "id": "pair_5dc1d703196747318faff9a8dd96be0c", - "name": "Edc-Bpn", - "value": "BPNL00000001CRHK", - "description": "" - } - ], - "authentication": {}, - "metaSortKey": -1680682418560.5, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_3250e5def5654142a519de4427107bbd", - "parentId": "fld_4990991deee940668b0772802a92dad7", - "modified": 1706003289343, - "created": 1689167429413, - "url": "{{DIGITAL_TWIN_REGISTRY}}/api/v3.0/shell-descriptors/{% prompt 'id', '', '', '', false, true %}", - "name": "Delete Shell by aasIdentifier", - "description": "", - "method": "DELETE", - "body": {}, - "parameters": [ - { - "id": "pair_6266690c04fd466fa1617082f5b8ec76", - "name": "pageSize", - "value": "50", - "description": "", - "disabled": true - } - ], - "headers": [ - { - "id": "pair_7877c58fd3ae46758cabf9f6cb397818", - "name": "Edc-Bpn", - "value": "BPNL00000001CRHK", - "description": "", - "disabled": false - } - ], - "authentication": {}, - "metaSortKey": -1680682418470, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_e1cec062761b4714b9d79f95bfb4f052", - "parentId": "fld_66bf58dc74c24069a012d954a5fcc046", - "modified": 1702991054859, - "created": 1680682418551, - "url": "{{IRS_HOST}}/irs/jobs", - "name": "1.0.0 [Register Job]", - "description": "", - "method": "POST", - "body": { - "mimeType": "application/json", - "text": "{\n\t\"key\": {\n\t\t\"globalAssetId\": \"{% prompt 'Global Asset ID', 'Please provide \\'Global-Asset-ID\\' or use default', _.GLOBAL_ASSET_ID, '', false, true %}\",\n\t\t\"bpn\": \"{% prompt 'bpn', '', _.BPN, '', false, true %}\"\n\t}\n}" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418551, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "fld_66bf58dc74c24069a012d954a5fcc046", - "parentId": "fld_7ea21da81d7f43b59b1eadd5558a0d4e", - "modified": 1680682418562, - "created": 1680682418562, - "name": "IRS Test Collection", - "description": "", - "environment": {}, - "environmentPropertyOrder": null, - "metaSortKey": -1680682418562, - "_type": "request_group" - }, - { - "_id": "req_4c94d946a6ca458baf3953f64eb3d2f1", - "parentId": "fld_66bf58dc74c24069a012d954a5fcc046", - "modified": 1702991058493, - "created": 1680682418539, - "url": "{{IRS_HOST}}/irs/jobs", - "name": "1.1.0 [Register Job globalAssetId ]", - "description": "", - "method": "POST", - "body": { - "mimeType": "application/json", - "text": "{\n\t\"key\": {\n\t\t\"globalAssetId\": \"urn:uuid:00000000-0000-0000-0000-000000000000\",\n\t\t\"bpn\": \"{% prompt 'bpn', '', _.BPN, '', false, true %}\"\n\t}\n}" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418539, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_eecb959367ec45538fed6c82871dff36", - "parentId": "fld_66bf58dc74c24069a012d954a5fcc046", - "modified": 1702991063641, - "created": 1680682418524, - "url": "{{IRS_HOST}}/irs/jobs", - "name": "1.1.1 [Register Job globalAssetId ]", - "description": "", - "method": "POST", - "body": { - "mimeType": "application/json", - "text": "{\n\t\"key\": {\n\t\t\"globalAssetId\": \"urn:uuid:6c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b\",\n\t\t\"bpn\": \"{% prompt 'bpn', '', _.BPN, '', false, true %}\"\n\t},\n\t\"collectAspects\": true\n}" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418524, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_0cf1f56543b043e0b6c2d60dc1339efb", - "parentId": "fld_66bf58dc74c24069a012d954a5fcc046", - "modified": 1702991067797, - "created": 1680682418514, - "url": "{{IRS_HOST}}/irs/jobs", - "name": "1.2.0 [Register Job with depth and bomLifecycle asBuilt]", - "description": "", - "method": "POST", - "body": { - "mimeType": "application/json", - "text": "{\n\t\"key\": {\n\t\t\"globalAssetId\": \"{% prompt 'Global Asset ID', 'Please provide \\'Global-Asset-ID\\' or use default', _.GLOBAL_ASSET_ID, '', false, true %}\",\n\t\t\"bpn\": \"{% prompt 'bpn', '', _.BPN, '', false, true %}\"\n\t},\n\t\"bomLifecycle\": \"asBuilt\",\n\t\"depth\": 2,\n\t\"collectAspects\": true\n}" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418514, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_0dd4702af7f44308ae5fc38b1247ddb9", - "parentId": "fld_66bf58dc74c24069a012d954a5fcc046", - "modified": 1702991071709, - "created": 1680682418504, - "url": "{{IRS_HOST}}/irs/jobs", - "name": "1.2.1 [Register Job with depth and bomLifecycle asPlanned]", - "description": "", - "method": "POST", - "body": { - "mimeType": "application/json", - "text": "{\n\t\"key\": {\n\t\t\"globalAssetId\": \"{% prompt 'Global Asset ID', 'Please provide \\'Global-Asset-ID\\' or use default', _.GLOBAL_ASSET_ID, '', false, true %}\",\n\t\t\"bpn\": \"{% prompt 'bpn', '', _.BPN, '', false, true %}\"\n\t},\n\t\"bomLifecycle\": \"asPlanned\",\n\t\"depth\": 2\n}" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418504, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_57f0986d2fbd448a8763203a07f4e538", - "parentId": "fld_66bf58dc74c24069a012d954a5fcc046", - "modified": 1702991076696, - "created": 1695042901876, - "url": "{{IRS_HOST}}/irs/jobs", - "name": "1.2.2 [Register Job with depth and bomLifecycle asSpecified]", - "description": "", - "method": "POST", - "body": { - "mimeType": "application/json", - "text": "{\n\t\"key\": {\n\t\t\"globalAssetId\": \"{% prompt 'Global Asset ID', 'Please provide \\'Global-Asset-ID\\' or use default', _.GLOBAL_ASSET_ID, '', false, true %}\",\n\t\t\"bpn\": \"{% prompt 'bpn', '', _.BPN, '', false, true %}\"\n\t},\n\t\"bomLifecycle\": \"asSpecified\",\n\t\"depth\": 2\n}" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418496, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_9eb404e09440411da201197459b718be", - "parentId": "fld_66bf58dc74c24069a012d954a5fcc046", - "modified": 1702991080833, - "created": 1680682418488, - "url": "{{IRS_HOST}}/irs/jobs", - "name": "1.3.0 [Register Job with aspect SerialPart]", - "description": "", - "method": "POST", - "body": { - "mimeType": "application/json", - "text": "{\n\t\"aspects\": [\n\t\t\"SerialPart\"\n\t],\n\t\"key\": {\n\t\t\"globalAssetId\": \"{% prompt 'Global Asset ID', 'Please provide \\'Global-Asset-ID\\' or use default', _.GLOBAL_ASSET_ID, '', false, true %}\",\n\t\t\"bpn\": \"{% prompt 'bpn', '', _.BPN, '', false, true %}\"\n\t},\n\t\"collectAspects\": true\n}" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418488, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_803a18dc7154479f99ca3323bc502004", - "parentId": "fld_66bf58dc74c24069a012d954a5fcc046", - "modified": 1702991084713, - "created": 1680682418479, - "url": "{{IRS_HOST}}/irs/jobs", - "name": "1.3.1 [Register Job with aspect SerialPart and SingleLevelBomAsBuilt]", - "description": "", - "method": "POST", - "body": { - "mimeType": "application/json", - "text": "{\n\t\"aspects\": [\n\t\t\"SerialPart\",\n\t\t\"SingleLevelBomAsBuilt\"\n\t],\n\t\"key\": {\n\t\t\"globalAssetId\": \"{% prompt 'Global Asset ID', 'Please provide \\'Global-Asset-ID\\' or use default', _.GLOBAL_ASSET_ID, '', false, true %}\",\n\t\t\"bpn\": \"{% prompt 'bpn', '', _.BPN, '', false, true %}\"\n\t},\n\t\"collectAspects\": true\n}" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418479, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_f4f50dc45f2d447fb198671a25fa554c", - "parentId": "fld_66bf58dc74c24069a012d954a5fcc046", - "modified": 1702991088495, - "created": 1680682418469, - "url": "{{IRS_HOST}}/irs/jobs", - "name": "1.3.2 [Register Job with aspect MaterialForRecycling and BatteryPass]", - "description": "", - "method": "POST", - "body": { - "mimeType": "application/json", - "text": "{\n\t\"aspects\": [\n\t\t\"BatteryPass\",\n\t\t\"MaterialForRecycling\"\n\t],\n\t\"key\": {\n\t\t\"globalAssetId\": \"{% prompt 'Global Asset ID', 'Please provide \\'Global-Asset-ID\\' or use default', _.GLOBAL_ASSET_ID, '', false, true %}\",\n\t\t\"bpn\": \"{% prompt 'bpn', '', _.BPN, '', false, true %}\"\n\t},\n\t\"collectAspects\": true\n}" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418469, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_adb8c665373d432eb5868cdb54e005ae", - "parentId": "fld_66bf58dc74c24069a012d954a5fcc046", - "modified": 1702991094498, - "created": 1680682418460, - "url": "{{IRS_HOST}}/irs/jobs", - "name": "1.3.3 [Register Job with aspect type Batch and CertificateOfDestruction]", - "description": "", - "method": "POST", - "body": { - "mimeType": "application/json", - "text": "{\n\t\"aspects\": [\n\t\t\"Batch\",\n\t\t\"CertificateOfDestruction\"\n\t],\n\t\"key\": {\n\t\t\"globalAssetId\": \"{% prompt 'Global Asset ID', 'Please provide \\'Global-Asset-ID\\' or use default', _.GLOBAL_ASSET_ID, '', false, true %}\",\n\t\t\"bpn\": \"{% prompt 'bpn', '', _.BPN, '', false, true %}\"\n\t},\n\t\"collectAspects\": true\n}" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418460, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_4d5b921d3b65463c9413a037e19ae4e0", - "parentId": "fld_66bf58dc74c24069a012d954a5fcc046", - "modified": 1702991098918, - "created": 1680682418451, - "url": "{{IRS_HOST}}/irs/jobs", - "name": "1.3.4 [Register Job with aspect SerialPart and AddressAspect]", - "description": "", - "method": "POST", - "body": { - "mimeType": "application/json", - "text": "{\n\t\"aspects\": [\n\t\t\"SerialPart\",\n\t\t\"AddressAspect\"\n\t],\n\t\"key\": {\n\t\t\"globalAssetId\": \"{% prompt 'Global Asset ID', 'Please provide \\'Global-Asset-ID\\' or use default', _.GLOBAL_ASSET_ID, '', false, true %}\",\n\t\t\"bpn\": \"{% prompt 'bpn', '', _.BPN, '', false, true %}\"\n\t},\n\t\"collectAspects\": true\n}" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418451, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_c78f55430e3c4caa9db40afa18e0071e", - "parentId": "fld_66bf58dc74c24069a012d954a5fcc046", - "modified": 1702991103182, - "created": 1680682418442, - "url": "{{IRS_HOST}}/irs/jobs", - "name": "1.3.5 [Register Job with aspect PartAsPlanned]", - "description": "", - "method": "POST", - "body": { - "mimeType": "application/json", - "text": "{\n\t\"aspects\": [\n\t\t\"PartAsPlanned\"\n\t],\n\t\"key\": {\n\t\t\"globalAssetId\": \"{% prompt 'Global Asset ID', 'Please provide \\'Global-Asset-ID\\' or use default', _.GLOBAL_ASSET_ID, '', false, true %}\",\n\t\t\"bpn\": \"{% prompt 'bpn', '', _.BPN, '', false, true %}\"\n\t},\n\t\"bomLifecycle\": \"asPlanned\",\n\t\"collectAspects\": true\n}" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418442, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_cd096c5dd862469ea857cfbaaec565a7", - "parentId": "fld_66bf58dc74c24069a012d954a5fcc046", - "modified": 1702991107672, - "created": 1680682418432, - "url": "{{IRS_HOST}}/irs/jobs", - "name": "1.3.6 [Register Job with upward direction]", - "description": "", - "method": "POST", - "body": { - "mimeType": "application/json", - "text": "{\n\t\"key\": {\n\t\t\"globalAssetId\": \"urn:uuid:3402b29d-07a6-42ad-80ff-272b50fbe24a\",\n\t\t\"bpn\": \"BPNL00000003AZQP\"\n\t},\n\t\"direction\": \"upward\"\n}" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418432, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_75498c5f7f4e49a9aa5eaed3f56efbfe", - "parentId": "fld_66bf58dc74c24069a012d954a5fcc046", - "modified": 1702991113717, - "created": 1695192937155, - "url": "{{IRS_HOST}}/irs/jobs", - "name": "1.3.7 [Register Job with aspect JustInSequencePart]", - "description": "", - "method": "POST", - "body": { - "mimeType": "application/json", - "text": "{\n\t\"aspects\": [\n\t\t\"JustInSequencePart\"\n\t],\n\t\"key\": {\n\t\t\"globalAssetId\": \"{% prompt 'Global Asset ID', 'Please provide \\'Global-Asset-ID\\' or use default', _.GLOBAL_ASSET_ID, '', false, true %}\",\n\t\t\"bpn\": \"{% prompt 'bpn', '', _.BPN, '', false, true %}\"\n\t},\n\t\"collectAspects\": true\n}" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418428, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_2c4bd212e2cc4072a77963d1c15bd3c0", - "parentId": "fld_66bf58dc74c24069a012d954a5fcc046", - "modified": 1702991120609, - "created": 1695192971825, - "url": "{{IRS_HOST}}/irs/jobs", - "name": "1.3.8 [Register Job with aspect TractionBatteryCode]", - "description": "", - "method": "POST", - "body": { - "mimeType": "application/json", - "text": "{\n\t\"aspects\": [\n\t\t\"TractionBatteryCode\"\n\t],\n\t\"key\": {\n\t\t\"globalAssetId\": \"{% prompt 'Global Asset ID', 'Please provide \\'Global-Asset-ID\\' or use default', _.GLOBAL_ASSET_ID, '', false, true %}\",\n\t\t\"bpn\": \"{% prompt 'bpn', '', _.BPN, '', false, true %}\"\n\t},\n\t\"collectAspects\": true\n}" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418426, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_daf9e35ba9f94a4abebba38d62c7ad57", - "parentId": "fld_66bf58dc74c24069a012d954a5fcc046", - "modified": 1702991125292, - "created": 1680682418424, - "url": "{{IRS_HOST}}/irs/jobs", - "name": "1.4.0 [Register Job with invalid or not exisiting aspect type]", - "description": "", - "method": "POST", - "body": { - "mimeType": "application/json", - "text": "{\n\t\"aspects\": [\n\t\t\"PartSerialTypization\"\n\t],\n\t\"key\": {\n\t\t\"globalAssetId\": \"{% prompt 'Global Asset ID', 'Please provide \\'Global-Asset-ID\\' or use default', _.GLOBAL_ASSET_ID, '', false, true %}\",\n\t\t\"bpn\": \"{% prompt 'bpn', '', _.BPN, '', false, true %}\"\n\t},\n\t\"collectAspects\": true\n}" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418424, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_e88261d8f4c3408183d52a94fe0f64aa", - "parentId": "fld_66bf58dc74c24069a012d954a5fcc046", - "modified": 1702991130711, - "created": 1680682418414, - "url": "{{IRS_HOST}}/irs/jobs", - "name": "1.4.1 [Register Job with invalid or not exisiting aspect type]", - "description": "", - "method": "POST", - "body": { - "mimeType": "application/json", - "text": "{\n\t\"aspects\": [\n\t\t\"\"\n\t],\n\t\"key\": {\n\t\t\"globalAssetId\": \"{% prompt 'Global Asset ID', 'Please provide \\'Global-Asset-ID\\' or use default', _.GLOBAL_ASSET_ID, '', false, true %}\",\n\t\t\"bpn\": \"{% prompt 'bpn', '', _.BPN, '', false, true %}\"\n\t},\n\t\"collectAspects\": true\n}" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418414, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_253793b503264ec586dd5a3981902934", - "parentId": "fld_66bf58dc74c24069a012d954a5fcc046", - "modified": 1702991137603, - "created": 1680682418401, - "url": "{{IRS_HOST}}/irs/jobs", - "name": "1.5.0 [Register Job with all aspect type]", - "description": "", - "method": "POST", - "body": { - "mimeType": "application/json", - "text": "{\n\t\"aspects\": [\n\t\t\"SerialPartTypization\",\n\t\t\"AssemblyPartRelationship\",\n\t\t\"Batch\",\n\t\t\"ProductDescription\",\n\t\t\"IdConversion\",\n\t\t\"MarketplaceOffer\",\n\t\t\"MaterialForRecycling\",\n\t\t\"PhysicalDimension\",\n\t\t\"ReturnRequest\",\n\t\t\"CertificateOfDestruction\",\n\t\t\"CertificateOfDismantler\",\n\t\t\"EndOfLife\",\n\t\t\"EsrCertificate\",\n\t\t\"EsrCertificateStateStatistic\",\n\t\t\"ChargingProcess\",\n\t\t\"AddressAspect\",\n\t\t\"ClaimData\",\n\t\t\"BatteryPass\",\n\t\t\"DiagnosticData\",\n\t\t\"MaterialForHomologation\",\n\t\t\"PartAsPlanned\"\n\t],\n\t\"key\": {\n\t\t\"globalAssetId\": \"{% prompt 'Global Asset ID', 'Please provide \\'Global-Asset-ID\\' or use default', _.GLOBAL_ASSET_ID, '', false, true %}\",\n\t\t\"bpn\": \"{% prompt 'bpn', '', _.BPN, '', false, true %}\"\n\t},\n\t\"collectAspects\": true\n}" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418401, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_68fe9a6efec74ee9a167a895c8babb10", - "parentId": "fld_66bf58dc74c24069a012d954a5fcc046", - "modified": 1702991145487, - "created": 1680682418392, - "url": "{{IRS_HOST}}/irs/jobs", - "name": "1.6.0 [Register Job with BPN lookup]", - "description": "", - "method": "POST", - "body": { - "mimeType": "application/json", - "text": "{\n\t\"aspects\": [\n\t\t\"SerialPart\",\n\t\t\"Batch\"\n\t],\n\t\"key\": {\n\t\t\"globalAssetId\": \"{% prompt 'Global Asset ID', 'Please provide \\'Global-Asset-ID\\' or use default', _.GLOBAL_ASSET_ID, '', false, true %}\",\n\t\t\"bpn\": \"{% prompt 'bpn', '', _.BPN, '', false, true %}\"\n\t},\n\t\"lookupBPNs\": false\n}" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418392, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_6aac64b0a99e4ffabeb55f10353c357f", - "parentId": "fld_66bf58dc74c24069a012d954a5fcc046", - "modified": 1702991149742, - "created": 1683184048412, - "url": "{{IRS_HOST}}/irs/jobs", - "name": "1.7.0 [Register Job with invalid policy]", - "description": "", - "method": "POST", - "body": { - "mimeType": "application/json", - "text": "{\n\t\"aspects\": [\n\t\t\"SerialPart\"\n\t],\n\t\"key\": {\n\t\t\"globalAssetId\": \"urn:uuid:da53d429-5770-410e-a13e-424e77952d8a\",\n\t\t\"bpn\": \"{% prompt 'bpn', '', _.BPN, '', false, true %}\"\n\t},\n\t\"collectAspects\": true,\n\t\"lookupBPNs\": false\n}" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418386.5, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_4138d3ef7c2842e2866fb9be242c4735", - "parentId": "fld_66bf58dc74c24069a012d954a5fcc046", - "modified": 1702991154342, - "created": 1693493383337, - "url": "{{IRS_HOST}}/irs/jobs", - "name": "1.8.0 [Register Job with data integrity success]", - "description": "", - "method": "POST", - "body": { - "mimeType": "application/json", - "text": "{\n\t\"aspects\": [\n\t\t\"SerialPart\",\n\t\t\"SingleLevelBomAsBuilt\"\n\t],\n\t\"bomLifecycle\": \"asBuilt\",\n\t\"collectAspects\": true,\n\t\"direction\": \"downward\",\n\t\"depth\": 10,\n \"integrityCheck\": true,\n\t\"key\": {\n\t\t\"globalAssetId\": \"urn:uuid:a1fa0f85-697d-4c9d-982f-2501af8e8636\",\n\t\t\"bpn\": \"BPNL00000003AZQP\"\n\t}\n}" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418382.375, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_9956e174586d4716b2652ed693518241", - "parentId": "fld_66bf58dc74c24069a012d954a5fcc046", - "modified": 1702991159838, - "created": 1693493584873, - "url": "{{IRS_HOST}}/irs/jobs", - "name": "1.8.1 [Register Job with data integrity wrong hash]", - "description": "", - "method": "POST", - "body": { - "mimeType": "application/json", - "text": "{\n\t\"aspects\": [\n\t\t\"SerialPart\"\n\t],\n\t\"bomLifecycle\": \"asBuilt\",\n\t\"collectAspects\": true,\n\t\"direction\": \"downward\",\n\t\"depth\": 10,\n \"integrityCheck\": true,\n\t\"key\": {\n\t\t\"globalAssetId\": \"urn:uuid:05abf6ff-8c78-4b72-948b-40e08e9b83f3\",\n\t\t\"bpn\": \"BPNL00000003AZQP\"\n\t}\n}" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418381.6875, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_8cc9f463cd5e456f8cc922b9cbfbf35c", - "parentId": "fld_66bf58dc74c24069a012d954a5fcc046", - "modified": 1702991164094, - "created": 1693493594373, - "url": "{{IRS_HOST}}/irs/jobs", - "name": "1.8.2 [Register Job with data integrity wrong signature]", - "description": "", - "method": "POST", - "body": { - "mimeType": "application/json", - "text": "{\n\t\"aspects\": [\n\t\t\"SingleLevelBomAsBuilt\"\n\t],\n\t\"bomLifecycle\": \"asBuilt\",\n\t\"collectAspects\": true,\n\t\"direction\": \"downward\",\n\t\"depth\": 10,\n \"integrityCheck\": true,\n\t\"key\": {\n\t\t\"globalAssetId\": \"urn:uuid:17e11d67-0315-4504-82cd-8e70a8c33a6a\",\n\t\t\"bpn\": \"BPNL00000003AZQP\"\n\t}\n}" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418381.3438, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_162de6be38a749f99ad80c9d73a5062e", - "parentId": "fld_66bf58dc74c24069a012d954a5fcc046", - "modified": 1702991168363, - "created": 1693493604521, - "url": "{{IRS_HOST}}/irs/jobs", - "name": "1.8.3 [Register Job with data integrity integrity aspect missing]", - "description": "", - "method": "POST", - "body": { - "mimeType": "application/json", - "text": "{\n\t\"aspects\": [\n\t\t\"SerialPart\",\n\t\t\"SingleLevelBomAsBuilt\"\n\t],\n\t\"bomLifecycle\": \"asBuilt\",\n\t\"collectAspects\": true,\n\t\"direction\": \"downward\",\n\t\"depth\": 10,\n \"integrityCheck\": true,\n\t\"key\": {\n\t\t\"globalAssetId\": \"urn:uuid:5672e8ff-8a73-425e-b2a5-5561b5b21d7a\",\n\t\t\"bpn\": \"BPNL00000003AZQP\"\n\t}\n}" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418381.1719, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_cb39bd2420084559a4b8df34efc0225a", - "parentId": "fld_66bf58dc74c24069a012d954a5fcc046", - "modified": 1702991173689, - "created": 1680682418381, - "url": "{{IRS_HOST}}/irs/jobs", - "name": "2.0.0 [Search for completed Jobs]", - "description": "", - "method": "GET", - "body": {}, - "parameters": [ - { - "name": "jobStates", - "value": "COMPLETED", - "disabled": false - } - ], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418381, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_fa00c41986994e53b60fb66f6a7f9b13", - "parentId": "fld_66bf58dc74c24069a012d954a5fcc046", - "modified": 1702991177973, - "created": 1680682418372, - "url": "{{IRS_HOST}}/irs/jobs", - "name": "2.0.1 [Search for Jobs in error state]", - "description": "", - "method": "GET", - "body": {}, - "parameters": [ - { - "name": "jobStates", - "value": "ERROR", - "disabled": false - } - ], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418372, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_e4960d3aea4a45098a0ad41783ee8b3e", - "parentId": "fld_66bf58dc74c24069a012d954a5fcc046", - "modified": 1702991182139, - "created": 1680682418358, - "url": "{{IRS_HOST}}/irs/jobs", - "name": "2.0.2 [Search for Jobs in initial state]", - "description": "", - "method": "GET", - "body": {}, - "parameters": [ - { - "name": "jobStates", - "value": "INITIAL", - "disabled": false - } - ], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418358, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_fab648d9d45b426886a3f8d5d9e07610", - "parentId": "fld_66bf58dc74c24069a012d954a5fcc046", - "modified": 1702991186114, - "created": 1680682418348, - "url": "{{IRS_HOST}}/irs/jobs", - "name": "2.0.3 [Search for all Jobs in JobStore]", - "description": "", - "method": "GET", - "body": {}, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418348, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_47ad9b23e8f646cfaa67e1c14123ed0b", - "parentId": "fld_66bf58dc74c24069a012d954a5fcc046", - "modified": 1702991190326, - "created": 1680682418339, - "url": "{{IRS_HOST}}/irs/jobs", - "name": "2.1.0 [Search for running Jobs]", - "description": "", - "method": "GET", - "body": {}, - "parameters": [ - { - "name": "jobStates", - "value": "RUNNING", - "disabled": false - } - ], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418339, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_097638186ae0403aa04692c9e282e14f", - "parentId": "fld_66bf58dc74c24069a012d954a5fcc046", - "modified": 1702991196283, - "created": 1680682418325, - "url": "{{IRS_HOST}}/irs/jobs/{% prompt 'Job ID', '', '', '', false, true %}", - "name": "3.0.0 [Search for given jobId with uncomplete]", - "description": "", - "method": "GET", - "body": {}, - "parameters": [ - { - "name": "returnUncompletedJob", - "value": "true", - "disabled": false - } - ], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418325, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_0bb34d3d1ff547d1abe7f50a31b3f225", - "parentId": "fld_66bf58dc74c24069a012d954a5fcc046", - "modified": 1702991200399, - "created": 1680682418316, - "url": "{{IRS_HOST}}/irs/jobs/{% prompt 'Job ID', '', '', '', false, true %}", - "name": "3.1.0 [Search for given jobId]", - "description": "", - "method": "GET", - "body": {}, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418316, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_a94ae8d8ebb94f758ab6196c97e9061c", - "parentId": "fld_66bf58dc74c24069a012d954a5fcc046", - "modified": 1702991205447, - "created": 1680682418307, - "url": "{{IRS_HOST}}/irs/jobs/test", - "name": "3.1.1 [Search for invalid jobId]", - "description": "", - "method": "GET", - "body": {}, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418307, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_1b10ff658962459db2c6c1b704ff68b8", - "parentId": "fld_66bf58dc74c24069a012d954a5fcc046", - "modified": 1702991214202, - "created": 1680682418297, - "url": "{{IRS_HOST}}/irs/jobs/00000000-0000-0000-0000-000000000000", - "name": "3.1.2 [Search for unknown jobId]", - "description": "", - "method": "GET", - "body": {}, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418297, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_fe2049dcfd6b4c06a36069d0bf530e20", - "parentId": "fld_66bf58dc74c24069a012d954a5fcc046", - "modified": 1702991218362, - "created": 1680682418280, - "url": "{{IRS_HOST}}/irs/jobs/{% prompt 'Job ID', '', '', '', false, true %}", - "name": "6.0.0 [Cancel Job for given jobId]", - "description": "", - "method": "PUT", - "body": {}, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418280, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_c1a1e632e4364bf3928104eb2700f8a0", - "parentId": "fld_366bdc4025de4610b245e7bc85b90b58", - "modified": 1705942015684, - "created": 1682672699249, - "url": "{{ _.BPN_DISCOVERY }}/api/administration/connectors/bpnDiscovery/search", - "name": "Find BPN endpoints for manufacturer numbers", - "description": "", - "method": "POST", - "body": { - "mimeType": "application/json", - "text": "{\n \"searchFilter\": [\n {\n \"type\": \"oen\",\n \"keys\": [\n \"oen-1243\",\n \"oen-11\"\n ]\n },\n {\n \"type\": \"bpid\",\n \"keys\": [\n \"bpid-1243\",\n \"bpid-11\"\n ]\n }\n ]\n}" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "oauth2", - "grantType": "client_credentials", - "accessTokenUrl": "{{ _.OAUTH2_TOKEN_URL }}", - "clientId": "{{ _.DISCOVERY_CLIENT_ID }}", - "clientSecret": "{{ _.DISCOVERY_CLIENT_SECRET }}", - "disabled": false - }, - "metaSortKey": -1683630902023, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "fld_366bdc4025de4610b245e7bc85b90b58", - "parentId": "fld_7ea21da81d7f43b59b1eadd5558a0d4e", - "modified": 1683630931664, - "created": 1683630887514, - "name": "Discovery", - "description": "", - "environment": {}, - "environmentPropertyOrder": null, - "metaSortKey": -1680682418417.5, - "_type": "request_group" - }, - { - "_id": "req_75de594fc67c4e0e89af774b81c3f0af", - "parentId": "fld_366bdc4025de4610b245e7bc85b90b58", - "modified": 1705942027574, - "created": 1683031718699, - "url": "{{ _.DISCOVERY_FINDER }}/api/administration/connectors/discovery/search", - "name": "Find BPN Discovery Endpoints of type BPN", - "description": "", - "method": "POST", - "body": { - "mimeType": "", - "text": "{\n \"types\": [\n \"bpn\"\n ]\n}" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "oauth2", - "grantType": "client_credentials", - "accessTokenUrl": "{{ _.OAUTH2_TOKEN_URL }}", - "clientId": "{{ _.DISCOVERY_CLIENT_ID }}", - "clientSecret": "{{ _.DISCOVERY_CLIENT_SECRET }}", - "disabled": false - }, - "metaSortKey": -1683630901923, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_afa03ef38dd34df8ad7febd021e97b2a", - "parentId": "fld_366bdc4025de4610b245e7bc85b90b58", - "modified": 1705942036978, - "created": 1683560906453, - "url": "{{ _.EDC_DISCOVERY }}/api/administration/connectors/discovery", - "name": "Find EDC endpoints for BPNs", - "description": "", - "method": "POST", - "body": { - "mimeType": "application/json", - "text": "[\n\t\"BPNL00000001CRHK\"\n]" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "oauth2", - "grantType": "client_credentials", - "accessTokenUrl": "{{ _.OAUTH2_TOKEN_URL }}", - "clientId": "{{ _.DISCOVERY_CLIENT_ID }}", - "clientSecret": "{{ _.DISCOVERY_CLIENT_SECRET }}", - "disabled": false - }, - "metaSortKey": -1683630901873, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_9d0281b262424f4b8c1ba62e11bb2fa3", - "parentId": "fld_0fe6ae4d2f4e4ce4b370fd2792670219", - "modified": 1705006665175, - "created": 1680682418265, - "url": "{{IRS_HOST}}/irs/jobs", - "name": "Register Job", - "description": "", - "method": "POST", - "body": { - "mimeType": "application/json", - "text": "{\n\t\"aspects\": [\n\t\t\"SingleLevelBomAsBuilt\",\n\t\t\"SerialPart\",\n\t\t\"Batch\"\n\t],\n\t\"bomLifecycle\": \"asBuilt\",\n\t\"collectAspects\": true,\n\t\"lookupBPNs\": true,\n\t\"direction\": \"downward\",\n\t\"depth\": 10,\n\t\"key\": {\n\t\t\"globalAssetId\": \"{% prompt 'Global Asset ID', 'Please provide \\'Global-Asset-ID\\' or use default', _.GLOBAL_ASSET_ID, '', false, true %}\",\n\t\t\"bpn\": \"{% prompt 'Business Partner Number', '', _.BPN, '', false, true %}\"\n\t}\n}" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418265, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "fld_0fe6ae4d2f4e4ce4b370fd2792670219", - "parentId": "fld_7ea21da81d7f43b59b1eadd5558a0d4e", - "modified": 1680682418273, - "created": 1680682418273, - "name": "IRS Basic API Calls", - "description": "", - "environment": {}, - "environmentPropertyOrder": null, - "metaSortKey": -1680682418273, - "_type": "request_group" - }, - { - "_id": "req_54c394982fa249618bb7bb46aea068a7", - "parentId": "fld_0fe6ae4d2f4e4ce4b370fd2792670219", - "modified": 1705942154792, - "created": 1680682418238, - "url": "{{IRS_HOST}}/irs/jobs/{% response 'body', 'req_b02ac0bfc4704c83a5c5f8b24175d61a', 'b64::JC5pZA==::46b', 'never', 60 %} ", - "name": "Get registered Job", - "description": "", - "method": "GET", - "body": {}, - "parameters": [ - { - "name": "returnUncompletedJob", - "value": "true", - "disabled": false - } - ], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418261, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_52cadc4a668a4cd58157a434730da4da", - "parentId": "fld_0fe6ae4d2f4e4ce4b370fd2792670219", - "modified": 1702991288793, - "created": 1680682418257, - "url": "{{IRS_HOST}}/irs/jobs", - "name": "Search for all Jobs in JobStore", - "description": "", - "method": "GET", - "body": {}, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418257, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_2dbc0c6f7cac4e3d990c8f684045d6d2", - "parentId": "fld_0fe6ae4d2f4e4ce4b370fd2792670219", - "modified": 1702991284435, - "created": 1680682418247, - "url": "{{IRS_HOST}}/irs/jobs", - "name": "Search for Jobs for given state", - "description": "", - "method": "GET", - "body": {}, - "parameters": [ - { - "name": "jobStates", - "value": "ERROR", - "disabled": true, - "id": "pair_c694b66f41e649db837f801b5699859e" - }, - { - "name": "jobStates", - "value": "CANCELED,COMPLETED", - "disabled": false, - "id": "pair_ab346623e5394504b7232cc40ae75bed" - }, - { - "id": "pair_ddbccd5219944e8cac3d99249ba881e5", - "name": "jobStates", - "value": "RUNNING", - "description": "", - "disabled": true - } - ], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418247, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_b338f7d3e6ea444ca473353ba38e7bfd", - "parentId": "fld_0fe6ae4d2f4e4ce4b370fd2792670219", - "modified": 1703236659047, - "created": 1690384427379, - "url": "{{IRS_HOST}}/irs/jobs/{% prompt 'Job ID', '', '', '', false, true %}", - "name": "Get Job for jobId", - "description": "", - "method": "GET", - "body": {}, - "parameters": [ - { - "name": "returnUncompletedJob", - "value": "true", - "disabled": false - } - ], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418238, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_b17cbac5c1fb4c039569aaaa7a9a5a4e", - "parentId": "fld_0fe6ae4d2f4e4ce4b370fd2792670219", - "modified": 1702991276045, - "created": 1680682418229, - "url": "{{IRS_HOST}}/irs/jobs/{% prompt 'Job ID', '', '', '', false, true %}", - "name": "Cancel Job for jobId", - "description": "", - "method": "PUT", - "body": {}, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418229, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_f57006fe36314a729d471d4e12f67e7e", - "parentId": "fld_0fe6ae4d2f4e4ce4b370fd2792670219", - "modified": 1702991272198, - "created": 1682498338739, - "url": "{{IRS_HOST}}/irs/aspectmodels", - "name": "Get all available Aspect Models", - "description": "", - "method": "GET", - "body": {}, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418179, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_f95fff1880e54ba898388804f798f85d", - "parentId": "fld_c51adfe29e5e450eb21effa8f3242d1e", - "modified": 1705942066941, - "created": 1680682418213, - "url": "{{ _.SEMANTIC_HUB_URL }}/hub/api/v1/models", - "name": "Get all models", - "description": "", - "method": "GET", - "body": {}, - "parameters": [ - { - "name": "pageSize", - "value": "100", - "disabled": false, - "id": "pair_96567b64925d4487bae4c74bfa9e021e" - }, - { - "id": "pair_2dae68db8a564296a5835e66d951331f", - "name": "status", - "value": "RELEASED", - "description": "" - } - ], - "headers": [], - "authentication": { - "type": "oauth2", - "grantType": "client_credentials", - "accessTokenUrl": "{{ _.OAUTH2_TOKEN_URL }}", - "clientId": "{{ _.SEMANTIC_HUB_CLIENT_ID }}", - "clientSecret": "{{ _.SEMANTIC_HUB_CLIENT_SECRET }}" - }, - "metaSortKey": -1680682418213, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "fld_c51adfe29e5e450eb21effa8f3242d1e", - "parentId": "fld_7ea21da81d7f43b59b1eadd5558a0d4e", - "modified": 1680682418222, - "created": 1680682418222, - "name": "Semantics Hub", - "description": "", - "environment": {}, - "environmentPropertyOrder": null, - "metaSortKey": -1680682418222, - "_type": "request_group" - }, - { - "_id": "req_ee0b0282d68e47e2b950d8722fb09fd2", - "parentId": "fld_c51adfe29e5e450eb21effa8f3242d1e", - "modified": 1705942077015, - "created": 1680682418204, - "url": "{{ _.SEMANTIC_HUB_URL }}/hub/api/v1/models/urn%3Abamm%3Aio.catenax.serial_part_typization%3A1.0.0%23SerialPartTypization", - "name": "Get SerialPartTypization", - "description": "", - "method": "GET", - "body": {}, - "parameters": [], - "headers": [], - "authentication": { - "type": "oauth2", - "grantType": "client_credentials", - "accessTokenUrl": "{{ _.OAUTH2_TOKEN_URL }}", - "clientId": "{{ _.SEMANTIC_HUB_CLIENT_ID }}", - "clientSecret": "{{ _.SEMANTIC_HUB_CLIENT_SECRET }}" - }, - "metaSortKey": -1680682418204, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_5144d157e6b14563ac9da40036794278", - "parentId": "fld_c51adfe29e5e450eb21effa8f3242d1e", - "modified": 1705942085733, - "created": 1680682418192, - "url": "{{ _.SEMANTIC_HUB_URL }}/hub/api/v1/models/urn%3Abamm%3Aio.catenax.serial_part_typization%3A1.0.0%23SerialPartTypization/json-schema", - "name": "Get SerialPartTypization Json Schema", - "description": "", - "method": "GET", - "body": {}, - "parameters": [], - "headers": [], - "authentication": { - "type": "oauth2", - "grantType": "client_credentials", - "accessTokenUrl": "{{ _.OAUTH2_TOKEN_URL }}", - "clientId": "{{ _.SEMANTIC_HUB_CLIENT_ID }}", - "clientSecret": "{{ _.SEMANTIC_HUB_CLIENT_SECRET }}" - }, - "metaSortKey": -1680682418192, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_ae558137943343a6ad929382a8b3a29c", - "parentId": "fld_38ea37e2feb443ecbd02440c7d4dc84c", - "modified": 1705942100313, - "created": 1680682418174, - "url": "{{ _.BPDM_URL }}/v1/api/catena/business-partner/{% prompt 'BPN', '', '', '', false, true %}", - "name": "Get business partner by id", - "description": "", - "method": "GET", - "body": {}, - "parameters": [ - { - "name": "idType", - "value": "BPN", - "disabled": false - } - ], - "headers": [], - "authentication": { - "type": "oauth2", - "grantType": "client_credentials", - "accessTokenUrl": "{{ _.OAUTH2_TOKEN_URL }}", - "clientId": "{{ _.BPDM_CLIENT_ID }}", - "clientSecret": "{{ _.BPDM_CLIENT_SECRET }}" - }, - "metaSortKey": -1680682418174, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "fld_38ea37e2feb443ecbd02440c7d4dc84c", - "parentId": "fld_7ea21da81d7f43b59b1eadd5558a0d4e", - "modified": 1680682418184, - "created": 1680682418184, - "name": "Business partner data management", - "description": "", - "environment": {}, - "environmentPropertyOrder": null, - "metaSortKey": -1680682418184, - "_type": "request_group" - }, - { - "_id": "req_28227bd00d864bc99f67332ec824083f", - "parentId": "fld_7a89506c3c384d70b9beef7abeefbe55", - "modified": 1702991347797, - "created": 1680682418157, - "url": "{{IRS_HOST}}/esr/esr-statistics/{% prompt 'globalAssetId', 'Provide global asset ID or use default', _.GLOBAL_ASSET_ID, '', false, true %}/{% prompt 'BOM Lifecycle', '', '', '', false, true %}/{% prompt 'Certificate', '', '', '', false, true %}/submodel", - "name": "Get Esr Statistics", - "description": "", - "method": "GET", - "body": {}, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418158, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "fld_7a89506c3c384d70b9beef7abeefbe55", - "parentId": "fld_7ea21da81d7f43b59b1eadd5558a0d4e", - "modified": 1680682418167, - "created": 1680682418167, - "name": "ESR Spike", - "description": "", - "environment": {}, - "environmentPropertyOrder": null, - "metaSortKey": -1680682418167, - "_type": "request_group" - }, - { - "_id": "req_31c8cd5dd85f4cdc8c3ae3af01b034a0", - "parentId": "fld_47f7596261a24253b451004cd8ba2140", - "modified": 1702991361578, - "created": 1680682418143, - "url": "{{IRS_HOST}}/ess/bpn/investigations", - "name": "Register Job Investigation", - "description": "", - "method": "POST", - "body": { - "mimeType": "application/json", - "text": "{\n\t\"key\": {\n\t\t\"globalAssetId\": \"urn:uuid:2c57b0e9-a653-411d-bdcd-64787e9fd3a7\",\n\t\t\"bpn\": \"BPNL00000003CRHK\"\n\t},\n\t\"incidentBPNSs\": [\n\t\t\"BPNL00000003B6LU\"\n\t],\n\t\"bomLifecycle\": \"asPlanned\"\n}" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418143, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "fld_47f7596261a24253b451004cd8ba2140", - "parentId": "fld_7ea21da81d7f43b59b1eadd5558a0d4e", - "modified": 1680682418151, - "created": 1680682418151, - "name": "ESS Spike", - "description": "", - "environment": {}, - "environmentPropertyOrder": null, - "metaSortKey": -1680682418151, - "_type": "request_group" - }, - { - "_id": "req_143d26188fd341b0aa13f5c4784106f2", - "parentId": "fld_47f7596261a24253b451004cd8ba2140", - "modified": 1705942138125, - "created": 1680682418134, - "url": "{{IRS_HOST}}/ess/bpn/investigations/{% response 'body', 'req_ec674952c1114bce8fb71ea1ed6d9ef7', 'b64::JC5pZA==::46b', 'never', 60 %}", - "name": "Get registered investigation", - "description": "", - "method": "GET", - "body": {}, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418138.5, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_8a0b5ce9751f470cb590a511ae97fb74", - "parentId": "fld_47f7596261a24253b451004cd8ba2140", - "modified": 1702991370481, - "created": 1680682418134, - "url": "{{IRS_HOST}}/ess/bpn/investigations/{% prompt 'Job ID', '', '', '', false, true %}", - "name": "Search for investigation by jobId", - "description": "", - "method": "GET", - "body": {}, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418134, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_ae50b9e3429249719df0aea840ec9456", - "parentId": "fld_576c196fe0fb4274b90431b1b35ae3a6", - "modified": 1702991381651, - "created": 1680682418118, - "url": "{{IRS_HOST}}/irs/orders", - "name": "Register Batch Order", - "description": "", - "method": "POST", - "body": { - "mimeType": "application/json", - "text": "{\n\t\"aspects\": [\n\t\t\"AssemblyPartRelationship\"\n\t],\n\t\"collectAspects\": true,\n\t\"lookupBPNs\": true,\n\t\"direction\": \"downward\",\n\t\"batchSize\": 10,\n\t\"batchStrategy\": \"PRESERVE_BATCH_JOB_ORDER\",\n\t\"keys\": [\n\t\t{\n\t\t\t\"globalAssetId\": \"urn:uuid:ed333e9a-5afa-40b2-99da-bae2fd211122\",\n\t\t\t\"bpn\": \"BPNL00000003AAXX\"\n\t\t},\n\t\t{\n\t\t\t\"globalAssetId\": \"urn:uuid:771d2ccc-a081-4d3a-bcb2-46c6a0a32211\",\n\t\t\t\"bpn\": \"BPNL00000003AAXX\"\n\t\t}\n\t]\n}" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418118, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "fld_576c196fe0fb4274b90431b1b35ae3a6", - "parentId": "fld_7ea21da81d7f43b59b1eadd5558a0d4e", - "modified": 1680682418128, - "created": 1680682418128, - "name": "Batch Processing", - "description": "", - "environment": {}, - "environmentPropertyOrder": null, - "metaSortKey": -1680682418128, - "_type": "request_group" - }, - { - "_id": "req_76bbe66f75cd4deab0452c7e2b281305", - "parentId": "fld_576c196fe0fb4274b90431b1b35ae3a6", - "modified": 1702991390349, - "created": 1696342619602, - "url": "{{IRS_HOST}}/irs/ess/orders", - "name": "Register ESS Batch Order", - "description": "", - "method": "POST", - "body": { - "mimeType": "application/json", - "text": "{\n\t\"batchSize\": 10,\n\t\"batchStrategy\": \"PRESERVE_BATCH_JOB_ORDER\",\n\t\"incidentBPNSs\": [\"BPNL00000003B6LU\"],\n\t\"keys\": [\n\t\t{\n\t\t\t\"globalAssetId\": \"urn:uuid:ed333e9a-5afa-40b2-99da-bae2fd211122\",\n\t\t\t\"bpn\": \"BPNL00000003AAXX\"\n\t\t},\n\t\t{\n\t\t\t\"globalAssetId\": \"urn:uuid:771d2ccc-a081-4d3a-bcb2-46c6a0a32211\",\n\t\t\t\"bpn\": \"BPNL00000003AAXX\"\n\t\t}\n\t]\n}" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418113.5, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_e5d03176a6f84e7ba6f9e0a293497c0c", - "parentId": "fld_576c196fe0fb4274b90431b1b35ae3a6", - "modified": 1705006936944, - "created": 1705006139836, - "url": "{{IRS_HOST}}/irs/orders/{% prompt 'Order ID', '', '', '', false, true %}", - "name": "Cancel order job for given orderId", - "description": "", - "method": "PUT", - "body": { - "mimeType": "application/json", - "text": "{}" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json", - "id": "pair_88db8badf4ea4a0d9968c769167407c8" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418111.25, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_5f370d022e0b422b967d6c80c8a91e2d", - "parentId": "fld_576c196fe0fb4274b90431b1b35ae3a6", - "modified": 1702991398473, - "created": 1680682418109, - "url": "{{IRS_HOST}}/irs/orders/{% prompt 'Order ID', '', '', '', false, true %}", - "name": "Search for given orderId", - "description": "", - "method": "GET", - "body": {}, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418109, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_cd0d65ae1507433891eb7d2a05d5d366", - "parentId": "fld_576c196fe0fb4274b90431b1b35ae3a6", - "modified": 1702991409664, - "created": 1680682418099, - "url": "{{IRS_HOST}}/irs/orders/{% prompt 'Order ID', '', '', '', false, true %}/batches/{% prompt 'Batch ID', '', '', '', false, true %}", - "name": "Search for given orderId and batchId", - "description": "", - "method": "GET", - "body": {}, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-API-KEY", - "value": "{{ _.REGULAR_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1680682418099, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_5e7e778b5e6543fcb9eea7b99073c93e", - "parentId": "fld_05b3542403444219baacd303af0aee7d", - "modified": 1690472186478, - "created": 1678358655308, - "url": "{{ _.CONSUMER_CONTROLPLANE }}/management/v2/catalog/request", - "name": "Get catalog", - "description": "", - "method": "POST", - "body": { - "mimeType": "application/json", - "text": "{\n\t\"@context\": {\n\t\t\"dct\": \"https://purl.org/dc/terms/\",\n\t\t\"tx\": \"https://w3id.org/tractusx/v0.0.1/ns/\",\n\t\t\"edc\": \"https://w3id.org/edc/v0.0.1/ns/\",\n\t\t\"odrl\": \"http://www.w3.org/ns/odrl/2/\",\n\t\t\"dcat\": \"https://www.w3.org/ns/dcat/\",\n\t\t\"dspace\": \"https://w3id.org/dspace/v0.8/\"\n\t},\n\t\"edc:protocol\": \"dataspace-protocol-http\",\n\t\"edc:providerUrl\": \"{{ _.PROVIDER_CONTROLPLANE_1 }}/api/v1/dsp\"\n}" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-Api-Key", - "value": "{{ _.EDC_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1686195722939.1875, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "fld_05b3542403444219baacd303af0aee7d", - "parentId": "fld_ea70da20cb354243839c8f775fe3bd85", - "modified": 1690362660167, - "created": 1690362660167, - "name": "Catalog", - "description": "", - "environment": {}, - "environmentPropertyOrder": null, - "metaSortKey": -1690362660167, - "_type": "request_group" - }, - { - "_id": "fld_ea70da20cb354243839c8f775fe3bd85", - "parentId": "fld_7ea21da81d7f43b59b1eadd5558a0d4e", - "modified": 1690363778601, - "created": 1675675609576, - "name": "EDC-Requests", - "description": "", - "environment": {}, - "environmentPropertyOrder": null, - "metaSortKey": -1680682418078, - "_type": "request_group" - }, - { - "_id": "req_d662c03a94f446d2afc6d8ada83bfe3e", - "parentId": "fld_05b3542403444219baacd303af0aee7d", - "modified": 1691500654267, - "created": 1685521485278, - "url": "{{ _.CONSUMER_CONTROLPLANE }}/management/v2/catalog/request", - "name": "Get catalog with registry filter", - "description": "", - "method": "POST", - "body": { - "mimeType": "application/json", - "text": "{\n\t\"@context\": {\n\t\t\"dct\": \"https://purl.org/dc/terms/\",\n\t\t\"tx\": \"https://w3id.org/tractusx/v0.0.1/ns/\",\n\t\t\"edc\": \"https://w3id.org/edc/v0.0.1/ns/\",\n\t\t\"odrl\": \"http://www.w3.org/ns/odrl/2/\",\n\t\t\"dcat\": \"https://www.w3.org/ns/dcat/\",\n\t\t\"dspace\": \"https://w3id.org/dspace/v0.8/\"\n\t},\n\t\"edc:providerUrl\": \"{{ _.PROVIDER_CONTROLPLANE_1 }}/api/v1/dsp\",\n\t\"edc:protocol\": \"dataspace-protocol-http\",\n\t\"edc:querySpec\": {\n\t\t\"edc:filterExpression\": {\n\t\t\t\"edc:operandLeft\": \"https://w3id.org/edc/v0.0.1/ns/type\",\n\t\t\t\"edc:operator\": \"=\",\n\t\t\t\"edc:operandRight\": \"data.core.digitalTwinRegistry\"\n\t\t}\n\t}\n}" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-Api-Key", - "value": "{{ _.EDC_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1686195722889.1875, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_c32a0a83b43d494e9cbffdfe035badec", - "parentId": "fld_05b3542403444219baacd303af0aee7d", - "modified": 1705940987109, - "created": 1691654388376, - "url": "{{ _.CONSUMER_CONTROLPLANE }}/management/v2/catalog/request", - "name": "Get catalog with asset filter", - "description": "", - "method": "POST", - "body": { - "mimeType": "application/json", - "text": "{\n\t\"@context\": {\n\t\t\"dct\": \"https://purl.org/dc/terms/\",\n\t\t\"tx\": \"https://w3id.org/tractusx/v0.0.1/ns/\",\n\t\t\"edc\": \"https://w3id.org/edc/v0.0.1/ns/\",\n\t\t\"odrl\": \"http://www.w3.org/ns/odrl/2/\",\n\t\t\"dcat\": \"https://www.w3.org/ns/dcat/\",\n\t\t\"dspace\": \"https://w3id.org/dspace/v0.8/\"\n\t},\n\t\"edc:providerUrl\": \"{{ _.PROVIDER_CONTROLPLANE_1 }}/api/v1/dsp\",\n\t\"edc:protocol\": \"dataspace-protocol-http\",\n\t\"edc:querySpec\": {\n\t\t\"edc:filterExpression\": {\n\t\t\t\"edc:operandLeft\": \"https://w3id.org/edc/v0.0.1/ns/id\",\n\t\t\t\"edc:operator\": \"=\",\n\t\t\t\"edc:operandRight\": \"{% prompt 'assetId', '', '', '', false, true %}\"\n\t\t}\n\t}\n}" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-Api-Key", - "value": "{{ _.EDC_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1686195722789.1875, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_f745598008ad40808cce24fa009d9c4d", - "parentId": "fld_d6f7d906c7fd4203b8c75da059900aa9", - "modified": 1691578280640, - "created": 1675675609557, - "url": "{{ _.CONSUMER_CONTROLPLANE }}/management/v2/contractnegotiations", - "name": "Start contract negotiation", - "description": "", - "method": "POST", - "body": { - "mimeType": "application/json", - "text": "{\n\t\"edc:connectorAddress\": \"{{ _.PROVIDER_CONTROLPLANE_1 }}/api/v1/dsp\",\n\t\"edc:connectorId\": \"BPNL00000001CRHK\",\n\t\"edc:offer\": {\n\t\t\"@type\": \"edc:ContractOfferDescription\",\n\t\t\"edc:offerId\": \"ZGR0ci1jeG1lbWJlcnMtY29udHJhY3Q=:ZGlnaXRhbC10d2luLXJlZ2lzdHJ5:OGQ0ZTNkODYtOTIxOC00MjljLWI1N2EtNWZlZTZkODIzMmEx\",\n\t\t\"edc:assetId\": \"digital-twin-registry\",\n\t\t\"edc:policy\": {\n\t\t\t\"@type\": \"odrl:Set\",\n\t\t\t\"odrl:permission\": {\n\t\t\t\t\"odrl:target\": \"digital-twin-registry\",\n\t\t\t\t\"odrl:action\": {\n\t\t\t\t\t\"odrl:type\": \"USE\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"odrl:prohibition\": [],\n\t\t\t\"odrl:obligation\": [],\n\t\t\t\"odrl:target\": \"digital-twin-registry\"\n\t\t}\n\t},\n\t\"edc:protocol\": \"dataspace-protocol-http\",\n\t\"edc:callbackAddresses\": [],\n\t\"@context\": {\n\t\t\"dct\": \"https://purl.org/dc/terms/\",\n\t\t\"tx\": \"https://w3id.org/tractusx/v0.0.1/ns/\",\n\t\t\"edc\": \"https://w3id.org/edc/v0.0.1/ns/\",\n\t\t\"odrl\": \"http://www.w3.org/ns/odrl/2/\",\n\t\t\"dcat\": \"https://www.w3.org/ns/dcat/\",\n\t\t\"dspace\": \"https://w3id.org/dspace/v0.8/\"\n\t}\n}" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-Api-Key", - "value": "{{ _.EDC_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1684146511095, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "fld_d6f7d906c7fd4203b8c75da059900aa9", - "parentId": "fld_ea70da20cb354243839c8f775fe3bd85", - "modified": 1684146626847, - "created": 1684146519491, - "name": "Negotiation", - "description": "", - "environment": {}, - "environmentPropertyOrder": null, - "metaSortKey": -1679911060327.75, - "_type": "request_group" - }, - { - "_id": "req_3f181fd162664bb89604fd311628d84e", - "parentId": "fld_d6f7d906c7fd4203b8c75da059900aa9", - "modified": 1690362123962, - "created": 1675675609549, - "url": "{{ _.CONSUMER_CONTROLPLANE }}/management/v2/contractnegotiations/{% prompt 'id', '', '', '', false, true %}", - "name": "Get contract negotiation", - "description": "", - "method": "GET", - "body": {}, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-Api-Key", - "value": "{{ _.EDC_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1684146511045, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_41e49b80380f401ca7ba1c3079e36acf", - "parentId": "fld_d6f7d906c7fd4203b8c75da059900aa9", - "modified": 1690362117725, - "created": 1685444139708, - "url": "{{ _.CONSUMER_CONTROLPLANE }}/management/v2/contractnegotiations/{% prompt 'id', '', '', '', false, true %}/cancel", - "name": "Cancel contract negotation", - "description": "", - "method": "POST", - "body": {}, - "parameters": [], - "headers": [], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-Api-Key", - "value": "{{ _.EDC_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1684146511020, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_dd017a01aaef4e6aa43a006a7116cbd2", - "parentId": "fld_d6f7d906c7fd4203b8c75da059900aa9", - "modified": 1690361721223, - "created": 1681911985730, - "url": "{{ _.CONSUMER_CONTROLPLANE }}/management/v2/contractnegotiations/request", - "name": "Get contract negotiations", - "description": "", - "method": "POST", - "body": { - "mimeType": "application/json", - "text": "" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-Api-Key", - "value": "{{ _.EDC_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1684146510995, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_8315d1cf3016462ebaf36b221ff121b7", - "parentId": "fld_d6f7d906c7fd4203b8c75da059900aa9", - "modified": 1691578311420, - "created": 1675675609541, - "url": "{{ _.CONSUMER_CONTROLPLANE }}/management/v2/transferprocesses", - "name": "Start transferprocess", - "description": "", - "method": "POST", - "body": { - "mimeType": "application/json", - "text": "{\n\t\"edc:assetId\": \"digital-twin-registry\",\n\t\"edc:connectorAddress\": \"{{ _.PROVIDER_CONTROLPLANE_1 }}/api/v1/dsp\",\n\t\"edc:contractId\": \"ZGR0ci1jeG1lbWJlcnMtY29udHJhY3Q=:ZGlnaXRhbC10d2luLXJlZ2lzdHJ5:NGNlMDk0ODgtOTMzYy00ZDk3LThiNTAtNDMyZWRjMzIwM2Fm\",\n\t\"edc:dataDestination\": {\n\t\t\"edc:type\": \"HttpProxy\"\n\t},\n\t\"edc:protocol\": \"dataspace-protocol-http\",\n\t\"edc:managedResources\": false,\n\t\"edc:connectorId\": \"BPNL00000001CRHK\",\n\t\"@context\": {\n\t\t\"dct\": \"https://purl.org/dc/terms/\",\n\t\t\"tx\": \"https://w3id.org/tractusx/v0.0.1/ns/\",\n\t\t\"edc\": \"https://w3id.org/edc/v0.0.1/ns/\",\n\t\t\"odrl\": \"http://www.w3.org/ns/odrl/2/\",\n\t\t\"dcat\": \"https://www.w3.org/ns/dcat/\",\n\t\t\"dspace\": \"https://w3id.org/dspace/v0.8/\"\n\t}\n}" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-Api-Key", - "value": "{{ _.EDC_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1684146510945, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_475b5dc25a0349a0bdaf1388767009d3", - "parentId": "fld_d6f7d906c7fd4203b8c75da059900aa9", - "modified": 1691503370103, - "created": 1679993996270, - "url": "{{ _.CONSUMER_CONTROLPLANE }}/management/v2/transferprocesses/{% prompt 'id', '', '', '', false, true %}", - "name": "Get transferprocess by id", - "description": "", - "method": "GET", - "body": {}, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-Api-Key", - "value": "{{ _.EDC_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1684146510895, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_b7d4d2ae87f848d18e09fa9066a64def", - "parentId": "fld_d6f7d906c7fd4203b8c75da059900aa9", - "modified": 1690361795179, - "created": 1675675609525, - "url": "{{ _.CONSUMER_CONTROLPLANE }}/management/v2/transferprocesses/request", - "name": "Get transferprocesses", - "description": "", - "method": "POST", - "body": { - "mimeType": "application/json", - "text": "" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-Api-Key", - "value": "{{ _.EDC_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1684146510845, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_07bb49740fd6490d960262fe773ca273", - "parentId": "fld_d6f7d906c7fd4203b8c75da059900aa9", - "modified": 1690361763512, - "created": 1681910653593, - "url": "{{CONSUMER_CONTROLPLANE}}/management/v2/contractagreements/request", - "name": "Get contract agreements", - "description": "", - "method": "POST", - "body": { - "mimeType": "application/json", - "text": "" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-Api-Key", - "value": "{{ _.EDC_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1684146510795, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_9c20ac607a1f4dd2ac6fa7d44464ee39", - "parentId": "fld_cdf7808307974213bddcaa8c454ebfa4", - "modified": 1690362947546, - "created": 1681907482278, - "url": "{{ _.PROVIDER_CONTROLPLANE_1 }}/management/v2/assets", - "name": "Create Asset", - "description": "", - "method": "POST", - "body": { - "mimeType": "application/json", - "text": "{\n\t\"@context\": {},\n\t\"asset\": {\n\t\t\"@id\": \"asset-id\",\n\t\t\"properties\": {\n\t\t\t\"description\": \"IRS EDC Demo Asset\"\n\t\t}\n\t},\n\t\"dataAddress\": {\n\t\t\"@type\": \"DataAddress\",\n\t\t\"type\": \"HttpData\",\n\t\t\"baseUrl\": \"http://backend-url/data/asset-id\",\n\t\t\"contentType\": \"application-json\",\n\t\t\"proxyPath\": \"false\",\n\t\t\"proxyBody\": \"false\",\n\t\t\"proxyMethod\": \"false\",\n\t\t\"proxyQueryParams\": \"false\"\n\t}\n}" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-Api-Key", - "value": "{{ _.EDC_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1679911033461.75, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "fld_cdf7808307974213bddcaa8c454ebfa4", - "parentId": "fld_ea70da20cb354243839c8f775fe3bd85", - "modified": 1705940929752, - "created": 1684146457388, - "name": "Provider", - "description": "", - "environment": {}, - "environmentPropertyOrder": null, - "metaSortKey": -1678852197613.5625, - "_type": "request_group" - }, - { - "_id": "req_491fb44312cc49138ce948dffd4342d5", - "parentId": "fld_cdf7808307974213bddcaa8c454ebfa4", - "modified": 1690362407763, - "created": 1685444139630, - "url": "{{ _.PROVIDER_CONTROLPLANE_1 }}/management/v2/assets/{% prompt 'id', '', '', '', false, true %}", - "name": "Get Asset by ID", - "description": "", - "method": "GET", - "body": {}, - "parameters": [], - "headers": [], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-Api-Key", - "value": "{{ _.EDC_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1679911033452.375, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_244dee9fd5a64fafa2f5ac5bdaa6994d", - "parentId": "fld_cdf7808307974213bddcaa8c454ebfa4", - "modified": 1690362438115, - "created": 1685444139625, - "url": "{{ _.PROVIDER_CONTROLPLANE_1 }}/management/v2/assets/request", - "name": "Get all Assets", - "description": "", - "method": "POST", - "body": { - "mimeType": "application/json", - "text": "" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-Api-Key", - "value": "{{ _.EDC_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1679911033447.6875, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_27e29ff2819d489ea9248fab518be562", - "parentId": "fld_cdf7808307974213bddcaa8c454ebfa4", - "modified": 1690362400081, - "created": 1685444139636, - "url": "{{ _.PROVIDER_CONTROLPLANE_1 }}/management/v2/assets/{% prompt 'id', '', '', '', false, true %}", - "name": "Delete Asset", - "description": "", - "method": "DELETE", - "body": {}, - "parameters": [], - "headers": [], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-Api-Key", - "value": "{{ _.EDC_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1679911033433.625, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_605ebafb36034d11b783f2c20fe0e764", - "parentId": "fld_cdf7808307974213bddcaa8c454ebfa4", - "modified": 1690362581978, - "created": 1685444139641, - "url": "{{ _.PROVIDER_CONTROLPLANE_1 }}/management/v2/policydefinitions", - "name": "Create Policy", - "description": "", - "method": "POST", - "body": { - "mimeType": "application/json", - "text": "{\n\t\"@context\": {\n\t\t\"odrl\": \"http://www.w3.org/ns/odrl/2/\"\n\t},\n\t\"@id\": \"policy-id\",\n\t\"policy\": {\n\t\t\"odrl:permission\": [\n\t\t\t{\n\t\t\t\t\"odrl:action\": \"USE\",\n\t\t\t\t\"odrl:constraint\": {\n\t\t\t\t\t\"odrl:and\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"odrl:leftOperand\": \"Membership\",\n\t\t\t\t\t\t\t\"odrl:operator\": {\n\t\t\t\t\t\t\t\t\"@id\": \"odrl:eq\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"odrl:rightOperand\": \"active\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"odrl:leftOperand\": \"PURPOSE\",\n\t\t\t\t\t\t\t\"odrl:operator\": {\n\t\t\t\t\t\t\t\t\"@id\": \"odrl:eq\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"odrl:rightOperand\": \"ID 3.1 Trace\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t}\n\t\t]\n\t}\n}" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-Api-Key", - "value": "{{ _.EDC_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1679911033403.9375, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_3d746a9c3a52496499bf5bfac31acbad", - "parentId": "fld_cdf7808307974213bddcaa8c454ebfa4", - "modified": 1690362549290, - "created": 1685444139647, - "url": "{{ _.PROVIDER_CONTROLPLANE_1 }}/management/v2/policydefinitions/{% prompt 'id', '', '', '', false, true %}", - "name": "Get Policy by ID", - "description": "", - "method": "GET", - "body": {}, - "parameters": [], - "headers": [], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-Api-Key", - "value": "{{ _.EDC_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1679911033364.0938, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_15a39c3c4029494ca53867d6a3c28a33", - "parentId": "fld_cdf7808307974213bddcaa8c454ebfa4", - "modified": 1690362591799, - "created": 1685444139653, - "url": "{{ _.PROVIDER_CONTROLPLANE_1 }}/management/v2/policydefinitions/request", - "name": "Get all Policies", - "description": "", - "method": "POST", - "body": { - "mimeType": "application/json", - "text": "" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-Api-Key", - "value": "{{ _.EDC_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1679911033344.1719, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_487d7bd02af746db8c6cda9d0f4d662a", - "parentId": "fld_cdf7808307974213bddcaa8c454ebfa4", - "modified": 1690362559324, - "created": 1685444139659, - "url": "{{ _.PROVIDER_CONTROLPLANE_1 }}/management/v2/policydefinitions/{% prompt 'id', '', '', '', false, true %}", - "name": "Delte Policy by ID", - "description": "", - "method": "DELETE", - "body": {}, - "parameters": [], - "headers": [], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-Api-Key", - "value": "{{ _.EDC_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1679911033299.25, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_324212ad1f21447880f16ad152d861ab", - "parentId": "fld_cdf7808307974213bddcaa8c454ebfa4", - "modified": 1690363080444, - "created": 1685444139665, - "url": "{{ _.PROVIDER_CONTROLPLANE_1 }}/management/v2/contractdefinitions", - "name": "Create Contract Definitinion", - "description": "", - "method": "POST", - "body": { - "mimeType": "application/json", - "text": "{\n \"@context\": {\n \"edc\": \"https://w3id.org/edc/v0.0.1/ns/\"\n },\n \"@type\": \"ContractDefinition\",\n \"accessPolicyId\": \"policy-id\",\n \"contractPolicyId\": \"policy-id\",\n \"assetsSelector\": {\n \"operandLeft\": \"https://w3id.org/edc/v0.0.1/ns/id\",\n \"operator\": \"=\",\n \"operandRight\": \"asset-id\"\n }\n}" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-Api-Key", - "value": "{{ _.EDC_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1679911033261.75, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_d90aecacb8e446c795a6b0fc8e007e90", - "parentId": "fld_cdf7808307974213bddcaa8c454ebfa4", - "modified": 1690362691392, - "created": 1685444139672, - "url": "{{ _.PROVIDER_CONTROLPLANE_1 }}/management/v2/contractdefinitions/{% prompt 'id', '', '', '', false, true %}", - "name": "Get Contract Definition by ID", - "description": "", - "method": "GET", - "body": {}, - "parameters": [], - "headers": [], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-Api-Key", - "value": "{{ _.EDC_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1679911033199.25, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_d0cc3341bce24e3aa7459b319755e918", - "parentId": "fld_cdf7808307974213bddcaa8c454ebfa4", - "modified": 1690363126919, - "created": 1685444139678, - "url": "{{ _.PROVIDER_CONTROLPLANE_1 }}/management/v2/contractdefinitions/request", - "name": "Get all Contract Definitinions", - "description": "", - "method": "POST", - "body": { - "mimeType": "application/json", - "text": "" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-Api-Key", - "value": "{{ _.EDC_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1679911033174.25, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "req_13b593535b3e46f2904fd938a830bd66", - "parentId": "fld_cdf7808307974213bddcaa8c454ebfa4", - "modified": 1690363136216, - "created": 1685444139684, - "url": "{{ _.PROVIDER_CONTROLPLANE_1 }}/management/v2/contractdefinitions/{% prompt 'id', '', '', '', false, true %}", - "name": "Delte Contract Definition", - "description": "", - "method": "DELETE", - "body": { - "mimeType": "application/json", - "text": "" - }, - "parameters": [], - "headers": [ - { - "name": "Content-Type", - "value": "application/json" - } - ], - "authentication": { - "type": "apikey", - "disabled": false, - "key": "X-Api-Key", - "value": "{{ _.EDC_API_KEY }}", - "addTo": "header" - }, - "metaSortKey": -1679911033149.25, - "isPrivate": false, - "pathParameters": [], - "settingStoreCookies": true, - "settingSendCookies": true, - "settingDisableRenderRequestBody": false, - "settingEncodeUrl": true, - "settingRebuildPath": true, - "settingFollowRedirects": "global", - "_type": "request" - }, - { - "_id": "env_0bce3b8371da4128ab2299d44b2e5324", - "parentId": "wrk_dbeadb1e56e942299e6c920265e6c667", - "modified": 1683638503332, - "created": 1680782486844, - "name": "Base Environment", - "data": {}, - "dataPropertyOrder": {}, - "color": null, - "isPrivate": false, - "metaSortKey": 1680782486844, - "_type": "environment" - }, - { - "_id": "jar_dbc637bc345d403a8f7dd19f333a3bde", - "parentId": "wrk_dbeadb1e56e942299e6c920265e6c667", - "modified": 1705938127468, - "created": 1680782486851, - "name": "Default Jar", - "cookies": [ - { - "key": "KC_RESTART", - "expires": "1970-01-01T00:00:10.000Z", - "maxAge": 0, - "domain": "centralidp.int.demo.catena-x.net", - "path": "/auth/realms/CX-Central/", - "httpOnly": true, - "extensions": [ - "Version=1" - ], - "hostOnly": true, - "creation": "2023-04-06T13:30:18.499Z", - "lastAccessed": "2024-01-22T15:42:07.467Z", - "id": "352618e3-4618-4778-9693-f76be3b538d4" - }, - { - "key": "KC_RESTART", - "expires": "1970-01-01T00:00:10.000Z", - "maxAge": 0, - "domain": "centralidp.beta.demo.catena-x.net", - "path": "/auth/realms/CX-Central/", - "httpOnly": true, - "extensions": [ - "Version=1" - ], - "hostOnly": true, - "creation": "2023-04-28T12:09:23.681Z", - "lastAccessed": "2023-05-02T09:14:02.169Z", - "id": "44bc1771-1687-42bb-beb0-9d9474131a95" - }, - { - "key": "rack.session", - "value": "5579bbaf14b5ac5c004f6806ca10d35363aca208e5d17e4b6b07da103e23f219", - "domain": "daps1.int.demo.catena-x.net", - "path": "/", - "secure": true, - "httpOnly": true, - "hostOnly": true, - "creation": "2023-06-14T15:30:53.779Z", - "lastAccessed": "2023-06-14T15:30:53.779Z", - "id": "59744b74-474c-47c6-8765-cf287a936c5e" - }, - { - "key": "rack.session", - "value": "26cd0504acae7aa1a40aff58b15b72989eba6ff7efb7890d035d97d7d96129e8", - "domain": "daps-irs.dev.demo.catena-x.net", - "path": "/", - "secure": true, - "httpOnly": true, - "hostOnly": true, - "creation": "2023-06-26T13:21:41.705Z", - "lastAccessed": "2023-06-26T13:21:41.705Z", - "id": "76f1eca0-1990-491d-8e48-55862a864050" - }, - { - "key": "KC_RESTART", - "expires": "1970-01-01T00:00:10.000Z", - "maxAge": 0, - "domain": "localhost", - "path": "/realms/miw_test/", - "httpOnly": true, - "extensions": [ - "Version=1" - ], - "hostOnly": true, - "creation": "2023-06-29T14:17:50.058Z", - "lastAccessed": "2023-06-29T14:38:54.694Z", - "id": "1f19c6ad-ee86-410b-baa9-40d9d2a2664b" - }, - { - "key": "JSESSIONID", - "value": "AA8B41248817CEF92F54E92816BA4E0C", - "domain": "managed-identity-wallets-new.int.demo.catena-x.net", - "path": "/", - "secure": true, - "httpOnly": true, - "hostOnly": true, - "creation": "2023-07-03T14:36:17.598Z", - "lastAccessed": "2023-07-03T14:39:34.758Z", - "id": "d4252d5d-5ba0-4841-a995-0405d9106af4" - }, - { - "key": "KC_RESTART", - "expires": "1970-01-01T00:00:10.000Z", - "maxAge": 0, - "domain": "centralidp-pen.dev.demo.catena-x.net", - "path": "/auth/realms/CX-Central/", - "httpOnly": true, - "extensions": [ - "Version=1" - ], - "hostOnly": true, - "creation": "2023-07-11T15:11:58.167Z", - "lastAccessed": "2023-11-13T09:10:13.699Z", - "id": "d1322e15-2207-4bda-a8ae-6f98e5b92d48" - }, - { - "key": "AWSALB", - "value": "XBr2pDKiJ9eB9tgdQ1S7WNGW6LVV4e4wBnXgbPFZ7pDre9G+02ZrS8VGFUYjlmLgaW909IJIXDy+o9jIE5Q4vphrsvI3ezlFhYjmbXJp9jz5APwKavVG3/gt2YZw", - "expires": "2023-08-15T14:12:54.000Z", - "domain": "connector.cx-rel.edc.aws.bmw.cloud", - "path": "/", - "hostOnly": true, - "creation": "2023-08-07T10:43:07.218Z", - "lastAccessed": "2023-08-08T14:12:54.582Z", - "id": "c6451ae9-9bd5-4e83-b39c-d92af9e9c1a5" - }, - { - "key": "AWSALBCORS", - "value": "XBr2pDKiJ9eB9tgdQ1S7WNGW6LVV4e4wBnXgbPFZ7pDre9G+02ZrS8VGFUYjlmLgaW909IJIXDy+o9jIE5Q4vphrsvI3ezlFhYjmbXJp9jz5APwKavVG3/gt2YZw", - "expires": "2023-08-15T14:12:54.000Z", - "domain": "connector.cx-rel.edc.aws.bmw.cloud", - "path": "/", - "secure": true, - "extensions": [ - "SameSite=None" - ], - "hostOnly": true, - "creation": "2023-08-07T10:43:07.218Z", - "lastAccessed": "2023-08-08T14:12:54.582Z", - "id": "eace0316-1260-4915-953a-e1c27f76df22" - } - ], - "_type": "cookie_jar" - } - ] + "_type": "export", + "__export_format": 4, + "__export_date": "2024-03-05T14:13:05.950Z", + "__export_source": "insomnia.desktop.app:v8.6.1", + "resources": [ + { + "_id": "req_c043cbe1fe1743a9bd7d0b90933429ca", + "parentId": "fld_67f17d3922fd4eaabedd123cb54e0822", + "modified": 1705006817408, + "created": 1705005887617, + "url": "{{IRS_HOST}}/irs/policies", + "name": "Get all policies", + "description": "", + "method": "GET", + "body": {}, + "parameters": [], + "headers": [], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.ADMIN_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1705005887617, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "fld_67f17d3922fd4eaabedd123cb54e0822", + "parentId": "fld_91ef19bcb20042be976aaf29a6e80517", + "modified": 1687243055015, + "created": 1687243055015, + "name": "Policy Store", + "description": "", + "environment": {}, + "environmentPropertyOrder": null, + "metaSortKey": -1687243055015, + "_type": "request_group" + }, + { + "_id": "fld_91ef19bcb20042be976aaf29a6e80517", + "parentId": "wrk_ca9b08d813264d90b6386f58ed14c80e", + "modified": 1691572726194, + "created": 1680682418636, + "name": "IRS DEMO Collection", + "description": "", + "environment": {}, + "environmentPropertyOrder": null, + "metaSortKey": -1680682418636, + "_type": "request_group" + }, + { + "_id": "wrk_ca9b08d813264d90b6386f58ed14c80e", + "parentId": null, + "modified": 1709646966614, + "created": 1709646966614, + "name": "IRS3 - to change", + "description": "", + "scope": "collection", + "_type": "workspace" + }, + { + "_id": "req_0c8e3b75f01543cc8462ef641bc1a255", + "parentId": "fld_67f17d3922fd4eaabedd123cb54e0822", + "modified": 1709647843974, + "created": 1709647106788, + "url": "{{IRS_HOST}}/irs/policies/{% prompt 'bpns', '', 'BPNL00000001CRHK', '', false, true %}", + "name": "Get policy", + "description": "", + "method": "GET", + "body": {}, + "parameters": [], + "headers": [], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.ADMIN_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1696124472132.5, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_888a1bd5c172449a967bf4f56ee7586e", + "parentId": "fld_67f17d3922fd4eaabedd123cb54e0822", + "modified": 1702990529632, + "created": 1687243204155, + "url": "{{IRS_HOST}}/irs/policies/{% prompt 'policyId', '', 'traceability-test', '', false, true %}", + "name": "Delete policy", + "description": "", + "method": "DELETE", + "body": {}, + "parameters": [], + "headers": [], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.ADMIN_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1685602897140.75, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_4337f826abd94af8956e82cf6ce72607", + "parentId": "fld_67f17d3922fd4eaabedd123cb54e0822", + "modified": 1709647896380, + "created": 1693576003390, + "url": "{{IRS_HOST}}/irs/policies/{% prompt 'id', '', 'traceability-test', '', false, true %}", + "name": "Update policy", + "description": "", + "method": "PUT", + "body": { + "mimeType": "application/json", + "text": "{\n \"validUntil\": \"2025-12-12T23:59:59.999Z\",\n\t\"businessPartnerNumbers\": [\n\t\t\"BPNL00000001CRHK\"\n\t],\n\t\"policiesIds\": [\n\t\t\"policyId\"\n\t]\n}" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.ADMIN_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1684874704117.875, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_4b5c4e0d116047c1a78a8d5262b69115", + "parentId": "fld_67f17d3922fd4eaabedd123cb54e0822", + "modified": 1709647932414, + "created": 1687243182397, + "url": "{{IRS_HOST}}/irs/policies", + "name": "Register policy", + "description": "", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": "{\n\t\"validUntil\": \"2025-12-12T23:59:59.999Z\",\n\t\"businessPartnerNumbers\": [\n\t\t\"BPNL00000001CRHK\"\n\t],\n\t\"payload\": [\n\t\t{\n\t\t\t\"@context\": {\n\t\t\t\t\"odrl\": \"http://www.w3.org/ns/odrl/2/\"\n\t\t\t},\n\t\t\t\"@id\": \"test-126\",\n\t\t\t\"policy\": {\n\t\t\t\t\"odrl:permission\": [\n\t\t\t\t\t{\n\t\t\t\t\t\t\"odrl:action\": \"USE\",\n\t\t\t\t\t\t\"odrl:constraint\": {\n\t\t\t\t\t\t\t\"odrl:and\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"odrl:leftOperand\": \"Membership\",\n\t\t\t\t\t\t\t\t\t\"odrl:operator\": {\n\t\t\t\t\t\t\t\t\t\t\"@id\": \"odrl:eq\"\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\"odrl:rightOperand\": \"active\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"odrl:leftOperand\": \"PURPOSE\",\n\t\t\t\t\t\t\t\t\t\"odrl:operator\": {\n\t\t\t\t\t\t\t\t\t\t\"@id\": \"odrl:eq\"\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\"odrl:rightOperand\": \"ID 3.1 Trace\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t\"@context\": {\n\t\t\t\t\"odrl\": \"http://www.w3.org/ns/odrl/2/\"\n\t\t\t},\n\t\t\t\"@id\": \"test-127\",\n\t\t\t\"policy\": {\n\t\t\t\t\"odrl:permission\": [\n\t\t\t\t\t{\n\t\t\t\t\t\t\"odrl:action\": \"USE\",\n\t\t\t\t\t\t\"odrl:constraint\": {\n\t\t\t\t\t\t\t\"odrl:and\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"odrl:leftOperand\": \"Membership\",\n\t\t\t\t\t\t\t\t\t\"odrl:operator\": {\n\t\t\t\t\t\t\t\t\t\t\"@id\": \"odrl:eq\"\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\"odrl:rightOperand\": \"active\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"odrl:leftOperand\": \"PURPOSE\",\n\t\t\t\t\t\t\t\t\t\"odrl:operator\": {\n\t\t\t\t\t\t\t\t\t\t\"@id\": \"odrl:eq\"\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\"odrl:rightOperand\": \"ID 3.1 Trace\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t}\n\t]\n}" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.ADMIN_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1683962737633.5, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_cc6e7812052841b49573e4e5c2f1ff24", + "parentId": "fld_1ce7c08bd391458b8421355d96708d0b", + "modified": 1706003275081, + "created": 1680682418619, + "url": "{{DIGITAL_TWIN_REGISTRY}}/api/v3.0/shell-descriptors/{% prompt 'aasIdentifier', '', _.GLOBAL_ASSET_ID, '', false, true %}", + "name": "Get Shell by aasIdentifier", + "description": "", + "method": "GET", + "body": {}, + "parameters": [], + "headers": [ + { + "id": "pair_7877c58fd3ae46758cabf9f6cb397818", + "name": "Edc-Bpn", + "value": "BPNL00000001CRHK", + "description": "", + "disabled": false + } + ], + "authentication": {}, + "metaSortKey": -1680682418619, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "fld_1ce7c08bd391458b8421355d96708d0b", + "parentId": "fld_91ef19bcb20042be976aaf29a6e80517", + "modified": 1691504187689, + "created": 1680682418630, + "name": "Digital Twin Registry", + "description": "", + "environment": {}, + "environmentPropertyOrder": null, + "metaSortKey": -1680682418630, + "_type": "request_group" + }, + { + "_id": "req_cb3fdbda487a4585baec8b6753eb4664", + "parentId": "fld_1ce7c08bd391458b8421355d96708d0b", + "modified": 1706002920212, + "created": 1690529035794, + "url": "{{DIGITAL_TWIN_REGISTRY}}/api/v3.0/shell-descriptors", + "name": "Get Shells", + "description": "", + "method": "GET", + "body": {}, + "parameters": [], + "headers": [ + { + "id": "pair_7877c58fd3ae46758cabf9f6cb397818", + "name": "Edc-Bpn", + "value": "BPNL00000001CRHK", + "description": "", + "disabled": false + } + ], + "authentication": {}, + "metaSortKey": -1680682418614, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_2b88822ad1f344d59e26b18ab8bcd98a", + "parentId": "fld_1ce7c08bd391458b8421355d96708d0b", + "modified": 1706003278149, + "created": 1680682418609, + "url": "{{DIGITAL_TWIN_REGISTRY}}/api/v3.0/lookup/shells", + "name": "Query Registry By BPN", + "description": "", + "method": "GET", + "body": {}, + "parameters": [ + { + "name": "assetIds", + "value": "[{\"name\": \"manufacturerId\",\"value\":\"BPNL00000003AYRE\"}],", + "disabled": true, + "id": "pair_c8a20aa6fd7647a98da9b91abfe0cfa8" + }, + { + "name": "assetIds", + "value": "[{\"name\": \"manufacturerId\",\"value\":\"BPNL00000003AVTH\"}],", + "disabled": true, + "id": "pair_cc48c08e3b834497a2d88bd4201c3867" + }, + { + "name": "assetIds", + "value": "[{\"name\": \"manufacturerId\",\"value\":\"BPNL00000003AZQP\"}]", + "disabled": false, + "id": "pair_4187c8b0b8894410a17eb0ff2cf1523a" + }, + { + "name": "assetIds", + "value": "[{\"name\": \"manufacturerId\",\"value\":\"BPNL00000003B2OM\"}],", + "disabled": true, + "id": "pair_706e6930cc874343941b744a054ef388" + }, + { + "name": "assetIds", + "value": "[{\"name\": \"manufacturerId\",\"value\":\"BPNL00000003B3NX\"}],", + "disabled": true, + "id": "pair_45c6bcf3266a475891ebbbba6cde0798" + }, + { + "name": "assetIds", + "value": "[{\"name\": \"manufacturerId\",\"value\":\"BPNL00000003B5MJ\"}],", + "disabled": true, + "id": "pair_89445c9795e54bbfa1e26dae0fe4756a" + }, + { + "name": "assetIds", + "value": "[{\"name\": \"manufacturerId\",\"value\":\"BPNL00000003B0Q0\"}],", + "disabled": true, + "id": "pair_d72f55c7bf714c7c9aae58456c778443" + }, + { + "name": "assetIds", + "value": "[{\"name\": \"manufacturerId\",\"value\":\"BPNL00000003AXS3\"}],", + "disabled": true, + "id": "pair_406c9da4dc014fb297f70bb3da7128c1" + } + ], + "headers": [ + { + "id": "pair_72e0b43ab2ba4417bbc72bf08182edd0", + "name": "Edc-Bpn", + "value": "BPNL00000001CRHK", + "description": "" + } + ], + "authentication": {}, + "metaSortKey": -1680682418609, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_acae7ae7d590403ab262abe804c62791", + "parentId": "fld_1ce7c08bd391458b8421355d96708d0b", + "modified": 1706003280850, + "created": 1680682418595, + "url": "{{DIGITAL_TWIN_REGISTRY}}/api/v3.0/lookup/shells", + "name": "Query Registry By VAN", + "description": "", + "method": "GET", + "body": {}, + "parameters": [ + { + "name": "assetIds", + "value": "[{\"name\":\"van\",\"value\": \"OMBSWNHVABEWMQTAV\"}]", + "disabled": false, + "id": "pair_50d86e928e9f448d97da8ada0390e12f" + } + ], + "headers": [ + { + "id": "pair_ed11c2a6df9248e292914df944e8ba93", + "name": "Edc-Bpn", + "value": "BPNL00000001CRHK", + "description": "" + } + ], + "authentication": {}, + "metaSortKey": -1680682418595, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_b9ac9f0d80294e3eaa05ae9fb32f32e0", + "parentId": "fld_1ce7c08bd391458b8421355d96708d0b", + "modified": 1706003354109, + "created": 1680682418581, + "url": "{{DIGITAL_TWIN_REGISTRY}}/api/v3.0/lookup/shells", + "name": "Query Registry By globalAssetId", + "description": "", + "method": "GET", + "body": {}, + "parameters": [ + { + "name": "assetIds", + "value": "[{\"name\":\"globalAssetId\",\"value\":\"{% prompt 'id', '', '', '', false, true %}\"}]", + "disabled": false, + "id": "pair_f5f3d12fb2224c1d9e577c42128aa3d9" + } + ], + "headers": [ + { + "id": "pair_71ae5e562e9c414a82e84220f3c00343", + "name": "Edc-Bpn", + "value": "BPNL00000001CRHK", + "description": "" + } + ], + "authentication": {}, + "metaSortKey": -1680682418581, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_0658b8a06160494584312e1dc4026b45", + "parentId": "fld_1ce7c08bd391458b8421355d96708d0b", + "modified": 1706003284715, + "created": 1680682418570, + "url": "{{DIGITAL_TWIN_REGISTRY}}/api/v3.0/lookup/shells/query", + "name": "Query Registry By VAN", + "description": "", + "method": "POST", + "body": { + "mimeType": "", + "text": "{\n \"query\": {\n \"assetIds\": [\n {\n \"value\" : \"OMCOFCRMXMBASAFZY\",\n \"name\" : \"van\"\n },\n {\n \"value\" : \"OMCNAXRMATEMEDENV\",\n \"name\" : \"van\"\n }\n ,\n {\n \"value\" : \"OMCODXGPGLPLKEAIQ\",\n \"name\" : \"van\"\n },\n {\n \"value\" : \"OMBGHXHATHICIEYOU\",\n \"name\" : \"van\"\n },\n {\n \"value\" : \"OMAGCJCBDQGPYRQCS\",\n \"name\" : \"van\"\n },\n {\n \"value\" : \"OMBIBCLBMGCJNUKUW\",\n \"name\" : \"van\"\n },\n {\n \"value\" : \"OMCRHSMILXFLDSPTT\",\n \"name\" : \"van\"\n },\n {\n \"value\" : \"OMCLNVPYKUQCNIBOW\",\n \"name\" : \"van\"\n },\n {\n \"value\" : \"OMCXYXGFMJIBYQLBL\",\n \"name\" : \"van\"\n }\n ]\n }\n}" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json", + "id": "pair_2f4c445074514f92a4dee92554053d0a" + }, + { + "id": "pair_35fe7a71647f4aea91ba03bfc87f0cd0", + "name": "Edc-Bpn", + "value": "BPNL00000001CRHK", + "description": "" + } + ], + "authentication": {}, + "metaSortKey": -1680682418570, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_3a767a05044c4b86bdee3a0b6853f0a4", + "parentId": "fld_1ce7c08bd391458b8421355d96708d0b", + "modified": 1706003286642, + "created": 1691408320970, + "url": "{{DIGITAL_TWIN_REGISTRY}}/api/v3.0/lookup/shells/query", + "name": "Query Registry By globalAssetId", + "description": "", + "method": "POST", + "body": { + "mimeType": "", + "text": "{\n\t\"query\": {\n\t\t\"assetIds\": [\n\t\t\t{\n\t\t\t\t\"value\": \"urn:uuid:da53d429-5770-410e-a13e-424e77952d8a\",\n\t\t\t\t\"name\": \"globalAssetId\"\n\t\t\t}\n\t\t]\n\t}\n}" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json", + "id": "pair_c1f8de03ff8f4f92aeeeef63510f755e" + }, + { + "id": "pair_5dc1d703196747318faff9a8dd96be0c", + "name": "Edc-Bpn", + "value": "BPNL00000001CRHK", + "description": "" + } + ], + "authentication": {}, + "metaSortKey": -1680682418560.5, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_3d5f2115b14c46328187dd6c0efb7bc1", + "parentId": "fld_1ce7c08bd391458b8421355d96708d0b", + "modified": 1706003289343, + "created": 1689167429413, + "url": "{{DIGITAL_TWIN_REGISTRY}}/api/v3.0/shell-descriptors/{% prompt 'id', '', '', '', false, true %}", + "name": "Delete Shell by aasIdentifier", + "description": "", + "method": "DELETE", + "body": {}, + "parameters": [ + { + "id": "pair_6266690c04fd466fa1617082f5b8ec76", + "name": "pageSize", + "value": "50", + "description": "", + "disabled": true + } + ], + "headers": [ + { + "id": "pair_7877c58fd3ae46758cabf9f6cb397818", + "name": "Edc-Bpn", + "value": "BPNL00000001CRHK", + "description": "", + "disabled": false + } + ], + "authentication": {}, + "metaSortKey": -1680682418470, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_c2f60e2a32e24b4facf54a98908dd26a", + "parentId": "fld_d4f8d7db05324567a88d79bf333f909c", + "modified": 1702991054859, + "created": 1680682418551, + "url": "{{IRS_HOST}}/irs/jobs", + "name": "1.0.0 [Register Job]", + "description": "", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": "{\n\t\"key\": {\n\t\t\"globalAssetId\": \"{% prompt 'Global Asset ID', 'Please provide \\'Global-Asset-ID\\' or use default', _.GLOBAL_ASSET_ID, '', false, true %}\",\n\t\t\"bpn\": \"{% prompt 'bpn', '', _.BPN, '', false, true %}\"\n\t}\n}" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418551, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "fld_d4f8d7db05324567a88d79bf333f909c", + "parentId": "fld_91ef19bcb20042be976aaf29a6e80517", + "modified": 1680682418562, + "created": 1680682418562, + "name": "IRS Test Collection", + "description": "", + "environment": {}, + "environmentPropertyOrder": null, + "metaSortKey": -1680682418562, + "_type": "request_group" + }, + { + "_id": "req_a05635fd71e84a618d5a1800c95cfcf1", + "parentId": "fld_d4f8d7db05324567a88d79bf333f909c", + "modified": 1702991058493, + "created": 1680682418539, + "url": "{{IRS_HOST}}/irs/jobs", + "name": "1.1.0 [Register Job globalAssetId ]", + "description": "", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": "{\n\t\"key\": {\n\t\t\"globalAssetId\": \"urn:uuid:00000000-0000-0000-0000-000000000000\",\n\t\t\"bpn\": \"{% prompt 'bpn', '', _.BPN, '', false, true %}\"\n\t}\n}" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418539, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_71f4a739c7904464be77239e17ca64f5", + "parentId": "fld_d4f8d7db05324567a88d79bf333f909c", + "modified": 1702991063641, + "created": 1680682418524, + "url": "{{IRS_HOST}}/irs/jobs", + "name": "1.1.1 [Register Job globalAssetId ]", + "description": "", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": "{\n\t\"key\": {\n\t\t\"globalAssetId\": \"urn:uuid:6c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b918ea936c311d29-5753-46d4-b32c-19b\",\n\t\t\"bpn\": \"{% prompt 'bpn', '', _.BPN, '', false, true %}\"\n\t},\n\t\"collectAspects\": true\n}" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418524, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_a61a662b06f94803aee1c2392af80bda", + "parentId": "fld_d4f8d7db05324567a88d79bf333f909c", + "modified": 1702991067797, + "created": 1680682418514, + "url": "{{IRS_HOST}}/irs/jobs", + "name": "1.2.0 [Register Job with depth and bomLifecycle asBuilt]", + "description": "", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": "{\n\t\"key\": {\n\t\t\"globalAssetId\": \"{% prompt 'Global Asset ID', 'Please provide \\'Global-Asset-ID\\' or use default', _.GLOBAL_ASSET_ID, '', false, true %}\",\n\t\t\"bpn\": \"{% prompt 'bpn', '', _.BPN, '', false, true %}\"\n\t},\n\t\"bomLifecycle\": \"asBuilt\",\n\t\"depth\": 2,\n\t\"collectAspects\": true\n}" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418514, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_a687b2f700844208b746b2b09d87b736", + "parentId": "fld_d4f8d7db05324567a88d79bf333f909c", + "modified": 1702991071709, + "created": 1680682418504, + "url": "{{IRS_HOST}}/irs/jobs", + "name": "1.2.1 [Register Job with depth and bomLifecycle asPlanned]", + "description": "", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": "{\n\t\"key\": {\n\t\t\"globalAssetId\": \"{% prompt 'Global Asset ID', 'Please provide \\'Global-Asset-ID\\' or use default', _.GLOBAL_ASSET_ID, '', false, true %}\",\n\t\t\"bpn\": \"{% prompt 'bpn', '', _.BPN, '', false, true %}\"\n\t},\n\t\"bomLifecycle\": \"asPlanned\",\n\t\"depth\": 2\n}" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418504, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_0267b41afc4c45bbb18e008cc0e60c13", + "parentId": "fld_d4f8d7db05324567a88d79bf333f909c", + "modified": 1702991076696, + "created": 1695042901876, + "url": "{{IRS_HOST}}/irs/jobs", + "name": "1.2.2 [Register Job with depth and bomLifecycle asSpecified]", + "description": "", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": "{\n\t\"key\": {\n\t\t\"globalAssetId\": \"{% prompt 'Global Asset ID', 'Please provide \\'Global-Asset-ID\\' or use default', _.GLOBAL_ASSET_ID, '', false, true %}\",\n\t\t\"bpn\": \"{% prompt 'bpn', '', _.BPN, '', false, true %}\"\n\t},\n\t\"bomLifecycle\": \"asSpecified\",\n\t\"depth\": 2\n}" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418496, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_9a0e2ee860b146cea1b2b1853f141a10", + "parentId": "fld_d4f8d7db05324567a88d79bf333f909c", + "modified": 1702991080833, + "created": 1680682418488, + "url": "{{IRS_HOST}}/irs/jobs", + "name": "1.3.0 [Register Job with aspect SerialPart]", + "description": "", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": "{\n\t\"aspects\": [\n\t\t\"SerialPart\"\n\t],\n\t\"key\": {\n\t\t\"globalAssetId\": \"{% prompt 'Global Asset ID', 'Please provide \\'Global-Asset-ID\\' or use default', _.GLOBAL_ASSET_ID, '', false, true %}\",\n\t\t\"bpn\": \"{% prompt 'bpn', '', _.BPN, '', false, true %}\"\n\t},\n\t\"collectAspects\": true\n}" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418488, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_43f7ffbec5bb465eb8eed5e26dbb31cc", + "parentId": "fld_d4f8d7db05324567a88d79bf333f909c", + "modified": 1702991084713, + "created": 1680682418479, + "url": "{{IRS_HOST}}/irs/jobs", + "name": "1.3.1 [Register Job with aspect SerialPart and SingleLevelBomAsBuilt]", + "description": "", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": "{\n\t\"aspects\": [\n\t\t\"SerialPart\",\n\t\t\"SingleLevelBomAsBuilt\"\n\t],\n\t\"key\": {\n\t\t\"globalAssetId\": \"{% prompt 'Global Asset ID', 'Please provide \\'Global-Asset-ID\\' or use default', _.GLOBAL_ASSET_ID, '', false, true %}\",\n\t\t\"bpn\": \"{% prompt 'bpn', '', _.BPN, '', false, true %}\"\n\t},\n\t\"collectAspects\": true\n}" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418479, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_b2c9a17a0d174f68bfdac12ab63e8384", + "parentId": "fld_d4f8d7db05324567a88d79bf333f909c", + "modified": 1702991088495, + "created": 1680682418469, + "url": "{{IRS_HOST}}/irs/jobs", + "name": "1.3.2 [Register Job with aspect MaterialForRecycling and BatteryPass]", + "description": "", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": "{\n\t\"aspects\": [\n\t\t\"BatteryPass\",\n\t\t\"MaterialForRecycling\"\n\t],\n\t\"key\": {\n\t\t\"globalAssetId\": \"{% prompt 'Global Asset ID', 'Please provide \\'Global-Asset-ID\\' or use default', _.GLOBAL_ASSET_ID, '', false, true %}\",\n\t\t\"bpn\": \"{% prompt 'bpn', '', _.BPN, '', false, true %}\"\n\t},\n\t\"collectAspects\": true\n}" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418469, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_7f581bd9b693437b9e8a1b58f98e558e", + "parentId": "fld_d4f8d7db05324567a88d79bf333f909c", + "modified": 1702991094498, + "created": 1680682418460, + "url": "{{IRS_HOST}}/irs/jobs", + "name": "1.3.3 [Register Job with aspect type Batch and CertificateOfDestruction]", + "description": "", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": "{\n\t\"aspects\": [\n\t\t\"Batch\",\n\t\t\"CertificateOfDestruction\"\n\t],\n\t\"key\": {\n\t\t\"globalAssetId\": \"{% prompt 'Global Asset ID', 'Please provide \\'Global-Asset-ID\\' or use default', _.GLOBAL_ASSET_ID, '', false, true %}\",\n\t\t\"bpn\": \"{% prompt 'bpn', '', _.BPN, '', false, true %}\"\n\t},\n\t\"collectAspects\": true\n}" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418460, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_1a349444aa2e464ab563e61bbd4aacf2", + "parentId": "fld_d4f8d7db05324567a88d79bf333f909c", + "modified": 1702991098918, + "created": 1680682418451, + "url": "{{IRS_HOST}}/irs/jobs", + "name": "1.3.4 [Register Job with aspect SerialPart and AddressAspect]", + "description": "", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": "{\n\t\"aspects\": [\n\t\t\"SerialPart\",\n\t\t\"AddressAspect\"\n\t],\n\t\"key\": {\n\t\t\"globalAssetId\": \"{% prompt 'Global Asset ID', 'Please provide \\'Global-Asset-ID\\' or use default', _.GLOBAL_ASSET_ID, '', false, true %}\",\n\t\t\"bpn\": \"{% prompt 'bpn', '', _.BPN, '', false, true %}\"\n\t},\n\t\"collectAspects\": true\n}" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418451, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_79e13903f5a34c6f89e6a19691335b45", + "parentId": "fld_d4f8d7db05324567a88d79bf333f909c", + "modified": 1702991103182, + "created": 1680682418442, + "url": "{{IRS_HOST}}/irs/jobs", + "name": "1.3.5 [Register Job with aspect PartAsPlanned]", + "description": "", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": "{\n\t\"aspects\": [\n\t\t\"PartAsPlanned\"\n\t],\n\t\"key\": {\n\t\t\"globalAssetId\": \"{% prompt 'Global Asset ID', 'Please provide \\'Global-Asset-ID\\' or use default', _.GLOBAL_ASSET_ID, '', false, true %}\",\n\t\t\"bpn\": \"{% prompt 'bpn', '', _.BPN, '', false, true %}\"\n\t},\n\t\"bomLifecycle\": \"asPlanned\",\n\t\"collectAspects\": true\n}" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418442, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_e5fd25a041a94a99911475b1edc03652", + "parentId": "fld_d4f8d7db05324567a88d79bf333f909c", + "modified": 1702991107672, + "created": 1680682418432, + "url": "{{IRS_HOST}}/irs/jobs", + "name": "1.3.6 [Register Job with upward direction]", + "description": "", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": "{\n\t\"key\": {\n\t\t\"globalAssetId\": \"urn:uuid:3402b29d-07a6-42ad-80ff-272b50fbe24a\",\n\t\t\"bpn\": \"BPNL00000003AZQP\"\n\t},\n\t\"direction\": \"upward\"\n}" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418432, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_f46a98b489554b528145895cd655ea89", + "parentId": "fld_d4f8d7db05324567a88d79bf333f909c", + "modified": 1702991113717, + "created": 1695192937155, + "url": "{{IRS_HOST}}/irs/jobs", + "name": "1.3.7 [Register Job with aspect JustInSequencePart]", + "description": "", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": "{\n\t\"aspects\": [\n\t\t\"JustInSequencePart\"\n\t],\n\t\"key\": {\n\t\t\"globalAssetId\": \"{% prompt 'Global Asset ID', 'Please provide \\'Global-Asset-ID\\' or use default', _.GLOBAL_ASSET_ID, '', false, true %}\",\n\t\t\"bpn\": \"{% prompt 'bpn', '', _.BPN, '', false, true %}\"\n\t},\n\t\"collectAspects\": true\n}" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418428, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_ec357fa8a2a24f6b8c3b8488ffa89ad4", + "parentId": "fld_d4f8d7db05324567a88d79bf333f909c", + "modified": 1702991120609, + "created": 1695192971825, + "url": "{{IRS_HOST}}/irs/jobs", + "name": "1.3.8 [Register Job with aspect TractionBatteryCode]", + "description": "", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": "{\n\t\"aspects\": [\n\t\t\"TractionBatteryCode\"\n\t],\n\t\"key\": {\n\t\t\"globalAssetId\": \"{% prompt 'Global Asset ID', 'Please provide \\'Global-Asset-ID\\' or use default', _.GLOBAL_ASSET_ID, '', false, true %}\",\n\t\t\"bpn\": \"{% prompt 'bpn', '', _.BPN, '', false, true %}\"\n\t},\n\t\"collectAspects\": true\n}" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418426, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_c256080d9ddf4ffda88298a4287b3605", + "parentId": "fld_d4f8d7db05324567a88d79bf333f909c", + "modified": 1702991125292, + "created": 1680682418424, + "url": "{{IRS_HOST}}/irs/jobs", + "name": "1.4.0 [Register Job with invalid or not exisiting aspect type]", + "description": "", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": "{\n\t\"aspects\": [\n\t\t\"PartSerialTypization\"\n\t],\n\t\"key\": {\n\t\t\"globalAssetId\": \"{% prompt 'Global Asset ID', 'Please provide \\'Global-Asset-ID\\' or use default', _.GLOBAL_ASSET_ID, '', false, true %}\",\n\t\t\"bpn\": \"{% prompt 'bpn', '', _.BPN, '', false, true %}\"\n\t},\n\t\"collectAspects\": true\n}" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418424, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_800ff912fcfc49078f7c38169b5a7aa1", + "parentId": "fld_d4f8d7db05324567a88d79bf333f909c", + "modified": 1702991130711, + "created": 1680682418414, + "url": "{{IRS_HOST}}/irs/jobs", + "name": "1.4.1 [Register Job with invalid or not exisiting aspect type]", + "description": "", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": "{\n\t\"aspects\": [\n\t\t\"\"\n\t],\n\t\"key\": {\n\t\t\"globalAssetId\": \"{% prompt 'Global Asset ID', 'Please provide \\'Global-Asset-ID\\' or use default', _.GLOBAL_ASSET_ID, '', false, true %}\",\n\t\t\"bpn\": \"{% prompt 'bpn', '', _.BPN, '', false, true %}\"\n\t},\n\t\"collectAspects\": true\n}" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418414, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_161c32b41e914e46887e089602d2e25f", + "parentId": "fld_d4f8d7db05324567a88d79bf333f909c", + "modified": 1702991137603, + "created": 1680682418401, + "url": "{{IRS_HOST}}/irs/jobs", + "name": "1.5.0 [Register Job with all aspect type]", + "description": "", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": "{\n\t\"aspects\": [\n\t\t\"SerialPartTypization\",\n\t\t\"AssemblyPartRelationship\",\n\t\t\"Batch\",\n\t\t\"ProductDescription\",\n\t\t\"IdConversion\",\n\t\t\"MarketplaceOffer\",\n\t\t\"MaterialForRecycling\",\n\t\t\"PhysicalDimension\",\n\t\t\"ReturnRequest\",\n\t\t\"CertificateOfDestruction\",\n\t\t\"CertificateOfDismantler\",\n\t\t\"EndOfLife\",\n\t\t\"EsrCertificate\",\n\t\t\"EsrCertificateStateStatistic\",\n\t\t\"ChargingProcess\",\n\t\t\"AddressAspect\",\n\t\t\"ClaimData\",\n\t\t\"BatteryPass\",\n\t\t\"DiagnosticData\",\n\t\t\"MaterialForHomologation\",\n\t\t\"PartAsPlanned\"\n\t],\n\t\"key\": {\n\t\t\"globalAssetId\": \"{% prompt 'Global Asset ID', 'Please provide \\'Global-Asset-ID\\' or use default', _.GLOBAL_ASSET_ID, '', false, true %}\",\n\t\t\"bpn\": \"{% prompt 'bpn', '', _.BPN, '', false, true %}\"\n\t},\n\t\"collectAspects\": true\n}" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418401, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_7cab2e60214f445596a6563f1edf8f0c", + "parentId": "fld_d4f8d7db05324567a88d79bf333f909c", + "modified": 1702991145487, + "created": 1680682418392, + "url": "{{IRS_HOST}}/irs/jobs", + "name": "1.6.0 [Register Job with BPN lookup]", + "description": "", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": "{\n\t\"aspects\": [\n\t\t\"SerialPart\",\n\t\t\"Batch\"\n\t],\n\t\"key\": {\n\t\t\"globalAssetId\": \"{% prompt 'Global Asset ID', 'Please provide \\'Global-Asset-ID\\' or use default', _.GLOBAL_ASSET_ID, '', false, true %}\",\n\t\t\"bpn\": \"{% prompt 'bpn', '', _.BPN, '', false, true %}\"\n\t},\n\t\"lookupBPNs\": false\n}" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418392, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_a1d3ac7190c143678c04fe015bba94d4", + "parentId": "fld_d4f8d7db05324567a88d79bf333f909c", + "modified": 1702991149742, + "created": 1683184048412, + "url": "{{IRS_HOST}}/irs/jobs", + "name": "1.7.0 [Register Job with invalid policy]", + "description": "", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": "{\n\t\"aspects\": [\n\t\t\"SerialPart\"\n\t],\n\t\"key\": {\n\t\t\"globalAssetId\": \"urn:uuid:da53d429-5770-410e-a13e-424e77952d8a\",\n\t\t\"bpn\": \"{% prompt 'bpn', '', _.BPN, '', false, true %}\"\n\t},\n\t\"collectAspects\": true,\n\t\"lookupBPNs\": false\n}" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418386.5, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_26dc4bfbf4854b24acd3d7710732a26e", + "parentId": "fld_d4f8d7db05324567a88d79bf333f909c", + "modified": 1702991154342, + "created": 1693493383337, + "url": "{{IRS_HOST}}/irs/jobs", + "name": "1.8.0 [Register Job with data integrity success]", + "description": "", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": "{\n\t\"aspects\": [\n\t\t\"SerialPart\",\n\t\t\"SingleLevelBomAsBuilt\"\n\t],\n\t\"bomLifecycle\": \"asBuilt\",\n\t\"collectAspects\": true,\n\t\"direction\": \"downward\",\n\t\"depth\": 10,\n \"integrityCheck\": true,\n\t\"key\": {\n\t\t\"globalAssetId\": \"urn:uuid:a1fa0f85-697d-4c9d-982f-2501af8e8636\",\n\t\t\"bpn\": \"BPNL00000003AZQP\"\n\t}\n}" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418382.375, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_5e3915096edd489babec923a5da57604", + "parentId": "fld_d4f8d7db05324567a88d79bf333f909c", + "modified": 1702991159838, + "created": 1693493584873, + "url": "{{IRS_HOST}}/irs/jobs", + "name": "1.8.1 [Register Job with data integrity wrong hash]", + "description": "", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": "{\n\t\"aspects\": [\n\t\t\"SerialPart\"\n\t],\n\t\"bomLifecycle\": \"asBuilt\",\n\t\"collectAspects\": true,\n\t\"direction\": \"downward\",\n\t\"depth\": 10,\n \"integrityCheck\": true,\n\t\"key\": {\n\t\t\"globalAssetId\": \"urn:uuid:05abf6ff-8c78-4b72-948b-40e08e9b83f3\",\n\t\t\"bpn\": \"BPNL00000003AZQP\"\n\t}\n}" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418381.6875, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_2e8593050a3249d29cfbf96919db2ece", + "parentId": "fld_d4f8d7db05324567a88d79bf333f909c", + "modified": 1702991164094, + "created": 1693493594373, + "url": "{{IRS_HOST}}/irs/jobs", + "name": "1.8.2 [Register Job with data integrity wrong signature]", + "description": "", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": "{\n\t\"aspects\": [\n\t\t\"SingleLevelBomAsBuilt\"\n\t],\n\t\"bomLifecycle\": \"asBuilt\",\n\t\"collectAspects\": true,\n\t\"direction\": \"downward\",\n\t\"depth\": 10,\n \"integrityCheck\": true,\n\t\"key\": {\n\t\t\"globalAssetId\": \"urn:uuid:17e11d67-0315-4504-82cd-8e70a8c33a6a\",\n\t\t\"bpn\": \"BPNL00000003AZQP\"\n\t}\n}" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418381.3438, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_f398842586a742bb8766909c8829b9f6", + "parentId": "fld_d4f8d7db05324567a88d79bf333f909c", + "modified": 1702991168363, + "created": 1693493604521, + "url": "{{IRS_HOST}}/irs/jobs", + "name": "1.8.3 [Register Job with data integrity integrity aspect missing]", + "description": "", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": "{\n\t\"aspects\": [\n\t\t\"SerialPart\",\n\t\t\"SingleLevelBomAsBuilt\"\n\t],\n\t\"bomLifecycle\": \"asBuilt\",\n\t\"collectAspects\": true,\n\t\"direction\": \"downward\",\n\t\"depth\": 10,\n \"integrityCheck\": true,\n\t\"key\": {\n\t\t\"globalAssetId\": \"urn:uuid:5672e8ff-8a73-425e-b2a5-5561b5b21d7a\",\n\t\t\"bpn\": \"BPNL00000003AZQP\"\n\t}\n}" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418381.1719, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_2d2678c78fbd4572bf917270c0f505b7", + "parentId": "fld_d4f8d7db05324567a88d79bf333f909c", + "modified": 1702991173689, + "created": 1680682418381, + "url": "{{IRS_HOST}}/irs/jobs", + "name": "2.0.0 [Search for completed Jobs]", + "description": "", + "method": "GET", + "body": {}, + "parameters": [ + { + "name": "jobStates", + "value": "COMPLETED", + "disabled": false + } + ], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418381, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_9ea75dc06cfe44f0b7d110ed41febc2f", + "parentId": "fld_d4f8d7db05324567a88d79bf333f909c", + "modified": 1702991177973, + "created": 1680682418372, + "url": "{{IRS_HOST}}/irs/jobs", + "name": "2.0.1 [Search for Jobs in error state]", + "description": "", + "method": "GET", + "body": {}, + "parameters": [ + { + "name": "jobStates", + "value": "ERROR", + "disabled": false + } + ], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418372, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_ae4b12eafd044fa6890608bc303af687", + "parentId": "fld_d4f8d7db05324567a88d79bf333f909c", + "modified": 1702991182139, + "created": 1680682418358, + "url": "{{IRS_HOST}}/irs/jobs", + "name": "2.0.2 [Search for Jobs in initial state]", + "description": "", + "method": "GET", + "body": {}, + "parameters": [ + { + "name": "jobStates", + "value": "INITIAL", + "disabled": false + } + ], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418358, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_26255fd22b634b3995aa028a1b3c0c43", + "parentId": "fld_d4f8d7db05324567a88d79bf333f909c", + "modified": 1702991186114, + "created": 1680682418348, + "url": "{{IRS_HOST}}/irs/jobs", + "name": "2.0.3 [Search for all Jobs in JobStore]", + "description": "", + "method": "GET", + "body": {}, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418348, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_0f6c2c6ccb704668a441e5aef89eaac6", + "parentId": "fld_d4f8d7db05324567a88d79bf333f909c", + "modified": 1702991190326, + "created": 1680682418339, + "url": "{{IRS_HOST}}/irs/jobs", + "name": "2.1.0 [Search for running Jobs]", + "description": "", + "method": "GET", + "body": {}, + "parameters": [ + { + "name": "jobStates", + "value": "RUNNING", + "disabled": false + } + ], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418339, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_12d5baa27e2d43a1bcd9749c15398d4b", + "parentId": "fld_d4f8d7db05324567a88d79bf333f909c", + "modified": 1702991196283, + "created": 1680682418325, + "url": "{{IRS_HOST}}/irs/jobs/{% prompt 'Job ID', '', '', '', false, true %}", + "name": "3.0.0 [Search for given jobId with uncomplete]", + "description": "", + "method": "GET", + "body": {}, + "parameters": [ + { + "name": "returnUncompletedJob", + "value": "true", + "disabled": false + } + ], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418325, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_8ab3ce9ce37845ccb7604e6026621081", + "parentId": "fld_d4f8d7db05324567a88d79bf333f909c", + "modified": 1702991200399, + "created": 1680682418316, + "url": "{{IRS_HOST}}/irs/jobs/{% prompt 'Job ID', '', '', '', false, true %}", + "name": "3.1.0 [Search for given jobId]", + "description": "", + "method": "GET", + "body": {}, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418316, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_5bc74292403841e0a0caaf47e5705323", + "parentId": "fld_d4f8d7db05324567a88d79bf333f909c", + "modified": 1702991205447, + "created": 1680682418307, + "url": "{{IRS_HOST}}/irs/jobs/test", + "name": "3.1.1 [Search for invalid jobId]", + "description": "", + "method": "GET", + "body": {}, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418307, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_6473a4d69ab74a6085fff6dd311e1a30", + "parentId": "fld_d4f8d7db05324567a88d79bf333f909c", + "modified": 1702991214202, + "created": 1680682418297, + "url": "{{IRS_HOST}}/irs/jobs/00000000-0000-0000-0000-000000000000", + "name": "3.1.2 [Search for unknown jobId]", + "description": "", + "method": "GET", + "body": {}, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418297, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_72fe5b24f75949e7aa01f4472097075c", + "parentId": "fld_d4f8d7db05324567a88d79bf333f909c", + "modified": 1702991218362, + "created": 1680682418280, + "url": "{{IRS_HOST}}/irs/jobs/{% prompt 'Job ID', '', '', '', false, true %}", + "name": "6.0.0 [Cancel Job for given jobId]", + "description": "", + "method": "PUT", + "body": {}, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418280, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_29d7b3e9a6bb4026beea1b937a4ff7f5", + "parentId": "fld_4b8961ebc450406eb0ee363cc99d4742", + "modified": 1705942015684, + "created": 1682672699249, + "url": "{{ _.BPN_DISCOVERY }}/api/administration/connectors/bpnDiscovery/search", + "name": "Find BPN endpoints for manufacturer numbers", + "description": "", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": "{\n \"searchFilter\": [\n {\n \"type\": \"oen\",\n \"keys\": [\n \"oen-1243\",\n \"oen-11\"\n ]\n },\n {\n \"type\": \"bpid\",\n \"keys\": [\n \"bpid-1243\",\n \"bpid-11\"\n ]\n }\n ]\n}" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "oauth2", + "grantType": "client_credentials", + "accessTokenUrl": "{{ _.OAUTH2_TOKEN_URL }}", + "clientId": "{{ _.DISCOVERY_CLIENT_ID }}", + "clientSecret": "{{ _.DISCOVERY_CLIENT_SECRET }}", + "disabled": false + }, + "metaSortKey": -1683630902023, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "fld_4b8961ebc450406eb0ee363cc99d4742", + "parentId": "fld_91ef19bcb20042be976aaf29a6e80517", + "modified": 1683630931664, + "created": 1683630887514, + "name": "Discovery", + "description": "", + "environment": {}, + "environmentPropertyOrder": null, + "metaSortKey": -1680682418417.5, + "_type": "request_group" + }, + { + "_id": "req_7009591610794ff3a6acebeff788cc22", + "parentId": "fld_4b8961ebc450406eb0ee363cc99d4742", + "modified": 1705942027574, + "created": 1683031718699, + "url": "{{ _.DISCOVERY_FINDER }}/api/administration/connectors/discovery/search", + "name": "Find BPN Discovery Endpoints of type BPN", + "description": "", + "method": "POST", + "body": { + "mimeType": "", + "text": "{\n \"types\": [\n \"bpn\"\n ]\n}" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "oauth2", + "grantType": "client_credentials", + "accessTokenUrl": "{{ _.OAUTH2_TOKEN_URL }}", + "clientId": "{{ _.DISCOVERY_CLIENT_ID }}", + "clientSecret": "{{ _.DISCOVERY_CLIENT_SECRET }}", + "disabled": false + }, + "metaSortKey": -1683630901923, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_965d38688d3d488db7e4bae8f022aea7", + "parentId": "fld_4b8961ebc450406eb0ee363cc99d4742", + "modified": 1705942036978, + "created": 1683560906453, + "url": "{{ _.EDC_DISCOVERY }}/api/administration/connectors/discovery", + "name": "Find EDC endpoints for BPNs", + "description": "", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": "[\n\t\"BPNL00000001CRHK\"\n]" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "oauth2", + "grantType": "client_credentials", + "accessTokenUrl": "{{ _.OAUTH2_TOKEN_URL }}", + "clientId": "{{ _.DISCOVERY_CLIENT_ID }}", + "clientSecret": "{{ _.DISCOVERY_CLIENT_SECRET }}", + "disabled": false + }, + "metaSortKey": -1683630901873, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_1036ad8aff404c338c1b34590d2f5c14", + "parentId": "fld_b83723e836624519b7414b1df0380116", + "modified": 1705006665175, + "created": 1680682418265, + "url": "{{IRS_HOST}}/irs/jobs", + "name": "Register Job", + "description": "", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": "{\n\t\"aspects\": [\n\t\t\"SingleLevelBomAsBuilt\",\n\t\t\"SerialPart\",\n\t\t\"Batch\"\n\t],\n\t\"bomLifecycle\": \"asBuilt\",\n\t\"collectAspects\": true,\n\t\"lookupBPNs\": true,\n\t\"direction\": \"downward\",\n\t\"depth\": 10,\n\t\"key\": {\n\t\t\"globalAssetId\": \"{% prompt 'Global Asset ID', 'Please provide \\'Global-Asset-ID\\' or use default', _.GLOBAL_ASSET_ID, '', false, true %}\",\n\t\t\"bpn\": \"{% prompt 'Business Partner Number', '', _.BPN, '', false, true %}\"\n\t}\n}" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418265, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "fld_b83723e836624519b7414b1df0380116", + "parentId": "fld_91ef19bcb20042be976aaf29a6e80517", + "modified": 1680682418273, + "created": 1680682418273, + "name": "IRS Basic API Calls", + "description": "", + "environment": {}, + "environmentPropertyOrder": null, + "metaSortKey": -1680682418273, + "_type": "request_group" + }, + { + "_id": "req_d295b0819877445fa48bb10c779b024e", + "parentId": "fld_b83723e836624519b7414b1df0380116", + "modified": 1705942154792, + "created": 1680682418238, + "url": "{{IRS_HOST}}/irs/jobs/{% response 'body', 'req_b02ac0bfc4704c83a5c5f8b24175d61a', 'b64::JC5pZA==::46b', 'never', 60 %} ", + "name": "Get registered Job", + "description": "", + "method": "GET", + "body": {}, + "parameters": [ + { + "name": "returnUncompletedJob", + "value": "true", + "disabled": false + } + ], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418261, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_26e9061a971942e7bdbdefb666001946", + "parentId": "fld_b83723e836624519b7414b1df0380116", + "modified": 1702991288793, + "created": 1680682418257, + "url": "{{IRS_HOST}}/irs/jobs", + "name": "Search for all Jobs in JobStore", + "description": "", + "method": "GET", + "body": {}, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418257, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_bd5978eee1d04fe8bd59740510f0923d", + "parentId": "fld_b83723e836624519b7414b1df0380116", + "modified": 1702991284435, + "created": 1680682418247, + "url": "{{IRS_HOST}}/irs/jobs", + "name": "Search for Jobs for given state", + "description": "", + "method": "GET", + "body": {}, + "parameters": [ + { + "name": "jobStates", + "value": "ERROR", + "disabled": true, + "id": "pair_c694b66f41e649db837f801b5699859e" + }, + { + "name": "jobStates", + "value": "CANCELED,COMPLETED", + "disabled": false, + "id": "pair_ab346623e5394504b7232cc40ae75bed" + }, + { + "id": "pair_ddbccd5219944e8cac3d99249ba881e5", + "name": "jobStates", + "value": "RUNNING", + "description": "", + "disabled": true + } + ], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418247, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_bfeacc17a6e044fabfba15ff6c72e303", + "parentId": "fld_b83723e836624519b7414b1df0380116", + "modified": 1703236659047, + "created": 1690384427379, + "url": "{{IRS_HOST}}/irs/jobs/{% prompt 'Job ID', '', '', '', false, true %}", + "name": "Get Job for jobId", + "description": "", + "method": "GET", + "body": {}, + "parameters": [ + { + "name": "returnUncompletedJob", + "value": "true", + "disabled": false + } + ], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418238, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_ff2cda30fbb4460288c84a3cf650896c", + "parentId": "fld_b83723e836624519b7414b1df0380116", + "modified": 1702991276045, + "created": 1680682418229, + "url": "{{IRS_HOST}}/irs/jobs/{% prompt 'Job ID', '', '', '', false, true %}", + "name": "Cancel Job for jobId", + "description": "", + "method": "PUT", + "body": {}, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418229, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_66ba113696264b78a6c5310273184b1b", + "parentId": "fld_b83723e836624519b7414b1df0380116", + "modified": 1702991272198, + "created": 1682498338739, + "url": "{{IRS_HOST}}/irs/aspectmodels", + "name": "Get all available Aspect Models", + "description": "", + "method": "GET", + "body": {}, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418179, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_d54d9a4424ee4957a8b349dea9715ee6", + "parentId": "fld_4b79510114d546dbb678cd229f7789b9", + "modified": 1705942066941, + "created": 1680682418213, + "url": "{{ _.SEMANTIC_HUB_URL }}/hub/api/v1/models", + "name": "Get all models", + "description": "", + "method": "GET", + "body": {}, + "parameters": [ + { + "name": "pageSize", + "value": "100", + "disabled": false, + "id": "pair_96567b64925d4487bae4c74bfa9e021e" + }, + { + "id": "pair_2dae68db8a564296a5835e66d951331f", + "name": "status", + "value": "RELEASED", + "description": "" + } + ], + "headers": [], + "authentication": { + "type": "oauth2", + "grantType": "client_credentials", + "accessTokenUrl": "{{ _.OAUTH2_TOKEN_URL }}", + "clientId": "{{ _.SEMANTIC_HUB_CLIENT_ID }}", + "clientSecret": "{{ _.SEMANTIC_HUB_CLIENT_SECRET }}" + }, + "metaSortKey": -1680682418213, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "fld_4b79510114d546dbb678cd229f7789b9", + "parentId": "fld_91ef19bcb20042be976aaf29a6e80517", + "modified": 1680682418222, + "created": 1680682418222, + "name": "Semantics Hub", + "description": "", + "environment": {}, + "environmentPropertyOrder": null, + "metaSortKey": -1680682418222, + "_type": "request_group" + }, + { + "_id": "req_81377811f4244953ac068437b9060e10", + "parentId": "fld_4b79510114d546dbb678cd229f7789b9", + "modified": 1705942077015, + "created": 1680682418204, + "url": "{{ _.SEMANTIC_HUB_URL }}/hub/api/v1/models/urn%3Abamm%3Aio.catenax.serial_part_typization%3A1.0.0%23SerialPartTypization", + "name": "Get SerialPartTypization", + "description": "", + "method": "GET", + "body": {}, + "parameters": [], + "headers": [], + "authentication": { + "type": "oauth2", + "grantType": "client_credentials", + "accessTokenUrl": "{{ _.OAUTH2_TOKEN_URL }}", + "clientId": "{{ _.SEMANTIC_HUB_CLIENT_ID }}", + "clientSecret": "{{ _.SEMANTIC_HUB_CLIENT_SECRET }}" + }, + "metaSortKey": -1680682418204, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_d0716a468d154e17982134afd29cc5d5", + "parentId": "fld_4b79510114d546dbb678cd229f7789b9", + "modified": 1705942085733, + "created": 1680682418192, + "url": "{{ _.SEMANTIC_HUB_URL }}/hub/api/v1/models/urn%3Abamm%3Aio.catenax.serial_part_typization%3A1.0.0%23SerialPartTypization/json-schema", + "name": "Get SerialPartTypization Json Schema", + "description": "", + "method": "GET", + "body": {}, + "parameters": [], + "headers": [], + "authentication": { + "type": "oauth2", + "grantType": "client_credentials", + "accessTokenUrl": "{{ _.OAUTH2_TOKEN_URL }}", + "clientId": "{{ _.SEMANTIC_HUB_CLIENT_ID }}", + "clientSecret": "{{ _.SEMANTIC_HUB_CLIENT_SECRET }}" + }, + "metaSortKey": -1680682418192, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_5b303c2ca3984341a4151d6521eb499c", + "parentId": "fld_b5b8f7cfcc274a309acc226fee86fcb1", + "modified": 1705942100313, + "created": 1680682418174, + "url": "{{ _.BPDM_URL }}/v1/api/catena/business-partner/{% prompt 'BPN', '', '', '', false, true %}", + "name": "Get business partner by id", + "description": "", + "method": "GET", + "body": {}, + "parameters": [ + { + "name": "idType", + "value": "BPN", + "disabled": false + } + ], + "headers": [], + "authentication": { + "type": "oauth2", + "grantType": "client_credentials", + "accessTokenUrl": "{{ _.OAUTH2_TOKEN_URL }}", + "clientId": "{{ _.BPDM_CLIENT_ID }}", + "clientSecret": "{{ _.BPDM_CLIENT_SECRET }}" + }, + "metaSortKey": -1680682418174, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "fld_b5b8f7cfcc274a309acc226fee86fcb1", + "parentId": "fld_91ef19bcb20042be976aaf29a6e80517", + "modified": 1680682418184, + "created": 1680682418184, + "name": "Business partner data management", + "description": "", + "environment": {}, + "environmentPropertyOrder": null, + "metaSortKey": -1680682418184, + "_type": "request_group" + }, + { + "_id": "req_6f34aa94c45b44709594b1bca9e38818", + "parentId": "fld_7cfb5375fab847a0908ce5e7caf278ac", + "modified": 1702991347797, + "created": 1680682418157, + "url": "{{IRS_HOST}}/esr/esr-statistics/{% prompt 'globalAssetId', 'Provide global asset ID or use default', _.GLOBAL_ASSET_ID, '', false, true %}/{% prompt 'BOM Lifecycle', '', '', '', false, true %}/{% prompt 'Certificate', '', '', '', false, true %}/submodel", + "name": "Get Esr Statistics", + "description": "", + "method": "GET", + "body": {}, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418158, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "fld_7cfb5375fab847a0908ce5e7caf278ac", + "parentId": "fld_91ef19bcb20042be976aaf29a6e80517", + "modified": 1680682418167, + "created": 1680682418167, + "name": "ESR Spike", + "description": "", + "environment": {}, + "environmentPropertyOrder": null, + "metaSortKey": -1680682418167, + "_type": "request_group" + }, + { + "_id": "req_4256d7144c904c48b5d06143ce64b76e", + "parentId": "fld_8592e58d5e1843c6a57381ade99fab71", + "modified": 1702991361578, + "created": 1680682418143, + "url": "{{IRS_HOST}}/ess/bpn/investigations", + "name": "Register Job Investigation", + "description": "", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": "{\n\t\"key\": {\n\t\t\"globalAssetId\": \"urn:uuid:2c57b0e9-a653-411d-bdcd-64787e9fd3a7\",\n\t\t\"bpn\": \"BPNL00000003CRHK\"\n\t},\n\t\"incidentBPNSs\": [\n\t\t\"BPNL00000003B6LU\"\n\t],\n\t\"bomLifecycle\": \"asPlanned\"\n}" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418143, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "fld_8592e58d5e1843c6a57381ade99fab71", + "parentId": "fld_91ef19bcb20042be976aaf29a6e80517", + "modified": 1680682418151, + "created": 1680682418151, + "name": "ESS Spike", + "description": "", + "environment": {}, + "environmentPropertyOrder": null, + "metaSortKey": -1680682418151, + "_type": "request_group" + }, + { + "_id": "req_d778f172dac9411e8ef9308f4e47f9b0", + "parentId": "fld_8592e58d5e1843c6a57381ade99fab71", + "modified": 1705942138125, + "created": 1680682418134, + "url": "{{IRS_HOST}}/ess/bpn/investigations/{% response 'body', 'req_ec674952c1114bce8fb71ea1ed6d9ef7', 'b64::JC5pZA==::46b', 'never', 60 %}", + "name": "Get registered investigation", + "description": "", + "method": "GET", + "body": {}, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418138.5, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_fedf8b63198f4d77aa4ea593b2e294d2", + "parentId": "fld_8592e58d5e1843c6a57381ade99fab71", + "modified": 1702991370481, + "created": 1680682418134, + "url": "{{IRS_HOST}}/ess/bpn/investigations/{% prompt 'Job ID', '', '', '', false, true %}", + "name": "Search for investigation by jobId", + "description": "", + "method": "GET", + "body": {}, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418134, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_f91b5c6dcf924e31a1af84ecb8254ec2", + "parentId": "fld_63e8883cb36c4bc5bc5f7ef328a0fdfe", + "modified": 1702991381651, + "created": 1680682418118, + "url": "{{IRS_HOST}}/irs/orders", + "name": "Register Batch Order", + "description": "", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": "{\n\t\"aspects\": [\n\t\t\"AssemblyPartRelationship\"\n\t],\n\t\"collectAspects\": true,\n\t\"lookupBPNs\": true,\n\t\"direction\": \"downward\",\n\t\"batchSize\": 10,\n\t\"batchStrategy\": \"PRESERVE_BATCH_JOB_ORDER\",\n\t\"keys\": [\n\t\t{\n\t\t\t\"globalAssetId\": \"urn:uuid:ed333e9a-5afa-40b2-99da-bae2fd211122\",\n\t\t\t\"bpn\": \"BPNL00000003AAXX\"\n\t\t},\n\t\t{\n\t\t\t\"globalAssetId\": \"urn:uuid:771d2ccc-a081-4d3a-bcb2-46c6a0a32211\",\n\t\t\t\"bpn\": \"BPNL00000003AAXX\"\n\t\t}\n\t]\n}" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418118, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "fld_63e8883cb36c4bc5bc5f7ef328a0fdfe", + "parentId": "fld_91ef19bcb20042be976aaf29a6e80517", + "modified": 1680682418128, + "created": 1680682418128, + "name": "Batch Processing", + "description": "", + "environment": {}, + "environmentPropertyOrder": null, + "metaSortKey": -1680682418128, + "_type": "request_group" + }, + { + "_id": "req_92235b58ec8a44da81e767d06b6e4633", + "parentId": "fld_63e8883cb36c4bc5bc5f7ef328a0fdfe", + "modified": 1702991390349, + "created": 1696342619602, + "url": "{{IRS_HOST}}/irs/ess/orders", + "name": "Register ESS Batch Order", + "description": "", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": "{\n\t\"batchSize\": 10,\n\t\"batchStrategy\": \"PRESERVE_BATCH_JOB_ORDER\",\n\t\"incidentBPNSs\": [\"BPNL00000003B6LU\"],\n\t\"keys\": [\n\t\t{\n\t\t\t\"globalAssetId\": \"urn:uuid:ed333e9a-5afa-40b2-99da-bae2fd211122\",\n\t\t\t\"bpn\": \"BPNL00000003AAXX\"\n\t\t},\n\t\t{\n\t\t\t\"globalAssetId\": \"urn:uuid:771d2ccc-a081-4d3a-bcb2-46c6a0a32211\",\n\t\t\t\"bpn\": \"BPNL00000003AAXX\"\n\t\t}\n\t]\n}" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418113.5, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_3b64342f58eb47ba958e83b27726ddb6", + "parentId": "fld_63e8883cb36c4bc5bc5f7ef328a0fdfe", + "modified": 1705006936944, + "created": 1705006139836, + "url": "{{IRS_HOST}}/irs/orders/{% prompt 'Order ID', '', '', '', false, true %}", + "name": "Cancel order job for given orderId", + "description": "", + "method": "PUT", + "body": { + "mimeType": "application/json", + "text": "{}" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json", + "id": "pair_88db8badf4ea4a0d9968c769167407c8" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418111.25, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_cb1012c1000d4b41b8f6894cbd24e044", + "parentId": "fld_63e8883cb36c4bc5bc5f7ef328a0fdfe", + "modified": 1702991398473, + "created": 1680682418109, + "url": "{{IRS_HOST}}/irs/orders/{% prompt 'Order ID', '', '', '', false, true %}", + "name": "Search for given orderId", + "description": "", + "method": "GET", + "body": {}, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418109, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_defc889a0ee14011b172a573ab655aa0", + "parentId": "fld_63e8883cb36c4bc5bc5f7ef328a0fdfe", + "modified": 1702991409664, + "created": 1680682418099, + "url": "{{IRS_HOST}}/irs/orders/{% prompt 'Order ID', '', '', '', false, true %}/batches/{% prompt 'Batch ID', '', '', '', false, true %}", + "name": "Search for given orderId and batchId", + "description": "", + "method": "GET", + "body": {}, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-API-KEY", + "value": "{{ _.REGULAR_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1680682418099, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_b415b74e1e4d4342966fbf5de4a79f9e", + "parentId": "fld_5a3b5e4a46e543d1b9e95f4f81035a17", + "modified": 1690472186478, + "created": 1678358655308, + "url": "{{ _.CONSUMER_CONTROLPLANE }}/management/v2/catalog/request", + "name": "Get catalog", + "description": "", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": "{\n\t\"@context\": {\n\t\t\"dct\": \"https://purl.org/dc/terms/\",\n\t\t\"tx\": \"https://w3id.org/tractusx/v0.0.1/ns/\",\n\t\t\"edc\": \"https://w3id.org/edc/v0.0.1/ns/\",\n\t\t\"odrl\": \"http://www.w3.org/ns/odrl/2/\",\n\t\t\"dcat\": \"https://www.w3.org/ns/dcat/\",\n\t\t\"dspace\": \"https://w3id.org/dspace/v0.8/\"\n\t},\n\t\"edc:protocol\": \"dataspace-protocol-http\",\n\t\"edc:providerUrl\": \"{{ _.PROVIDER_CONTROLPLANE_1 }}/api/v1/dsp\"\n}" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-Api-Key", + "value": "{{ _.EDC_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1686195722939.1875, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "fld_5a3b5e4a46e543d1b9e95f4f81035a17", + "parentId": "fld_31bb17ac73a340ea93995fe1fa48e47a", + "modified": 1690362660167, + "created": 1690362660167, + "name": "Catalog", + "description": "", + "environment": {}, + "environmentPropertyOrder": null, + "metaSortKey": -1690362660167, + "_type": "request_group" + }, + { + "_id": "fld_31bb17ac73a340ea93995fe1fa48e47a", + "parentId": "fld_91ef19bcb20042be976aaf29a6e80517", + "modified": 1690363778601, + "created": 1675675609576, + "name": "EDC-Requests", + "description": "", + "environment": {}, + "environmentPropertyOrder": null, + "metaSortKey": -1680682418078, + "_type": "request_group" + }, + { + "_id": "req_1dcbb5c5976f424bbcd4f9902f58f1e1", + "parentId": "fld_5a3b5e4a46e543d1b9e95f4f81035a17", + "modified": 1691500654267, + "created": 1685521485278, + "url": "{{ _.CONSUMER_CONTROLPLANE }}/management/v2/catalog/request", + "name": "Get catalog with registry filter", + "description": "", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": "{\n\t\"@context\": {\n\t\t\"dct\": \"https://purl.org/dc/terms/\",\n\t\t\"tx\": \"https://w3id.org/tractusx/v0.0.1/ns/\",\n\t\t\"edc\": \"https://w3id.org/edc/v0.0.1/ns/\",\n\t\t\"odrl\": \"http://www.w3.org/ns/odrl/2/\",\n\t\t\"dcat\": \"https://www.w3.org/ns/dcat/\",\n\t\t\"dspace\": \"https://w3id.org/dspace/v0.8/\"\n\t},\n\t\"edc:providerUrl\": \"{{ _.PROVIDER_CONTROLPLANE_1 }}/api/v1/dsp\",\n\t\"edc:protocol\": \"dataspace-protocol-http\",\n\t\"edc:querySpec\": {\n\t\t\"edc:filterExpression\": {\n\t\t\t\"edc:operandLeft\": \"https://w3id.org/edc/v0.0.1/ns/type\",\n\t\t\t\"edc:operator\": \"=\",\n\t\t\t\"edc:operandRight\": \"data.core.digitalTwinRegistry\"\n\t\t}\n\t}\n}" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-Api-Key", + "value": "{{ _.EDC_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1686195722889.1875, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_0f8a6a9377b6488b847e1e2b07333453", + "parentId": "fld_5a3b5e4a46e543d1b9e95f4f81035a17", + "modified": 1705940987109, + "created": 1691654388376, + "url": "{{ _.CONSUMER_CONTROLPLANE }}/management/v2/catalog/request", + "name": "Get catalog with asset filter", + "description": "", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": "{\n\t\"@context\": {\n\t\t\"dct\": \"https://purl.org/dc/terms/\",\n\t\t\"tx\": \"https://w3id.org/tractusx/v0.0.1/ns/\",\n\t\t\"edc\": \"https://w3id.org/edc/v0.0.1/ns/\",\n\t\t\"odrl\": \"http://www.w3.org/ns/odrl/2/\",\n\t\t\"dcat\": \"https://www.w3.org/ns/dcat/\",\n\t\t\"dspace\": \"https://w3id.org/dspace/v0.8/\"\n\t},\n\t\"edc:providerUrl\": \"{{ _.PROVIDER_CONTROLPLANE_1 }}/api/v1/dsp\",\n\t\"edc:protocol\": \"dataspace-protocol-http\",\n\t\"edc:querySpec\": {\n\t\t\"edc:filterExpression\": {\n\t\t\t\"edc:operandLeft\": \"https://w3id.org/edc/v0.0.1/ns/id\",\n\t\t\t\"edc:operator\": \"=\",\n\t\t\t\"edc:operandRight\": \"{% prompt 'assetId', '', '', '', false, true %}\"\n\t\t}\n\t}\n}" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-Api-Key", + "value": "{{ _.EDC_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1686195722789.1875, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_bf3680c2f8644f94b3bbaae5512ba828", + "parentId": "fld_b7118301ee954c218a0b7b28ef493aff", + "modified": 1691578280640, + "created": 1675675609557, + "url": "{{ _.CONSUMER_CONTROLPLANE }}/management/v2/contractnegotiations", + "name": "Start contract negotiation", + "description": "", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": "{\n\t\"edc:connectorAddress\": \"{{ _.PROVIDER_CONTROLPLANE_1 }}/api/v1/dsp\",\n\t\"edc:connectorId\": \"BPNL00000001CRHK\",\n\t\"edc:offer\": {\n\t\t\"@type\": \"edc:ContractOfferDescription\",\n\t\t\"edc:offerId\": \"ZGR0ci1jeG1lbWJlcnMtY29udHJhY3Q=:ZGlnaXRhbC10d2luLXJlZ2lzdHJ5:OGQ0ZTNkODYtOTIxOC00MjljLWI1N2EtNWZlZTZkODIzMmEx\",\n\t\t\"edc:assetId\": \"digital-twin-registry\",\n\t\t\"edc:policy\": {\n\t\t\t\"@type\": \"odrl:Set\",\n\t\t\t\"odrl:permission\": {\n\t\t\t\t\"odrl:target\": \"digital-twin-registry\",\n\t\t\t\t\"odrl:action\": {\n\t\t\t\t\t\"odrl:type\": \"USE\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"odrl:prohibition\": [],\n\t\t\t\"odrl:obligation\": [],\n\t\t\t\"odrl:target\": \"digital-twin-registry\"\n\t\t}\n\t},\n\t\"edc:protocol\": \"dataspace-protocol-http\",\n\t\"edc:callbackAddresses\": [],\n\t\"@context\": {\n\t\t\"dct\": \"https://purl.org/dc/terms/\",\n\t\t\"tx\": \"https://w3id.org/tractusx/v0.0.1/ns/\",\n\t\t\"edc\": \"https://w3id.org/edc/v0.0.1/ns/\",\n\t\t\"odrl\": \"http://www.w3.org/ns/odrl/2/\",\n\t\t\"dcat\": \"https://www.w3.org/ns/dcat/\",\n\t\t\"dspace\": \"https://w3id.org/dspace/v0.8/\"\n\t}\n}" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-Api-Key", + "value": "{{ _.EDC_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1684146511095, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "fld_b7118301ee954c218a0b7b28ef493aff", + "parentId": "fld_31bb17ac73a340ea93995fe1fa48e47a", + "modified": 1684146626847, + "created": 1684146519491, + "name": "Negotiation", + "description": "", + "environment": {}, + "environmentPropertyOrder": null, + "metaSortKey": -1679911060327.75, + "_type": "request_group" + }, + { + "_id": "req_bf97eddd42c94685b01ec41552ae1943", + "parentId": "fld_b7118301ee954c218a0b7b28ef493aff", + "modified": 1690362123962, + "created": 1675675609549, + "url": "{{ _.CONSUMER_CONTROLPLANE }}/management/v2/contractnegotiations/{% prompt 'id', '', '', '', false, true %}", + "name": "Get contract negotiation", + "description": "", + "method": "GET", + "body": {}, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-Api-Key", + "value": "{{ _.EDC_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1684146511045, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_791cc3305462455c96ab5e5286a5c19d", + "parentId": "fld_b7118301ee954c218a0b7b28ef493aff", + "modified": 1690362117725, + "created": 1685444139708, + "url": "{{ _.CONSUMER_CONTROLPLANE }}/management/v2/contractnegotiations/{% prompt 'id', '', '', '', false, true %}/cancel", + "name": "Cancel contract negotation", + "description": "", + "method": "POST", + "body": {}, + "parameters": [], + "headers": [], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-Api-Key", + "value": "{{ _.EDC_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1684146511020, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_89fd7fa1a9db4118a702aa06db4a0c48", + "parentId": "fld_b7118301ee954c218a0b7b28ef493aff", + "modified": 1690361721223, + "created": 1681911985730, + "url": "{{ _.CONSUMER_CONTROLPLANE }}/management/v2/contractnegotiations/request", + "name": "Get contract negotiations", + "description": "", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": "" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-Api-Key", + "value": "{{ _.EDC_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1684146510995, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_73719cfd0bf9436083b2e8fc8dec207d", + "parentId": "fld_b7118301ee954c218a0b7b28ef493aff", + "modified": 1691578311420, + "created": 1675675609541, + "url": "{{ _.CONSUMER_CONTROLPLANE }}/management/v2/transferprocesses", + "name": "Start transferprocess", + "description": "", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": "{\n\t\"edc:assetId\": \"digital-twin-registry\",\n\t\"edc:connectorAddress\": \"{{ _.PROVIDER_CONTROLPLANE_1 }}/api/v1/dsp\",\n\t\"edc:contractId\": \"ZGR0ci1jeG1lbWJlcnMtY29udHJhY3Q=:ZGlnaXRhbC10d2luLXJlZ2lzdHJ5:NGNlMDk0ODgtOTMzYy00ZDk3LThiNTAtNDMyZWRjMzIwM2Fm\",\n\t\"edc:dataDestination\": {\n\t\t\"edc:type\": \"HttpProxy\"\n\t},\n\t\"edc:protocol\": \"dataspace-protocol-http\",\n\t\"edc:managedResources\": false,\n\t\"edc:connectorId\": \"BPNL00000001CRHK\",\n\t\"@context\": {\n\t\t\"dct\": \"https://purl.org/dc/terms/\",\n\t\t\"tx\": \"https://w3id.org/tractusx/v0.0.1/ns/\",\n\t\t\"edc\": \"https://w3id.org/edc/v0.0.1/ns/\",\n\t\t\"odrl\": \"http://www.w3.org/ns/odrl/2/\",\n\t\t\"dcat\": \"https://www.w3.org/ns/dcat/\",\n\t\t\"dspace\": \"https://w3id.org/dspace/v0.8/\"\n\t}\n}" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-Api-Key", + "value": "{{ _.EDC_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1684146510945, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_2d5c4f48173040fe877f75bb122241f0", + "parentId": "fld_b7118301ee954c218a0b7b28ef493aff", + "modified": 1691503370103, + "created": 1679993996270, + "url": "{{ _.CONSUMER_CONTROLPLANE }}/management/v2/transferprocesses/{% prompt 'id', '', '', '', false, true %}", + "name": "Get transferprocess by id", + "description": "", + "method": "GET", + "body": {}, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-Api-Key", + "value": "{{ _.EDC_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1684146510895, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_34851b9a4e2a476d97e12a521f333162", + "parentId": "fld_b7118301ee954c218a0b7b28ef493aff", + "modified": 1690361795179, + "created": 1675675609525, + "url": "{{ _.CONSUMER_CONTROLPLANE }}/management/v2/transferprocesses/request", + "name": "Get transferprocesses", + "description": "", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": "" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-Api-Key", + "value": "{{ _.EDC_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1684146510845, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_3379be736ec7421b8184a3a97e1f97b7", + "parentId": "fld_b7118301ee954c218a0b7b28ef493aff", + "modified": 1690361763512, + "created": 1681910653593, + "url": "{{CONSUMER_CONTROLPLANE}}/management/v2/contractagreements/request", + "name": "Get contract agreements", + "description": "", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": "" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-Api-Key", + "value": "{{ _.EDC_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1684146510795, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_9be9ba8510fc4cc58b804e244b3d2578", + "parentId": "fld_0ba7abd072014dd49a9c4c4bb5b0ce89", + "modified": 1690362947546, + "created": 1681907482278, + "url": "{{ _.PROVIDER_CONTROLPLANE_1 }}/management/v2/assets", + "name": "Create Asset", + "description": "", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": "{\n\t\"@context\": {},\n\t\"asset\": {\n\t\t\"@id\": \"asset-id\",\n\t\t\"properties\": {\n\t\t\t\"description\": \"IRS EDC Demo Asset\"\n\t\t}\n\t},\n\t\"dataAddress\": {\n\t\t\"@type\": \"DataAddress\",\n\t\t\"type\": \"HttpData\",\n\t\t\"baseUrl\": \"http://backend-url/data/asset-id\",\n\t\t\"contentType\": \"application-json\",\n\t\t\"proxyPath\": \"false\",\n\t\t\"proxyBody\": \"false\",\n\t\t\"proxyMethod\": \"false\",\n\t\t\"proxyQueryParams\": \"false\"\n\t}\n}" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-Api-Key", + "value": "{{ _.EDC_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1679911033461.75, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "fld_0ba7abd072014dd49a9c4c4bb5b0ce89", + "parentId": "fld_31bb17ac73a340ea93995fe1fa48e47a", + "modified": 1705940929752, + "created": 1684146457388, + "name": "Provider", + "description": "", + "environment": {}, + "environmentPropertyOrder": null, + "metaSortKey": -1678852197613.5625, + "_type": "request_group" + }, + { + "_id": "req_364b19a6ef7748a08d9e9bcc7f37c39b", + "parentId": "fld_0ba7abd072014dd49a9c4c4bb5b0ce89", + "modified": 1690362407763, + "created": 1685444139630, + "url": "{{ _.PROVIDER_CONTROLPLANE_1 }}/management/v2/assets/{% prompt 'id', '', '', '', false, true %}", + "name": "Get Asset by ID", + "description": "", + "method": "GET", + "body": {}, + "parameters": [], + "headers": [], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-Api-Key", + "value": "{{ _.EDC_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1679911033452.375, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_5aa04951c7f04c77a20ee53c3c46f064", + "parentId": "fld_0ba7abd072014dd49a9c4c4bb5b0ce89", + "modified": 1690362438115, + "created": 1685444139625, + "url": "{{ _.PROVIDER_CONTROLPLANE_1 }}/management/v2/assets/request", + "name": "Get all Assets", + "description": "", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": "" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-Api-Key", + "value": "{{ _.EDC_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1679911033447.6875, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_f08045197cd540a0a8345a28fb67e444", + "parentId": "fld_0ba7abd072014dd49a9c4c4bb5b0ce89", + "modified": 1690362400081, + "created": 1685444139636, + "url": "{{ _.PROVIDER_CONTROLPLANE_1 }}/management/v2/assets/{% prompt 'id', '', '', '', false, true %}", + "name": "Delete Asset", + "description": "", + "method": "DELETE", + "body": {}, + "parameters": [], + "headers": [], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-Api-Key", + "value": "{{ _.EDC_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1679911033433.625, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_c14c05ad601c42f8b43e7b1fdb5f5908", + "parentId": "fld_0ba7abd072014dd49a9c4c4bb5b0ce89", + "modified": 1690362581978, + "created": 1685444139641, + "url": "{{ _.PROVIDER_CONTROLPLANE_1 }}/management/v2/policydefinitions", + "name": "Create Policy", + "description": "", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": "{\n\t\"@context\": {\n\t\t\"odrl\": \"http://www.w3.org/ns/odrl/2/\"\n\t},\n\t\"@id\": \"policy-id\",\n\t\"policy\": {\n\t\t\"odrl:permission\": [\n\t\t\t{\n\t\t\t\t\"odrl:action\": \"USE\",\n\t\t\t\t\"odrl:constraint\": {\n\t\t\t\t\t\"odrl:and\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"odrl:leftOperand\": \"Membership\",\n\t\t\t\t\t\t\t\"odrl:operator\": {\n\t\t\t\t\t\t\t\t\"@id\": \"odrl:eq\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"odrl:rightOperand\": \"active\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"odrl:leftOperand\": \"PURPOSE\",\n\t\t\t\t\t\t\t\"odrl:operator\": {\n\t\t\t\t\t\t\t\t\"@id\": \"odrl:eq\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"odrl:rightOperand\": \"ID 3.1 Trace\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t}\n\t\t]\n\t}\n}" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-Api-Key", + "value": "{{ _.EDC_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1679911033403.9375, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_f7c456432c574ad2a58d9978cd3cb4e7", + "parentId": "fld_0ba7abd072014dd49a9c4c4bb5b0ce89", + "modified": 1690362549290, + "created": 1685444139647, + "url": "{{ _.PROVIDER_CONTROLPLANE_1 }}/management/v2/policydefinitions/{% prompt 'id', '', '', '', false, true %}", + "name": "Get Policy by ID", + "description": "", + "method": "GET", + "body": {}, + "parameters": [], + "headers": [], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-Api-Key", + "value": "{{ _.EDC_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1679911033364.0938, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_a1368a5545b34896aeaad49db9bdf441", + "parentId": "fld_0ba7abd072014dd49a9c4c4bb5b0ce89", + "modified": 1690362591799, + "created": 1685444139653, + "url": "{{ _.PROVIDER_CONTROLPLANE_1 }}/management/v2/policydefinitions/request", + "name": "Get all Policies", + "description": "", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": "" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-Api-Key", + "value": "{{ _.EDC_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1679911033344.1719, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_0de8ad3bf4814cb5a33018068257d382", + "parentId": "fld_0ba7abd072014dd49a9c4c4bb5b0ce89", + "modified": 1690362559324, + "created": 1685444139659, + "url": "{{ _.PROVIDER_CONTROLPLANE_1 }}/management/v2/policydefinitions/{% prompt 'id', '', '', '', false, true %}", + "name": "Delte Policy by ID", + "description": "", + "method": "DELETE", + "body": {}, + "parameters": [], + "headers": [], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-Api-Key", + "value": "{{ _.EDC_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1679911033299.25, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_862d1ebd25b047d0b780ed937d9dfd19", + "parentId": "fld_0ba7abd072014dd49a9c4c4bb5b0ce89", + "modified": 1690363080444, + "created": 1685444139665, + "url": "{{ _.PROVIDER_CONTROLPLANE_1 }}/management/v2/contractdefinitions", + "name": "Create Contract Definitinion", + "description": "", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": "{\n \"@context\": {\n \"edc\": \"https://w3id.org/edc/v0.0.1/ns/\"\n },\n \"@type\": \"ContractDefinition\",\n \"accessPolicyId\": \"policy-id\",\n \"contractPolicyId\": \"policy-id\",\n \"assetsSelector\": {\n \"operandLeft\": \"https://w3id.org/edc/v0.0.1/ns/id\",\n \"operator\": \"=\",\n \"operandRight\": \"asset-id\"\n }\n}" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-Api-Key", + "value": "{{ _.EDC_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1679911033261.75, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_1b029137e2fb497994dd611376961682", + "parentId": "fld_0ba7abd072014dd49a9c4c4bb5b0ce89", + "modified": 1690362691392, + "created": 1685444139672, + "url": "{{ _.PROVIDER_CONTROLPLANE_1 }}/management/v2/contractdefinitions/{% prompt 'id', '', '', '', false, true %}", + "name": "Get Contract Definition by ID", + "description": "", + "method": "GET", + "body": {}, + "parameters": [], + "headers": [], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-Api-Key", + "value": "{{ _.EDC_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1679911033199.25, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_e3df4e9843c240c5b2586f131185fd5d", + "parentId": "fld_0ba7abd072014dd49a9c4c4bb5b0ce89", + "modified": 1690363126919, + "created": 1685444139678, + "url": "{{ _.PROVIDER_CONTROLPLANE_1 }}/management/v2/contractdefinitions/request", + "name": "Get all Contract Definitinions", + "description": "", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": "" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-Api-Key", + "value": "{{ _.EDC_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1679911033174.25, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_8587be05210d448f8aafbd3479aeeddc", + "parentId": "fld_0ba7abd072014dd49a9c4c4bb5b0ce89", + "modified": 1690363136216, + "created": 1685444139684, + "url": "{{ _.PROVIDER_CONTROLPLANE_1 }}/management/v2/contractdefinitions/{% prompt 'id', '', '', '', false, true %}", + "name": "Delte Contract Definition", + "description": "", + "method": "DELETE", + "body": { + "mimeType": "application/json", + "text": "" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json" + } + ], + "authentication": { + "type": "apikey", + "disabled": false, + "key": "X-Api-Key", + "value": "{{ _.EDC_API_KEY }}", + "addTo": "header" + }, + "metaSortKey": -1679911033149.25, + "isPrivate": false, + "pathParameters": [], + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "env_4161dfad2a143d9b5b04ad55ef46180b706186ca", + "parentId": "wrk_ca9b08d813264d90b6386f58ed14c80e", + "modified": 1709646966620, + "created": 1709646966620, + "name": "Base Environment", + "data": {}, + "dataPropertyOrder": null, + "color": null, + "isPrivate": false, + "metaSortKey": 1709646966620, + "_type": "environment" + }, + { + "_id": "jar_4161dfad2a143d9b5b04ad55ef46180b706186ca", + "parentId": "wrk_ca9b08d813264d90b6386f58ed14c80e", + "modified": 1709646966628, + "created": 1709646966628, + "name": "Default Jar", + "cookies": [], + "_type": "cookie_jar" + } + ] } \ No newline at end of file