From d0a40d302da08ab7221f0c18d5dd26ce13e5fb1a Mon Sep 17 00:00:00 2001 From: Dana Sunalova <94854543+DanaSunal@users.noreply.github.com> Date: Tue, 20 Feb 2024 07:44:24 +0100 Subject: [PATCH 01/12] issue-509 : new param for createOrUpdateApplicationLtpsAsync (#510) Signed-off-by: Dana Sunalova --- server/service/IndividualServicesService.js | 210 ++++++++------------ 1 file changed, 86 insertions(+), 124 deletions(-) diff --git a/server/service/IndividualServicesService.js b/server/service/IndividualServicesService.js index 49f86af..7b22bc3 100644 --- a/server/service/IndividualServicesService.js +++ b/server/service/IndividualServicesService.js @@ -1,7 +1,9 @@ +// @ts-check 'use strict'; const LogicalTerminationPointConfigurationInput = require('onf-core-model-ap/applicationPattern/onfModel/services/models/logicalTerminationPoint/ConfigurationInput'); const LogicalTerminationPointService = require('onf-core-model-ap/applicationPattern/onfModel/services/LogicalTerminationPointServices'); +const ServiceUtils = require('onf-core-model-ap-bs/basicServices/utility/LogicalTerminationPoint'); const ForwardingConfigurationService = require('onf-core-model-ap/applicationPattern/onfModel/services/ForwardingConstructConfigurationServices'); const ForwardingAutomationService = require('onf-core-model-ap/applicationPattern/onfModel/services/ForwardingConstructAutomationServices'); const prepareForwardingConfiguration = require('./individualServices/PrepareForwardingConfiguration'); @@ -48,90 +50,75 @@ const NEW_RELEASE_FORWARDING_NAME = 'PromptForBequeathingDataCausesTransferOfLis * customerJourney String Holds information supporting customer’s journey to which the execution applies * no response value expected for this operation **/ -exports.bequeathYourDataAndDie = function (body, user, originator, xCorrelator, traceIndicator, customerJourney, operationServerName) { - return new Promise(async function (resolve, reject) { - try { - - /**************************************************************************************** - * Setting up required local variables from the request body - ****************************************************************************************/ - let applicationName = body["new-application-name"]; - let releaseNumber = body["new-application-release"]; - let applicationProtocol = body["new-application-protocol"]; - let applicationAddress = body["new-application-address"]; - let applicationPort = body["new-application-port"]; - - /**************************************************************************************** - * Prepare logicalTerminatinPointConfigurationInput object to - * configure logical-termination-point - ****************************************************************************************/ - - const appNameAndUuidFromForwarding = await resolveApplicationNameAndHttpClientLtpUuidFromForwardingName('PromptForBequeathingDataCausesNewApplicationBeingRequestedToInquireForApplicationTypeApprovals'); - if (appNameAndUuidFromForwarding?.httpClientLtpUuid == undefined) { - reject(new createHttpError.BadRequest(`The new-release ${applicationName} was not found.`)); - return; - } +exports.bequeathYourDataAndDie = async function (body, user, originator, xCorrelator, traceIndicator, customerJourney, operationServerName) { + let applicationName = body["new-application-name"]; + let releaseNumber = body["new-application-release"]; + let applicationProtocol = body["new-application-protocol"]; + let applicationAddress = body["new-application-address"]; + let applicationPort = body["new-application-port"]; - - let logicalTerminationPointConfigurationStatus = {}; - let newReleaseHttpClientLtpUuid = appNameAndUuidFromForwarding.httpClientLtpUuid; - if (newReleaseHttpClientLtpUuid != undefined) { - let isReleaseUpdated = await httpClientInterface.setReleaseNumberAsync(newReleaseHttpClientLtpUuid, releaseNumber); - let isApplicationNameUpdated = await httpClientInterface.setApplicationNameAsync(newReleaseHttpClientLtpUuid, applicationName); - - if (isReleaseUpdated || isApplicationNameUpdated) { - let configurationStatus = new ConfigurationStatus( - newReleaseHttpClientLtpUuid, - undefined, - true); - logicalTerminationPointConfigurationStatus.httpClientConfigurationStatus = configurationStatus; - } - // ALT should know about this change + /**************************************************************************************** + * Prepare logicalTerminatinPointConfigurationInput object to + * configure logical-termination-point + ****************************************************************************************/ - let newReleaseTcpClientUuidList = await logicalTerminationPoint.getServerLtpListAsync(newReleaseHttpClientLtpUuid); - let newReleaseTcpClientUuid = newReleaseTcpClientUuidList[0]; + const newReleaseApplicationName = await ServiceUtils.resolveApplicationNameFromForwardingAsync("PromptForBequeathingDataCausesNewApplicationBeingRequestedToInquireForApplicationTypeApprovals"); + if (newReleaseApplicationName === undefined) { + throw new createHttpError.BadRequest(`The new-release ${applicationName} was not found.`); + } + + let ltpConfigurationStatus = {}; + let newReleaseHttpClientLtpUuid = await httpClientInterface.getHttpClientUuidFromForwarding("PromptForBequeathingDataCausesNewApplicationBeingRequestedToInquireForApplicationTypeApprovals"); + if (newReleaseHttpClientLtpUuid != undefined) { + let isReleaseUpdated = await httpClientInterface.setReleaseNumberAsync(newReleaseHttpClientLtpUuid, releaseNumber); + let isApplicationNameUpdated = await httpClientInterface.setApplicationNameAsync(newReleaseHttpClientLtpUuid, applicationName); + + if (isReleaseUpdated || isApplicationNameUpdated) { + let configurationStatus = new ConfigurationStatus( + newReleaseHttpClientLtpUuid, + '', + true); + ltpConfigurationStatus.httpClientConfigurationStatus = configurationStatus; + } + // ALT should know about this change - let isProtocolUpdated = await tcpClientInterface.setRemoteProtocolAsync(newReleaseTcpClientUuid, applicationProtocol); - let isAddressUpdated = await tcpClientInterface.setRemoteAddressAsync(newReleaseTcpClientUuid, applicationAddress); - let isPortUpdated = await tcpClientInterface.setRemotePortAsync(newReleaseTcpClientUuid, applicationPort); + let newReleaseTcpClientUuidList = await logicalTerminationPoint.getServerLtpListAsync(newReleaseHttpClientLtpUuid); + let newReleaseTcpClientUuid = newReleaseTcpClientUuidList[0]; - if (isProtocolUpdated || isAddressUpdated || isPortUpdated) { - let configurationStatus = new ConfigurationStatus( - newReleaseTcpClientUuid, - undefined, - true); - logicalTerminationPointConfigurationStatus.tcpClientConfigurationStatusList = [configurationStatus]; - } - let forwardingAutomationInputList; - if (logicalTerminationPointConfigurationStatus != undefined) { + let isProtocolUpdated = await tcpClientInterface.setRemoteProtocolAsync(newReleaseTcpClientUuid, applicationProtocol); + let isAddressUpdated = await tcpClientInterface.setRemoteAddressAsync(newReleaseTcpClientUuid, applicationAddress); + let isPortUpdated = await tcpClientInterface.setRemotePortAsync(newReleaseTcpClientUuid, applicationPort); - /**************************************************************************************** - * Prepare attributes to automate forwarding-construct - ****************************************************************************************/ - forwardingAutomationInputList = await prepareForwardingAutomation.bequeathYourDataAndDie( - logicalTerminationPointConfigurationStatus - ); - ForwardingAutomationService.automateForwardingConstructAsync( - operationServerName, - forwardingAutomationInputList, - user, - xCorrelator, - traceIndicator, - customerJourney - ); - } - softwareUpgrade.upgradeSoftwareVersion(user, xCorrelator, traceIndicator, customerJourney,forwardingAutomationInputList.length) - .catch(err => console.log(`upgradeSoftwareVersion failed with error: ${err}`)); + if (isProtocolUpdated || isAddressUpdated || isPortUpdated) { + let configurationStatus = new ConfigurationStatus( + newReleaseTcpClientUuid, + '', + true); + ltpConfigurationStatus.tcpClientConfigurationStatusList = [configurationStatus]; + } + let forwardingAutomationInputList; + if (ltpConfigurationStatus != undefined) { - } - resolve(); - } catch (error) { - reject(error); + /**************************************************************************************** + * Prepare attributes to automate forwarding-construct + ****************************************************************************************/ + forwardingAutomationInputList = await prepareForwardingAutomation.bequeathYourDataAndDie( + ltpConfigurationStatus + ); + ForwardingAutomationService.automateForwardingConstructAsync( + operationServerName, + forwardingAutomationInputList, + user, + xCorrelator, + traceIndicator, + customerJourney + ); } - }); + softwareUpgrade.upgradeSoftwareVersion(user, xCorrelator, traceIndicator, customerJourney,forwardingAutomationInputList.length) + .catch(err => console.log(`upgradeSoftwareVersion failed with error: ${err}`)); + } } - /** * Removes an application * @@ -216,8 +203,8 @@ exports.inquireApplicationTypeApprovals = async function (body, user, originator let applicationPort = body["approval-application-port"]; let approvalOperation = body["approval-operation"]; - const appNameAndUuidFromForwarding = await resolveApplicationNameAndHttpClientLtpUuidFromForwardingName('RegistrationCausesInquiryForApplicationTypeApproval'); - if (appNameAndUuidFromForwarding?.applicationName !== applicationName) { + const tarApplicationName = await ServiceUtils.resolveApplicationNameFromForwardingAsync("RegistrationCausesInquiryForApplicationTypeApproval"); + if (tarApplicationName !== applicationName) { throw new createHttpError.BadRequest(`The approval-application ${applicationName} was not found.`); } @@ -234,7 +221,7 @@ exports.inquireApplicationTypeApprovals = async function (body, user, originator let httpClientUuid = await httpClientInterface.getHttpClientUuidAsync( applicationName, releaseNumber ); - let logicalTerminationPointConfigurationInput = new LogicalTerminationPointConfigurationInput( + let lpConfigurationInput = new LogicalTerminationPointConfigurationInput( httpClientUuid, applicationName, releaseNumber, @@ -246,7 +233,7 @@ exports.inquireApplicationTypeApprovals = async function (body, user, originator let ltpConfigurationStatus; if (httpClientUuid) { ltpConfigurationStatus = await LogicalTerminationPointService.createOrUpdateApplicationLtpsAsync( - logicalTerminationPointConfigurationInput + lpConfigurationInput, false ); } @@ -346,7 +333,7 @@ exports.notifyApprovals = async function (body, user, originator, xCorrelator, t applicationName, releaseNumber ); - let logicalTerminatinPointConfigurationInput = new LogicalTerminationPointConfigurationInput( + const ltpConfigurationInput = new LogicalTerminationPointConfigurationInput( httpClientLtpUuid, applicationName, releaseNumber, @@ -355,8 +342,10 @@ exports.notifyApprovals = async function (body, user, originator, xCorrelator, t operationNamesByAttributes, individualServicesOperationsMapping.individualServicesOperationsMapping ); - let ltpConfigurationStatus = await LogicalTerminationPointService.createOrUpdateApplicationLtpsAsync( - logicalTerminatinPointConfigurationInput + const roApplicationName = await ServiceUtils.resolveRegistryOfficeApplicationNameFromForwardingAsync(); + const ltpConfigurationStatus = await LogicalTerminationPointService.createOrUpdateApplicationLtpsAsync( + ltpConfigurationInput, + roApplicationName === applicationName ); /**************************************************************************************** @@ -428,7 +417,7 @@ exports.notifyDeregistrations = async function (body, user, originator, xCorrela applicationName, releaseNumber ); - let logicalTerminatinPointConfigurationInput = new LogicalTerminationPointConfigurationInput( + const ltpConfigurationInput = new LogicalTerminationPointConfigurationInput( httpClientLtpUuid, applicationName, releaseNumber, @@ -437,8 +426,10 @@ exports.notifyDeregistrations = async function (body, user, originator, xCorrela operationNamesByAttributes, individualServicesOperationsMapping.individualServicesOperationsMapping ); - let ltpConfigurationStatus = await LogicalTerminationPointService.createOrUpdateApplicationLtpsAsync( - logicalTerminatinPointConfigurationInput + const roApplicationName = await ServiceUtils.resolveRegistryOfficeApplicationNameFromForwardingAsync(); + const ltpConfigurationStatus = await LogicalTerminationPointService.createOrUpdateApplicationLtpsAsync( + ltpConfigurationInput, + roApplicationName === applicationName ); /**************************************************************************************** @@ -512,7 +503,7 @@ exports.notifyWithdrawnApprovals = async function (body, user, originator, xCorr applicationName, releaseNumber ); - let logicalTerminatinPointConfigurationInput = new LogicalTerminationPointConfigurationInput( + const ltpConfigurationInput = new LogicalTerminationPointConfigurationInput( httpClientUuid, applicationName, releaseNumber, @@ -521,8 +512,10 @@ exports.notifyWithdrawnApprovals = async function (body, user, originator, xCorr operationNamesByAttributes, individualServicesOperationsMapping.individualServicesOperationsMapping ); - let ltpConfigurationStatus = await LogicalTerminationPointService.createOrUpdateApplicationLtpsAsync( - logicalTerminatinPointConfigurationInput + const roApplicationName = await ServiceUtils.resolveRegistryOfficeApplicationNameFromForwardingAsync(); + const ltpConfigurationStatus = await LogicalTerminationPointService.createOrUpdateApplicationLtpsAsync( + ltpConfigurationInput, + roApplicationName === applicationName ); /**************************************************************************************** @@ -602,7 +595,7 @@ exports.registerApplication = async function (body, user, originator, xCorrelato let httpClientUuid = await httpClientInterface.getHttpClientUuidExcludingOldReleaseAndNewRelease( applicationName, releaseNumber, NEW_RELEASE_FORWARDING_NAME ); - let logicalTerminatinPointConfigurationInput = new LogicalTerminationPointConfigurationInput( + const ltpConfigurationInput = new LogicalTerminationPointConfigurationInput( httpClientUuid, applicationName, releaseNumber, @@ -611,8 +604,10 @@ exports.registerApplication = async function (body, user, originator, xCorrelato operationNamesByAttributes, individualServicesOperationsMapping.individualServicesOperationsMapping ); - let ltpConfigurationStatus = await LogicalTerminationPointService.createOrUpdateApplicationLtpsAsync( - logicalTerminatinPointConfigurationInput + const roApplicationName = await ServiceUtils.resolveRegistryOfficeApplicationNameFromForwardingAsync(); + const ltpConfigurationStatus = await LogicalTerminationPointService.createOrUpdateApplicationLtpsAsync( + ltpConfigurationInput, + roApplicationName === applicationName ); await ApplicationPreceedingVersion.addEntryToPreceedingVersionList( @@ -1206,39 +1201,6 @@ function getApiSegmentOfOperationClient(operationClientUuid) { return APISegment; } -async function resolveApplicationNameAndHttpClientLtpUuidFromForwardingName(forwardingName) { - const forwardingConstruct = await ForwardingDomain.getForwardingConstructForTheForwardingNameAsync(forwardingName); - if (forwardingConstruct === undefined) { - return null; - } - - let fcPortOutputDirectionLogicalTerminationPointList = []; - const fcPortList = forwardingConstruct[onfAttributes.FORWARDING_CONSTRUCT.FC_PORT]; - for (const fcPort of fcPortList) { - const portDirection = fcPort[onfAttributes.FC_PORT.PORT_DIRECTION]; - if (FcPort.portDirectionEnum.OUTPUT === portDirection) { - fcPortOutputDirectionLogicalTerminationPointList.push(fcPort[onfAttributes.FC_PORT.LOGICAL_TERMINATION_POINT]); - } - } - - if (fcPortOutputDirectionLogicalTerminationPointList.length !== 1) { - return null; - } - - const opLtpUuid = fcPortOutputDirectionLogicalTerminationPointList[0]; - const httpLtpUuidList = await LogicalTerminationPoint.getServerLtpListAsync(opLtpUuid); - const httpClientLtpUuid = httpLtpUuidList[0]; - const applicationName = await httpClientInterface.getApplicationNameAsync(httpClientLtpUuid); - return applicationName === undefined ? { - applicationName: null, - httpClientLtpUuid - } : { - applicationName, - httpClientLtpUuid - }; -} - - async function resolveApplicationNameAndHttpClientLtpUuidFromForwardingNameOfTypeSubscription(forwardingName, applicationName, releaseNumber) { let httpClientUuidOfTheSubscribedApplication = undefined; const forwardingConstruct = await ForwardingDomain.getForwardingConstructForTheForwardingNameAsync(forwardingName); From eaa562a186221f2aca3519edff739a22729e5a80 Mon Sep 17 00:00:00 2001 From: Prathiba Jeevan <62344562+PrathibaJee@users.noreply.github.com> Date: Tue, 23 Jul 2024 18:54:36 +0200 Subject: [PATCH 02/12] To merge V2.1.1_impl to develop and to main to publish (#594) Fixes #588 --- server/service/IndividualServicesService.js | 880 ++++++++------------ 1 file changed, 364 insertions(+), 516 deletions(-) diff --git a/server/service/IndividualServicesService.js b/server/service/IndividualServicesService.js index 7b22bc3..227d50c 100644 --- a/server/service/IndividualServicesService.js +++ b/server/service/IndividualServicesService.js @@ -1,8 +1,8 @@ // @ts-check 'use strict'; -const LogicalTerminationPointConfigurationInput = require('onf-core-model-ap/applicationPattern/onfModel/services/models/logicalTerminationPoint/ConfigurationInput'); -const LogicalTerminationPointService = require('onf-core-model-ap/applicationPattern/onfModel/services/LogicalTerminationPointServices'); +const LogicalTerminationPointConfigurationInput = require('onf-core-model-ap/applicationPattern/onfModel/services/models/logicalTerminationPoint/ConfigurationInputV2'); +const LogicalTerminationPointService = require('onf-core-model-ap/applicationPattern/onfModel/services/LogicalTerminationPointServicesV2'); const ServiceUtils = require('onf-core-model-ap-bs/basicServices/utility/LogicalTerminationPoint'); const ForwardingConfigurationService = require('onf-core-model-ap/applicationPattern/onfModel/services/ForwardingConstructConfigurationServices'); const ForwardingAutomationService = require('onf-core-model-ap/applicationPattern/onfModel/services/ForwardingConstructAutomationServices'); @@ -13,31 +13,26 @@ const ConfigurationStatus = require('onf-core-model-ap/applicationPattern/onfMod const httpServerInterface = require('onf-core-model-ap/applicationPattern/onfModel/models/layerProtocols/HttpServerInterface'); const tcpServerInterface = require('onf-core-model-ap/applicationPattern/onfModel/models/layerProtocols/TcpServerInterface'); const operationServerInterface = require('onf-core-model-ap/applicationPattern/onfModel/models/layerProtocols/OperationServerInterface'); -const operationClientInterface = require('onf-core-model-ap/applicationPattern/onfModel/models/layerProtocols/OperationClientInterface'); const httpClientInterface = require('onf-core-model-ap/applicationPattern/onfModel/models/layerProtocols/HttpClientInterface'); +const OperationClientInterface = require('onf-core-model-ap/applicationPattern/onfModel/models/layerProtocols/OperationClientInterface'); const onfAttributeFormatter = require('onf-core-model-ap/applicationPattern/onfModel/utility/OnfAttributeFormatter'); const consequentAction = require('onf-core-model-ap/applicationPattern/rest/server/responseBody/ConsequentAction'); const responseValue = require('onf-core-model-ap/applicationPattern/rest/server/responseBody/ResponseValue'); -const onfPaths = require('onf-core-model-ap/applicationPattern/onfModel/constants/OnfPaths'); -const onfAttributes = require('onf-core-model-ap/applicationPattern/onfModel/constants/OnfAttributes'); const logicalTerminationPoint = require('onf-core-model-ap/applicationPattern/onfModel/models/LogicalTerminationPoint'); const tcpClientInterface = require('onf-core-model-ap/applicationPattern/onfModel/models/layerProtocols/TcpClientInterface'); -const ForwardingDomain = require('onf-core-model-ap/applicationPattern/onfModel/models/ForwardingDomain'); -const ForwardingConstruct = require('onf-core-model-ap/applicationPattern/onfModel/models/ForwardingConstruct'); const FcPort = require('onf-core-model-ap/applicationPattern/onfModel/models/FcPort'); const MonitorTypeApprovalChannel = require('./individualServices/MonitorTypeApprovalChannel'); const ApplicationPreceedingVersion = require('./individualServices/ApplicationPreceedingVersion'); -const HttpClientInterface = require('onf-core-model-ap/applicationPattern/onfModel/models/layerProtocols/HttpClientInterface'); -const ResponseProfile = require('onf-core-model-ap/applicationPattern/onfModel/models/profile/ResponseProfile'); -const ProfileCollection = require('onf-core-model-ap/applicationPattern/onfModel/models/ProfileCollection'); const individualServicesOperationsMapping = require('./individualServices/IndividualServicesOperationsMapping'); -const LogicalTerminationPoint = require('onf-core-model-ap/applicationPattern/onfModel/models/LogicalTerminationPoint'); -const OperationClientInterface = require('onf-core-model-ap/applicationPattern/onfModel/models/layerProtocols/OperationClientInterface'); const genericRepresentation = require('onf-core-model-ap-bs/basicServices/GenericRepresentation'); const createHttpError = require('http-errors'); const TcpObject = require('onf-core-model-ap/applicationPattern/onfModel/services/models/TcpObject'); +const RegardUpdatedApprovalProcess = require('./individualServices/RegardUpdatedApprovalProcess'); +const IndividualServicesUtility = require('./individualServices/IndividualServicesUtility'); const NEW_RELEASE_FORWARDING_NAME = 'PromptForBequeathingDataCausesTransferOfListOfAlreadyRegisteredApplications'; +const AsyncLock = require('async-lock'); +const lock = new AsyncLock(); /** * Initiates process of embedding a new release @@ -51,74 +46,82 @@ const NEW_RELEASE_FORWARDING_NAME = 'PromptForBequeathingDataCausesTransferOfLis * no response value expected for this operation **/ exports.bequeathYourDataAndDie = async function (body, user, originator, xCorrelator, traceIndicator, customerJourney, operationServerName) { - let applicationName = body["new-application-name"]; - let releaseNumber = body["new-application-release"]; - let applicationProtocol = body["new-application-protocol"]; - let applicationAddress = body["new-application-address"]; - let applicationPort = body["new-application-port"]; - - /**************************************************************************************** - * Prepare logicalTerminatinPointConfigurationInput object to - * configure logical-termination-point - ****************************************************************************************/ + try { - const newReleaseApplicationName = await ServiceUtils.resolveApplicationNameFromForwardingAsync("PromptForBequeathingDataCausesNewApplicationBeingRequestedToInquireForApplicationTypeApprovals"); - if (newReleaseApplicationName === undefined) { - throw new createHttpError.BadRequest(`The new-release ${applicationName} was not found.`); - } - - let ltpConfigurationStatus = {}; - let newReleaseHttpClientLtpUuid = await httpClientInterface.getHttpClientUuidFromForwarding("PromptForBequeathingDataCausesNewApplicationBeingRequestedToInquireForApplicationTypeApprovals"); - if (newReleaseHttpClientLtpUuid != undefined) { - let isReleaseUpdated = await httpClientInterface.setReleaseNumberAsync(newReleaseHttpClientLtpUuid, releaseNumber); - let isApplicationNameUpdated = await httpClientInterface.setApplicationNameAsync(newReleaseHttpClientLtpUuid, applicationName); - - if (isReleaseUpdated || isApplicationNameUpdated) { - let configurationStatus = new ConfigurationStatus( - newReleaseHttpClientLtpUuid, - '', - true); - ltpConfigurationStatus.httpClientConfigurationStatus = configurationStatus; + /**************************************************************************************** + * Setting up required local variables from the request body + ****************************************************************************************/ + let applicationName = body["new-application-name"]; + let releaseNumber = body["new-application-release"]; + let applicationProtocol = body["new-application-protocol"]; + let applicationAddress = body["new-application-address"]; + let applicationPort = body["new-application-port"]; + + /**************************************************************************************** + * Prepare logicalTerminatinPointConfigurationInput object to + * configure logical-termination-point + ****************************************************************************************/ + + const newReleaseApplicationName = await ServiceUtils.resolveApplicationNameFromForwardingAsync("PromptForBequeathingDataCausesNewApplicationBeingRequestedToInquireForApplicationTypeApprovals"); + if (newReleaseApplicationName === undefined) { + throw new createHttpError.BadRequest(`The new-release ${applicationName} was not found.`); } - // ALT should know about this change - let newReleaseTcpClientUuidList = await logicalTerminationPoint.getServerLtpListAsync(newReleaseHttpClientLtpUuid); - let newReleaseTcpClientUuid = newReleaseTcpClientUuidList[0]; + let ltpConfigurationStatus = {}; + let newReleaseHttpClientLtpUuid = await httpClientInterface.getHttpClientUuidFromForwarding("PromptForBequeathingDataCausesNewApplicationBeingRequestedToInquireForApplicationTypeApprovals"); + if (newReleaseHttpClientLtpUuid != undefined) { + let isReleaseUpdated = await httpClientInterface.setReleaseNumberAsync(newReleaseHttpClientLtpUuid, releaseNumber); + let isApplicationNameUpdated = await httpClientInterface.setApplicationNameAsync(newReleaseHttpClientLtpUuid, applicationName); + + if (isReleaseUpdated || isApplicationNameUpdated) { + let configurationStatus = new ConfigurationStatus( + newReleaseHttpClientLtpUuid, + '', + true); + ltpConfigurationStatus.httpClientConfigurationStatus = configurationStatus; + } - let isProtocolUpdated = await tcpClientInterface.setRemoteProtocolAsync(newReleaseTcpClientUuid, applicationProtocol); - let isAddressUpdated = await tcpClientInterface.setRemoteAddressAsync(newReleaseTcpClientUuid, applicationAddress); - let isPortUpdated = await tcpClientInterface.setRemotePortAsync(newReleaseTcpClientUuid, applicationPort); + let newReleaseTcpClientUuidList = await logicalTerminationPoint.getServerLtpListAsync(newReleaseHttpClientLtpUuid); + let newReleaseTcpClientUuid = newReleaseTcpClientUuidList[0]; - if (isProtocolUpdated || isAddressUpdated || isPortUpdated) { - let configurationStatus = new ConfigurationStatus( - newReleaseTcpClientUuid, - '', - true); - ltpConfigurationStatus.tcpClientConfigurationStatusList = [configurationStatus]; - } - let forwardingAutomationInputList; - if (ltpConfigurationStatus != undefined) { + let isProtocolUpdated = await tcpClientInterface.setRemoteProtocolAsync(newReleaseTcpClientUuid, applicationProtocol); + let isAddressUpdated = await tcpClientInterface.setRemoteAddressAsync(newReleaseTcpClientUuid, applicationAddress); + let isPortUpdated = await tcpClientInterface.setRemotePortAsync(newReleaseTcpClientUuid, applicationPort); - /**************************************************************************************** - * Prepare attributes to automate forwarding-construct - ****************************************************************************************/ - forwardingAutomationInputList = await prepareForwardingAutomation.bequeathYourDataAndDie( - ltpConfigurationStatus - ); - ForwardingAutomationService.automateForwardingConstructAsync( - operationServerName, - forwardingAutomationInputList, - user, - xCorrelator, - traceIndicator, - customerJourney - ); + if (isProtocolUpdated || isAddressUpdated || isPortUpdated) { + let configurationStatus = new ConfigurationStatus( + newReleaseTcpClientUuid, + '', + true); + ltpConfigurationStatus.tcpClientConfigurationStatusList = [configurationStatus]; + } + let forwardingAutomationInputList; + if (ltpConfigurationStatus != undefined) { + + /**************************************************************************************** + * Prepare attributes to automate forwarding-construct + ****************************************************************************************/ + forwardingAutomationInputList = await prepareForwardingAutomation.bequeathYourDataAndDie( + ltpConfigurationStatus + ); + ForwardingAutomationService.automateForwardingConstructAsync( + operationServerName, + forwardingAutomationInputList, + user, + xCorrelator, + traceIndicator, + customerJourney + ); + } + softwareUpgrade.upgradeSoftwareVersion(user, xCorrelator, traceIndicator, customerJourney, forwardingAutomationInputList.length) + .catch(err => console.log(`upgradeSoftwareVersion failed with error: ${err}`)); } - softwareUpgrade.upgradeSoftwareVersion(user, xCorrelator, traceIndicator, customerJourney,forwardingAutomationInputList.length) - .catch(err => console.log(`upgradeSoftwareVersion failed with error: ${err}`)); + } catch (error) { + console.log(`bequeathing process failed with error: ${error}`); } } + /** * Removes an application * @@ -134,7 +137,7 @@ exports.deregisterApplication = async function (body, user, originator, xCorrela let applicationName = body["application-name"]; let applicationReleaseNumber = body["release-number"]; - await excludeGenericResponseProfile(applicationName, applicationReleaseNumber); + await IndividualServicesUtility.excludeGenericResponseProfile(applicationName, applicationReleaseNumber); let httpClientUuid = await httpClientInterface.getHttpClientUuidExcludingOldReleaseAndNewRelease( applicationName, applicationReleaseNumber, @@ -145,7 +148,7 @@ exports.deregisterApplication = async function (body, user, originator, xCorrela ); /**************************************************************************************** - * Prepare attributes to configure forwarding-construct + * Prepare attributes to remove fc-ports from forwarding-construct ****************************************************************************************/ let forwardingConfigurationInputList = []; @@ -216,26 +219,22 @@ exports.inquireApplicationTypeApprovals = async function (body, user, originator let operationNamesByAttributes = new Map(); operationNamesByAttributes.set("approval-operation", approvalOperation); - let tcpObjectList = [new TcpObject(applicationProtocol, applicationAddress, applicationPort)]; + let tcpObject = new TcpObject(applicationProtocol, applicationAddress, applicationPort); - let httpClientUuid = await httpClientInterface.getHttpClientUuidAsync( - applicationName, releaseNumber - ); + let httpClientUuid = await httpClientInterface.getHttpClientUuidAsync(applicationName, releaseNumber); + if (!httpClientUuid) { + httpClientUuid = await httpClientInterface.getHttpClientUuidAsync(applicationName); + } let lpConfigurationInput = new LogicalTerminationPointConfigurationInput( httpClientUuid, applicationName, releaseNumber, - tcpObjectList, + tcpObject, operationServerName, operationNamesByAttributes, individualServicesOperationsMapping.individualServicesOperationsMapping ); - let ltpConfigurationStatus; - if (httpClientUuid) { - ltpConfigurationStatus = await LogicalTerminationPointService.createOrUpdateApplicationLtpsAsync( - lpConfigurationInput, false - ); - } + let ltpConfigurationStatus = await LogicalTerminationPointService.FindAndUpdateApplicationLtpsAsync(lpConfigurationInput); /**************************************************************************************** * Prepare attributes to configure forwarding-construct @@ -283,7 +282,7 @@ exports.inquireApplicationTypeApprovals = async function (body, user, originator * returns List **/ exports.listApplications = async function (body) { - let applicationList = await getAllRegisteredApplicationList(body["required-protocol"]); + let applicationList = await IndividualServicesUtility.getAllRegisteredApplicationList(body["required-protocol"]); return onfAttributeFormatter.modifyJsonObjectKeysToKebabCase(applicationList); } @@ -301,6 +300,7 @@ exports.listApplicationsInGenericRepresentation = async function () { } /** + * @deprecated since version 2.1.0 * Offers subscribing to notifications about new approvals * * body V1_notifyapprovals_body @@ -327,26 +327,22 @@ exports.notifyApprovals = async function (body, user, originator, xCorrelator, t let operationNamesByAttributes = new Map(); operationNamesByAttributes.set("subscriber-operation", subscriberOperation); - let tcpObjectList = [new TcpObject(applicationProtocol, applicationAddress, applicationPort)]; + let tcpObject = new TcpObject(applicationProtocol, applicationAddress, applicationPort); let httpClientLtpUuid = await httpClientInterface.getHttpClientUuidAsync( applicationName, releaseNumber ); - const ltpConfigurationInput = new LogicalTerminationPointConfigurationInput( + let ltpConfigurationInput = new LogicalTerminationPointConfigurationInput( httpClientLtpUuid, applicationName, releaseNumber, - tcpObjectList, + tcpObject, operationServerName, operationNamesByAttributes, individualServicesOperationsMapping.individualServicesOperationsMapping ); - const roApplicationName = await ServiceUtils.resolveRegistryOfficeApplicationNameFromForwardingAsync(); - const ltpConfigurationStatus = await LogicalTerminationPointService.createOrUpdateApplicationLtpsAsync( - ltpConfigurationInput, - roApplicationName === applicationName - ); + const ltpConfigurationStatus = await LogicalTerminationPointService.createOrUpdateApplicationLtpsAsync(ltpConfigurationInput); /**************************************************************************************** * Prepare attributes to configure forwarding-construct @@ -386,6 +382,7 @@ exports.notifyApprovals = async function (body, user, originator, xCorrelator, t } /** + * @deprecated since version 2.1.0 * Offers subscribing to notifications about withdrawn registrations * * body V1_notifyderegistrations_body @@ -411,26 +408,22 @@ exports.notifyDeregistrations = async function (body, user, originator, xCorrela let operationNamesByAttributes = new Map(); operationNamesByAttributes.set("subscriber-operation", subscriberOperation); - let tcpObjectList = [new TcpObject(applicationProtocol, applicationAddress, applicationPort)]; + let tcpObject = new TcpObject(applicationProtocol, applicationAddress, applicationPort); let httpClientLtpUuid = await httpClientInterface.getHttpClientUuidAsync( applicationName, releaseNumber ); - const ltpConfigurationInput = new LogicalTerminationPointConfigurationInput( + let ltpConfigurationInput = new LogicalTerminationPointConfigurationInput( httpClientLtpUuid, applicationName, releaseNumber, - tcpObjectList, + tcpObject, operationServerName, operationNamesByAttributes, individualServicesOperationsMapping.individualServicesOperationsMapping ); - const roApplicationName = await ServiceUtils.resolveRegistryOfficeApplicationNameFromForwardingAsync(); - const ltpConfigurationStatus = await LogicalTerminationPointService.createOrUpdateApplicationLtpsAsync( - ltpConfigurationInput, - roApplicationName === applicationName - ); + const ltpConfigurationStatus = await LogicalTerminationPointService.createOrUpdateApplicationLtpsAsync(ltpConfigurationInput); /**************************************************************************************** * Prepare attributes to configure forwarding-construct @@ -471,6 +464,7 @@ exports.notifyDeregistrations = async function (body, user, originator, xCorrela /** + * @deprecated since version 2.1.0 * Offers subscribing to notifications about withdrawn approvals * * body V1_notifywithdrawnapprovals_body @@ -497,26 +491,22 @@ exports.notifyWithdrawnApprovals = async function (body, user, originator, xCorr let operationNamesByAttributes = new Map(); operationNamesByAttributes.set("subscriber-operation", subscriberOperation); - let tcpObjectList = [new TcpObject(applicationProtocol, applicationAddress, applicationPort)]; + let tcpObject = new TcpObject(applicationProtocol, applicationAddress, applicationPort); let httpClientUuid = await httpClientInterface.getHttpClientUuidAsync( applicationName, releaseNumber ); - const ltpConfigurationInput = new LogicalTerminationPointConfigurationInput( + let ltpConfigurationInput = new LogicalTerminationPointConfigurationInput( httpClientUuid, applicationName, releaseNumber, - tcpObjectList, + tcpObject, operationServerName, operationNamesByAttributes, individualServicesOperationsMapping.individualServicesOperationsMapping ); - const roApplicationName = await ServiceUtils.resolveRegistryOfficeApplicationNameFromForwardingAsync(); - const ltpConfigurationStatus = await LogicalTerminationPointService.createOrUpdateApplicationLtpsAsync( - ltpConfigurationInput, - roApplicationName === applicationName - ); + const ltpConfigurationStatus = await LogicalTerminationPointService.createOrUpdateApplicationLtpsAsync(ltpConfigurationInput); /**************************************************************************************** * Prepare attributes to configure forwarding-construct @@ -556,66 +546,48 @@ exports.notifyWithdrawnApprovals = async function (body, user, originator, xCorr } /** - * Adds to the list of known applications + * Offers subscribing to notifications about changes of the embedding status * - * body V1_registerapplication_body + * body V1_notifyembeddingstatuschanges_body * user String User identifier from the system starting the service call - * originator String 'Identification for the system consuming the API, as defined in [/core-model-1-4:control-construct/logical-termination-point={uuid}/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-capability/application-name]' + * originator String 'Identification for the system consuming the API, as defined in [/core-model-1-4:control-construct/logical-termination-point={uuid}/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' * xCorrelator String UUID for the service execution flow that allows to correlate requests and responses * traceIndicator String Sequence of request numbers along the flow * customerJourney String Holds information supporting customer’s journey to which the execution applies * no response value expected for this operation **/ -exports.registerApplication = async function (body, user, originator, xCorrelator, traceIndicator, customerJourney, operationServerName) { - let applicationName = body["application-name"]; - let releaseNumber = body["release-number"]; - let tcpServerList = body["tcp-server-list"]; - let embeddingOperation = body["embedding-operation"]; - let clientUpdateOperation = body["client-update-operation"]; - let clientOperationUpdateOperation = body["operation-client-update-operation"]; - - let preceedingApplicationName = body["preceding-application-name"]; - let preceedingReleaseNumber = body["preceding-release-number"]; +exports.notifyEmbeddingStatusChanges = async function (body, user, originator, xCorrelator, traceIndicator, customerJourney, operationServerName) { + let applicationName = body["subscriber-application"]; + let releaseNumber = body["subscriber-release-number"]; + let applicationProtocol = body["subscriber-protocol"]; + let applicationAddress = body["subscriber-address"]; + let applicationPort = body["subscriber-port"]; + let subscriberOperation = body["subscriber-operation"]; /**************************************************************************************** * Prepare logicalTerminatinPointConfigurationInput object to * configure logical-termination-point ****************************************************************************************/ + let operationNamesByAttributes = new Map(); - operationNamesByAttributes.set("embedding-operation", embeddingOperation); - operationNamesByAttributes.set("client-update-operation", clientUpdateOperation); - operationNamesByAttributes.set("operation-client-update-operation", clientOperationUpdateOperation); - - let tcpObjectList = []; - for (let tcpServer of tcpServerList) { - let tcpObject = new TcpObject(tcpServer.protocol, tcpServer.address, tcpServer.port); - tcpObjectList.push(tcpObject); - } + operationNamesByAttributes.set("subscriber-operation", subscriberOperation); + + let tcpObject = new TcpObject(applicationProtocol, applicationAddress, applicationPort); let httpClientUuid = await httpClientInterface.getHttpClientUuidExcludingOldReleaseAndNewRelease( applicationName, releaseNumber, NEW_RELEASE_FORWARDING_NAME ); - const ltpConfigurationInput = new LogicalTerminationPointConfigurationInput( + let ltpConfigurationInput = new LogicalTerminationPointConfigurationInput( httpClientUuid, applicationName, releaseNumber, - tcpObjectList, + tcpObject, operationServerName, operationNamesByAttributes, individualServicesOperationsMapping.individualServicesOperationsMapping ); - const roApplicationName = await ServiceUtils.resolveRegistryOfficeApplicationNameFromForwardingAsync(); - const ltpConfigurationStatus = await LogicalTerminationPointService.createOrUpdateApplicationLtpsAsync( - ltpConfigurationInput, - roApplicationName === applicationName - ); + const ltpConfigurationStatus = await LogicalTerminationPointService.createOrUpdateApplicationLtpsAsync(ltpConfigurationInput); - await ApplicationPreceedingVersion.addEntryToPreceedingVersionList( - preceedingApplicationName, - preceedingReleaseNumber, - applicationName, - releaseNumber - ); /**************************************************************************************** * Prepare attributes to configure forwarding-construct ****************************************************************************************/ @@ -625,9 +597,9 @@ exports.registerApplication = async function (body, user, originator, xCorrelato let operationClientConfigurationStatusList = ltpConfigurationStatus.operationClientConfigurationStatusList; if (operationClientConfigurationStatusList) { - forwardingConfigurationInputList = await prepareForwardingConfiguration.registerApplication( + forwardingConfigurationInputList = await prepareForwardingConfiguration.notifyEmbeddingStatusChange( operationClientConfigurationStatusList, - embeddingOperation + subscriberOperation ); forwardingConstructConfigurationStatus = await ForwardingConfigurationService. configureForwardingConstructAsync( @@ -639,11 +611,9 @@ exports.registerApplication = async function (body, user, originator, xCorrelato /**************************************************************************************** * Prepare attributes to automate forwarding-construct ****************************************************************************************/ - let forwardingAutomationInputList = await prepareForwardingAutomation.registerApplication( + let forwardingAutomationInputList = await prepareForwardingAutomation.notifyEmbeddingStatusChange( ltpConfigurationStatus, - forwardingConstructConfigurationStatus, - applicationName, - releaseNumber + forwardingConstructConfigurationStatus ); ForwardingAutomationService.automateForwardingConstructAsync( operationServerName, @@ -653,9 +623,229 @@ exports.registerApplication = async function (body, user, originator, xCorrelato traceIndicator, customerJourney ); +} - MonitorTypeApprovalChannel.AddEntryToMonitorApprovalStatusChannel(applicationName, releaseNumber); - includeGenericResponseProfile(applicationName, releaseNumber); +/** + * @deprecated since version 2.1.0 + * Adds to the list of known applications + * + * body V1_registerapplication_body + * user String User identifier from the system starting the service call + * originator String 'Identification for the system consuming the API, as defined in [/core-model-1-4:control-construct/logical-termination-point={uuid}/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-capability/application-name]' + * xCorrelator String UUID for the service execution flow that allows to correlate requests and responses + * traceIndicator String Sequence of request numbers along the flow + * customerJourney String Holds information supporting customer’s journey to which the execution applies + * operationServerName contains name of addressed request + * no response value expected for this operation + **/ +exports.registerApplication = async function (body, user, originator, xCorrelator, traceIndicator, customerJourney, operationServerName) { + let applicationName = body["application-name"]; + let releaseNumber = body["release-number"]; + let tcpServer = body["tcp-server-list"][0]; + let embeddingOperation = body["embedding-operation"]; + let clientUpdateOperation = body["client-update-operation"]; + let clientOperationUpdateOperation = body["operation-client-update-operation"]; + + let preceedingApplicationName = body["preceding-application-name"]; + let preceedingReleaseNumber = body["preceding-release-number"]; + + /**************************************************************************************** + * Prepare logicalTerminatinPointConfigurationInput object to + * configure logical-termination-point + ****************************************************************************************/ + let operationNamesByAttributes = new Map(); + operationNamesByAttributes.set("embedding-operation", embeddingOperation); + operationNamesByAttributes.set("client-update-operation", clientUpdateOperation); + operationNamesByAttributes.set("operation-client-update-operation", clientOperationUpdateOperation); + + let tcpObject = new TcpObject(tcpServer.protocol, tcpServer.address, tcpServer.port); + + await lock.acquire("Register application", async () => { + let httpClientUuid = await httpClientInterface.getHttpClientUuidExcludingOldReleaseAndNewRelease( + applicationName, releaseNumber, NEW_RELEASE_FORWARDING_NAME + ); + let logicalTerminatinPointConfigurationInput = new LogicalTerminationPointConfigurationInput( + httpClientUuid, + applicationName, + releaseNumber, + tcpObject, + operationServerName, + operationNamesByAttributes, + individualServicesOperationsMapping.individualServicesOperationsMapping + ); + let ltpConfigurationStatus = await LogicalTerminationPointService.createOrUpdateApplicationLtpsAsync(logicalTerminatinPointConfigurationInput); + + await ApplicationPreceedingVersion.addEntryToPreceedingVersionList( + preceedingApplicationName, + preceedingReleaseNumber, + applicationName, + releaseNumber + ); + /**************************************************************************************** + * Prepare attributes to configure forwarding-construct + ****************************************************************************************/ + + let forwardingConfigurationInputList = []; + let forwardingConstructConfigurationStatus; + let operationClientConfigurationStatusList = ltpConfigurationStatus.operationClientConfigurationStatusList; + + if (operationClientConfigurationStatusList) { + forwardingConfigurationInputList = await prepareForwardingConfiguration.registerApplication( + operationClientConfigurationStatusList, + embeddingOperation + ); + forwardingConstructConfigurationStatus = await ForwardingConfigurationService. + configureForwardingConstructAsync( + operationServerName, + forwardingConfigurationInputList + ); + } + + /**************************************************************************************** + * Prepare attributes to automate forwarding-construct + ****************************************************************************************/ + let forwardingAutomationInputList = await prepareForwardingAutomation.registerApplication( + ltpConfigurationStatus, + forwardingConstructConfigurationStatus, + applicationName, + releaseNumber + ); + ForwardingAutomationService.automateForwardingConstructAsync( + operationServerName, + forwardingAutomationInputList, + user, + xCorrelator, + traceIndicator, + customerJourney + ); + + await MonitorTypeApprovalChannel.AddEntryToMonitorApprovalStatusChannel(applicationName, releaseNumber); + await IndividualServicesUtility.includeGenericResponseProfile(applicationName, releaseNumber); + }); +} + +/** + * Adds to the list of known applications + * 'Registration service is not protected by operationKey. Receiving a de-registration request shall be assumed after passing wait time to approve from [/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-0-integer-p-000/integer-profile-1-0:integer-profile-pac/integer-profile-configuration/integer-value]' + * + * body V2_registerapplication_body + * user String User identifier from the system starting the service call + * originator String 'Identification for the system consuming the API, as defined in [/core-model-1-4:control-construct/logical-termination-point={uuid}/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + * xCorrelator String UUID for the service execution flow that allows to correlate requests and responses + * traceIndicator String Sequence of request numbers along the flow + * customerJourney String Holds information supporting customer’s journey to which the execution applies + * operationServerName contains name of addressed request + * no response value expected for this operation + **/ +exports.registerApplication2 = async function (body, user, originator, xCorrelator, traceIndicator, customerJourney, operationServerName) { + try { + let applicationName = body["application-name"]; + let releaseNumber = body["release-number"]; + let embeddingOperation = body["embedding-operation"]; + let clientUpdateOperation = body["client-update-operation"]; + let clientOperationUpdateOperation = body["operation-client-update-operation"]; + + let preceedingApplicationName = body["preceding-application-name"]; + let preceedingReleaseNumber = body["preceding-release-number"]; + + let operationNamesByAttributes = new Map(); + operationNamesByAttributes.set("embedding-operation", embeddingOperation); + operationNamesByAttributes.set("client-update-operation", clientUpdateOperation); + operationNamesByAttributes.set("operation-client-update-operation", clientOperationUpdateOperation); + + /**************************************************************************************** + * Differentiate between two schemas + * if schema has tcp-server-list attribute, it is old-multiple-TcpServers-format + * else if schema has tcp-server object attribute, it is new-single-TcpServer-format + ****************************************************************************************/ + let tcpServer = {}; + let disposeRemaindersOperation; + let precedingReleaseOperation; + let subsequentReleaseOperation; + if (body.hasOwnProperty("tcp-server-list")) { + tcpServer = body["tcp-server-list"][0]; + } else if (body.hasOwnProperty("tcp-server")) { + tcpServer = body["tcp-server"]; + disposeRemaindersOperation = body["dispose-remainders-operation"]; + precedingReleaseOperation = body["preceding-release-operation"]; + subsequentReleaseOperation = body["subsequent-release-operation"]; + operationNamesByAttributes.set("dispose-remainders-operation", disposeRemaindersOperation); + operationNamesByAttributes.set("preceding-release-operation", precedingReleaseOperation); + operationNamesByAttributes.set("subsequent-release-operation", subsequentReleaseOperation); + } + + /**************************************************************************************** + * Prepare logicalTerminatinPointConfigurationInput object to + * configure logical-termination-point + ****************************************************************************************/ + let tcpObject = new TcpObject(tcpServer.protocol, tcpServer.address, tcpServer.port); + + await lock.acquire("Register application", async () => { + let httpClientUuid = await httpClientInterface.getHttpClientUuidExcludingOldReleaseAndNewRelease( + applicationName, releaseNumber, NEW_RELEASE_FORWARDING_NAME + ); + let logicalTerminatinPointConfigurationInput = new LogicalTerminationPointConfigurationInput( + httpClientUuid, + applicationName, + releaseNumber, + tcpObject, + operationServerName, + operationNamesByAttributes, + individualServicesOperationsMapping.individualServicesOperationsMapping + ); + let ltpConfigurationStatus = await LogicalTerminationPointService.createOrUpdateApplicationLtpsAsync(logicalTerminatinPointConfigurationInput); + + await ApplicationPreceedingVersion.addEntryToPreceedingVersionList( + preceedingApplicationName, + preceedingReleaseNumber, + applicationName, + releaseNumber + ); + /**************************************************************************************** + * Prepare attributes to configure forwarding-construct + ****************************************************************************************/ + + let forwardingConfigurationInputList = []; + let forwardingConstructConfigurationStatus; + let operationClientConfigurationStatusList = ltpConfigurationStatus.operationClientConfigurationStatusList; + + if (operationClientConfigurationStatusList) { + forwardingConfigurationInputList = await prepareForwardingConfiguration.registerApplication2( + operationClientConfigurationStatusList, + embeddingOperation, precedingReleaseOperation, subsequentReleaseOperation + ); + forwardingConstructConfigurationStatus = await ForwardingConfigurationService. + configureForwardingConstructAsync( + operationServerName, + forwardingConfigurationInputList + ); + } + + /**************************************************************************************** + * Prepare attributes to automate forwarding-construct + ****************************************************************************************/ + let forwardingAutomationInputList = await prepareForwardingAutomation.registerApplication( + ltpConfigurationStatus, + forwardingConstructConfigurationStatus, + applicationName, + releaseNumber + ); + ForwardingAutomationService.automateForwardingConstructAsync( + operationServerName, + forwardingAutomationInputList, + user, + xCorrelator, + traceIndicator, + customerJourney + ); + + await MonitorTypeApprovalChannel.AddEntryToMonitorApprovalStatusChannel(applicationName, releaseNumber); + await IndividualServicesUtility.includeGenericResponseProfile(applicationName, releaseNumber); + }); + + } catch (error) { + console.log(error); + } } @@ -686,13 +876,15 @@ exports.relayOperationUpdate = function (body, user, originator, xCorrelator, tr * decision making before proceeding with relay the server information ****************************************************************************************/ let isRequestEligibleForRelaying = true; - let httpClientUuidOfNewApplication = await httpClientInterface.getHttpClientUuidAsync(applicationName, releaseNumber); + let httpClientUuidOfNewApplication = await httpClientInterface.getHttpClientUuidExcludingOldReleaseAndNewRelease( + applicationName, releaseNumber, NEW_RELEASE_FORWARDING_NAME + ); if (httpClientUuidOfNewApplication == undefined) { isRequestEligibleForRelaying = false; } else { // check whether application is approved ?? - const appNameAndUuidFromForwarding = await resolveApplicationNameAndHttpClientLtpUuidFromForwardingNameOfTypeSubscription( - 'ServerReplacementBroadcast', + const appNameAndUuidFromForwarding = await IndividualServicesUtility.resolveApplicationNameAndHttpClientLtpUuidFromForwardingNameOfTypeSubscription( + 'OperationUpdateBroadcast', applicationName, releaseNumber); if (appNameAndUuidFromForwarding != httpClientUuidOfNewApplication) { @@ -762,12 +954,14 @@ exports.relayServerReplacement = function (body, user, originator, xCorrelator, * decision making before proceeding with relay the server information ****************************************************************************************/ let isRequestEligibleForRelaying = true; - let httpClientUuidOfNewApplication = await httpClientInterface.getHttpClientUuidAsync(futureApplicationName, futureReleaseNumber); + let httpClientUuidOfNewApplication = await httpClientInterface.getHttpClientUuidExcludingOldReleaseAndNewRelease( + futureApplicationName, futureReleaseNumber, NEW_RELEASE_FORWARDING_NAME + ); if (httpClientUuidOfNewApplication == undefined) { isRequestEligibleForRelaying = false; } else { // check whether application is approved ?? - const appNameAndUuidFromForwarding = await resolveApplicationNameAndHttpClientLtpUuidFromForwardingNameOfTypeSubscription( + const appNameAndUuidFromForwarding = await IndividualServicesUtility.resolveApplicationNameAndHttpClientLtpUuidFromForwardingNameOfTypeSubscription( 'ServerReplacementBroadcast', futureApplicationName, futureReleaseNumber); @@ -866,370 +1060,24 @@ exports.startApplicationInGenericRepresentation = async function () { * customerJourney String Holds information supporting customer’s journey to which the execution applies * no response value expected for this operation **/ -exports.updateApprovalStatus = async function (body, user, originator, xCorrelator, traceIndicator, customerJourney, operationServerName) { - let applicationName = body["application-name"]; - let releaseNumber = body["release-number"]; - let approvalStatus = body["approval-status"]; - let updateClientOperationName; - let updateOperationClientOperationName; - let embeddingOperationName; - let httpClientUuid = await httpClientInterface.getHttpClientUuidAsync(applicationName, - releaseNumber); - - if (approvalStatus == "APPROVED" || approvalStatus == "REGISTERED") { - let isApplicationExists = await httpClientInterface.isApplicationExists( - applicationName, - releaseNumber - ); - if (!isApplicationExists) { - throw new createHttpError.BadRequest(`The application-name ${applicationName} was not found.`); - } - } - - /**************************************************************************************** - * find the operation client uuid for the operations "update-client" and 'update-operation-client' - * configure logical-termination-point - ****************************************************************************************/ - let operationClientUuidList = await LogicalTerminationPoint.getClientLtpListAsync(httpClientUuid); - if (operationClientUuidList) { - for (let i = 0; i < operationClientUuidList.length; i++) { - let operationClientUuid = operationClientUuidList[i]; - let apiSegment = getApiSegmentOfOperationClient(operationClientUuid); - if (apiSegment == "im") { - if (operationClientUuid.endsWith("001")) { - updateClientOperationName = await OperationClientInterface.getOperationNameAsync(operationClientUuid); - } else if (operationClientUuid.endsWith("002")) { - updateOperationClientOperationName = await OperationClientInterface.getOperationNameAsync(operationClientUuid); - } else if (operationClientUuid.endsWith("000")) { - embeddingOperationName = await OperationClientInterface.getOperationNameAsync(operationClientUuid); - } - } - } - } - /**************************************************************************************** - * Prepare attributes to configure forwarding-construct - * If the approval status is approved , then create forwarding construct for update-operation-client and update-client - * If the approval status is not barred , check if any fc-port created, if so delete them - ****************************************************************************************/ - let forwardingConstructConfigurationStatus; - let isApplicationAlreadyApproved - - if (httpClientUuid) { - let operationClientUuidList = await logicalTerminationPoint.getClientLtpListAsync(httpClientUuid); - let operationListForConfiguration = []; - let forwardingConfigurationInputList; - if (operationClientUuidList) { - - for (let i = 0; i < operationClientUuidList.length; i++) { - let operationClientUuid = operationClientUuidList[i]; - let operationName = await operationClientInterface.getOperationNameAsync(operationClientUuid); - - if (operationName.includes(updateClientOperationName)) { - updateClientOperationName = operationName; - operationListForConfiguration.push(operationClientUuid); - } else if (operationName.includes(updateOperationClientOperationName)) { - updateOperationClientOperationName = operationName; - operationListForConfiguration.push(operationClientUuid); - } - } - - if (operationListForConfiguration.length > 0) { - forwardingConfigurationInputList = await prepareForwardingConfiguration.updateApprovalStatus( - operationListForConfiguration, - updateClientOperationName, - updateOperationClientOperationName, - embeddingOperationName - ); - - isApplicationAlreadyApproved = await checkApplicationApprovalStatus(operationClientUuidList) - - if (approvalStatus == 'APPROVED') { - forwardingConstructConfigurationStatus = await ForwardingConfigurationService. - configureForwardingConstructAsync( - operationServerName, - forwardingConfigurationInputList - ); - await MonitorTypeApprovalChannel.removeEntryFromMonitorApprovalStatusChannel(applicationName, releaseNumber); - }else if (isApplicationAlreadyApproved && approvalStatus == 'REGISTERED') { - forwardingConstructConfigurationStatus = await ForwardingConfigurationService. - unConfigureForwardingConstructAsync( - operationServerName, - forwardingConfigurationInputList - ); - await MonitorTypeApprovalChannel.AddEntryToMonitorApprovalStatusChannel(applicationName, releaseNumber); - } else if (approvalStatus == 'BARRED') { - let forwardingConfigurationListForBarredApplication = - await prepareForwardingConfiguration.updateApprovalStatusBarred(operationClientUuidList); - forwardingConfigurationInputList.push.apply(forwardingConfigurationInputList, forwardingConfigurationListForBarredApplication); - forwardingConstructConfigurationStatus = await ForwardingConfigurationService. - unConfigureForwardingConstructAsync( - operationServerName, - forwardingConfigurationInputList, - true - ); - await MonitorTypeApprovalChannel.removeEntryFromMonitorApprovalStatusChannel(applicationName, releaseNumber); - await ApplicationPreceedingVersion.removeEntryFromPrecedingVersionList(applicationName, releaseNumber); - } - - } - } - } - - /**************************************************************************************** - * Prepare logicalTerminatinPointConfigurationInput object to - * configure logical-termination-point - ****************************************************************************************/ - let ltpConfigurationStatus; - if (approvalStatus == 'BARRED') { - await excludeGenericResponseProfile(applicationName, releaseNumber); - let httpClientUuid = await httpClientInterface.getHttpClientUuidExcludingOldReleaseAndNewRelease( - applicationName, - releaseNumber, - NEW_RELEASE_FORWARDING_NAME - ); - ltpConfigurationStatus = await LogicalTerminationPointService.deleteApplicationLtpsAsync( - httpClientUuid - ); - } - - /**************************************************************************************** - * Prepare attributes to automate forwarding-construct - * If the approval status is approved , then embed-yourself, regard-application will be executed - * If the approval status is barred , then disregard-application will be executed - ****************************************************************************************/ - let forwardingAutomationInputList; - if (approvalStatus == 'APPROVED') { - forwardingAutomationInputList = await prepareForwardingAutomation.updateApprovalStatusApproved( - ltpConfigurationStatus, - forwardingConstructConfigurationStatus, - applicationName, - releaseNumber - ); - } else if (approvalStatus == 'BARRED' || (approvalStatus == 'REGISTERED' && isApplicationAlreadyApproved )) { - forwardingAutomationInputList = await prepareForwardingAutomation.updateApprovalStatusBarred( - ltpConfigurationStatus, - forwardingConstructConfigurationStatus, - applicationName, - releaseNumber - ); - } - if (forwardingAutomationInputList) { - ForwardingAutomationService.automateForwardingConstructAsync( - operationServerName, - forwardingAutomationInputList, - user, - xCorrelator, - traceIndicator, - customerJourney - ); - } -} - -/* -* This method is to check if application is APPROVED -*/ -async function checkApplicationApprovalStatus(clientLTPs) { - return new Promise(async function (resolve, reject) { - try { - if (clientLTPs.length > 0) { - let applicationApproved = false - let fcPortList - let forwardingConstruct = await ForwardingDomain.getForwardingConstructForTheForwardingNameAsync("ServerReplacementBroadcast"); - fcPortList = forwardingConstruct["fc-port"] - let fcPort = fcPortList.filter(fcport => clientLTPs.includes(fcport["logical-termination-point"])); - if (fcPort != undefined && fcPort.length > 0) { - applicationApproved = true - } - resolve(applicationApproved) - } - } catch (error) { - reject(error); - } - }) -} - -/**************************************************************************************** - * Functions utilized by individual services - ****************************************************************************************/ - -/** - * @description This function returns list of registered application information application-name , release-number, application-address, application-port. - * @return {Promise} return the list of application information - * Procedure :
- * step 1 : Get forwarding-construct based on ForwardingName - * step 2 : Get forwarding-construct UUID - * step 3 : Get fc-port list using forwarding-construct UUID - * step 4 : Fetch http-client-list using logical-termination-point uuid from fc-port - * step 5 : get the application name, release number and server-ltp
- * step 6 : get the ipaddress and port name of each associated tcp-client
- **/ -function getAllRegisteredApplicationList(protocol) { +exports.regardUpdatedApprovalStatus = function (body, user, originator, xCorrelator, traceIndicator, customerJourney, operationServerName) { return new Promise(async function (resolve, reject) { - let clientApplicationList = []; - const forwardingName = "TypeApprovalCausesRequestForEmbedding"; try { - - /** - * This class instantiate objects that holds the application name , release number, - * IpAddress and port information of the registered client applications - */ - let clientApplicationInformation = class ClientApplicationInformation { - - /** - * @constructor - * @param {String} applicationName name of the client application. - * @param {String} applicationReleaseNumber release number of the application. - * @param {String} applicationAddress ip address of the application. - * @param {String} applicationPort port of the application. - **/ - constructor(applicationName, applicationReleaseNumber, applicationAddress, applicationPort) { - this.applicationName = applicationName; - this.releaseNumber = applicationReleaseNumber; - if (applicationAddress != undefined) { - this.address = applicationAddress; - } - if (applicationPort != undefined) { - this.port = applicationPort; - } - } + let requestHeaders = { + user, xCorrelator, traceIndicator, customerJourney }; - let forwardingConstructForTheForwardingName = await ForwardingDomain.getForwardingConstructForTheForwardingNameAsync(forwardingName); - let forwardingConstructUuid = forwardingConstructForTheForwardingName[onfAttributes.GLOBAL_CLASS.UUID]; - let fcPortList = await ForwardingConstruct.getOutputFcPortsAsync(forwardingConstructUuid); - let httpClientUuidList = [] - - for (let fcPort of fcPortList) { - let serverLtpList = await logicalTerminationPoint.getServerLtpListAsync(fcPort[onfAttributes.FC_PORT.LOGICAL_TERMINATION_POINT]) - httpClientUuidList = httpClientUuidList.concat(serverLtpList) - } - - for (let i = 0; i < httpClientUuidList.length; i++) { - let httpClientUuid = httpClientUuidList[i]; - let applicationName = await httpClientInterface.getApplicationNameAsync(httpClientUuid); - let applicationReleaseNumber = await httpClientInterface.getReleaseNumberAsync(httpClientUuid); - if (protocol == undefined) { - let clientApplication = new clientApplicationInformation(applicationName, applicationReleaseNumber); - clientApplicationList.push(clientApplication); - } else { - let tcpClientUuidList = await logicalTerminationPoint.getServerLtpListAsync(httpClientUuid); - for (let i = 0; i < tcpClientUuidList.length; i++) { - let tcpClientUuid = tcpClientUuidList[i]; - let tcpClientProtocol = await tcpClientInterface.getRemoteProtocolAsync(tcpClientUuid); - if (tcpClientProtocol.toLowerCase() == protocol.toLowerCase()) { - let address = await tcpClientInterface.getRemoteAddressAsync(tcpClientUuid); - let applicationAddress = "domain-name" in address ? address["domain-name"] : address["ip-address"]["ipv-4-address"]; - let applicationPort = await tcpClientInterface.getRemotePortAsync(tcpClientUuid); - let clientApplication = new clientApplicationInformation(applicationName, applicationReleaseNumber, applicationAddress, applicationPort); - clientApplicationList.push(clientApplication); - } - } - } - } - resolve(clientApplicationList); - } catch (error) { - reject(); - } - }); -} - -/** - * @description This function includes a new response profile if not exists for a registered application - * @return {Promise} return true if operation is successful - **/ -function includeGenericResponseProfile(applicationName, releaseNumber) { - return new Promise(async function (resolve, reject) { - let isUpdated = true; - try { - let httpClientUuid = await HttpClientInterface.getHttpClientUuidAsync(applicationName, releaseNumber); - if (httpClientUuid != undefined) { - let applicationNameReference = onfPaths.HTTP_CLIENT_APPLICATION_NAME.replace("{uuid}", httpClientUuid); - let isResponseProfileAlreadyExist = await ResponseProfile.findProfileUuidForFieldNameReferenceAsync(applicationNameReference); - if (!isResponseProfileAlreadyExist) { - let releaseNumberReference = onfPaths.HTTP_CLIENT_RELEASE_NUMBER.replace("{uuid}", httpClientUuid); - let operationName = "/v1/list-applications-in-generic-representation"; - let description = "List of registered application names and release numbers"; - let datatype = "string"; - let responseProfile = await ResponseProfile.createProfileAsync(operationName, - applicationNameReference, - description, - datatype, - releaseNumberReference); - isUpdated = await ProfileCollection.addProfileAsync(responseProfile); - } - } - resolve(isUpdated); - } catch (error) { - reject(); - } - }); -} - -/** - * @description This function excludes an existing response profile if not exists for a registered application - * @return {Promise} return true if operation is successful - **/ -function excludeGenericResponseProfile(applicationName, releaseNumber) { - return new Promise(async function (resolve, reject) { - let isUpdated = true; - try { - let httpClientUuid = await HttpClientInterface.getHttpClientUuidAsync(applicationName, releaseNumber); - if (httpClientUuid != undefined) { - let applicationNameReference = onfPaths.HTTP_CLIENT_APPLICATION_NAME.replace("{uuid}", httpClientUuid); - let responseProfileUuid = await ResponseProfile.findProfileUuidForFieldNameReferenceAsync(applicationNameReference); - if (responseProfileUuid) { - isUpdated = await ProfileCollection.deleteProfileAsync(responseProfileUuid); - } + let processId = await RegardUpdatedApprovalProcess.updateApprovalStatusInConfig(body, requestHeaders, operationServerName); + if (processId) { + resolve({ + "process-id": processId + }); + } else { + resolve(); } - resolve(isUpdated); } catch (error) { - reject(); + console.log(error) + console.log(`${error} in regardUpdatedApprovalStatus`); + reject(error); } }); -} - -/** - * @description This function helps to get the APISegment of the operationClient uuid - * @return {Promise} returns the APISegment - **/ -function getApiSegmentOfOperationClient(operationClientUuid) { - let APISegment; - try { - APISegment = operationClientUuid.split("-")[6]; - } catch (error) { - console.log("error in extracting the APISegment"); - } - return APISegment; -} - -async function resolveApplicationNameAndHttpClientLtpUuidFromForwardingNameOfTypeSubscription(forwardingName, applicationName, releaseNumber) { - let httpClientUuidOfTheSubscribedApplication = undefined; - const forwardingConstruct = await ForwardingDomain.getForwardingConstructForTheForwardingNameAsync(forwardingName); - if (forwardingConstruct === undefined) { - return null; - } - - let fcPortOutputDirectionLogicalTerminationPointList = []; - const fcPortList = forwardingConstruct[onfAttributes.FORWARDING_CONSTRUCT.FC_PORT]; - for (const fcPort of fcPortList) { - const portDirection = fcPort[onfAttributes.FC_PORT.PORT_DIRECTION]; - if (FcPort.portDirectionEnum.OUTPUT === portDirection) { - fcPortOutputDirectionLogicalTerminationPointList.push(fcPort[onfAttributes.FC_PORT.LOGICAL_TERMINATION_POINT]); - } - } - - if (fcPortOutputDirectionLogicalTerminationPointList.length == 0) { - return null; - } - - for (let i = 0; i < fcPortOutputDirectionLogicalTerminationPointList.length; i++) { - const opLtpUuid = fcPortOutputDirectionLogicalTerminationPointList[i]; - const httpLtpUuidList = await LogicalTerminationPoint.getServerLtpListAsync(opLtpUuid); - const httpClientLtpUuid = httpLtpUuidList[0]; - const _applicationName = await httpClientInterface.getApplicationNameAsync(httpClientLtpUuid); - const _releaseNumber = await httpClientInterface.getReleaseNumberAsync(httpClientLtpUuid); - if (_applicationName == applicationName && _releaseNumber == releaseNumber) { - httpClientUuidOfTheSubscribedApplication = httpClientLtpUuid; - } - } - return httpClientUuidOfTheSubscribedApplication; -} +} \ No newline at end of file From 6b31bf3383ccfe6e00b2c240d18e5365f6690d98 Mon Sep 17 00:00:00 2001 From: Prathiba Jeevan <62344562+PrathibaJee@users.noreply.github.com> Date: Wed, 24 Jul 2024 13:30:24 +0200 Subject: [PATCH 03/12] V2.1.1_impl (#595) * Fixes #552 * Update config.json file for file-path * Fixes #554 * Update api/openapi.yaml file * Adjust FileProfile implementation to new spec (replace file-path by file-name) Fixes #514 * Fixes #556 * Initial changes to issue #555 * Minor updates to regard-updated-approval-status * Added support to ApprovalNotification callback * Updated /v1/regard-updated-approval-status * comments updated * Findings on testing with AP 2.1.1-alpha.2 * Updates based on testing with AP package 2.1.1-alpha.3 * correcting trace-indicators * rounding execTime in controllers * remove configCopy.json file * Fixes #574 * minor corrections in regardUpdatedApprovalStatus workflow * Fixes #576 * Mechanism to handle 2 consecutive regard application request Fixes #578 * /V1/REGISTER-YOURSELF creates duplicate uuids when there is a change in the registry-office-application-release-number (#580) Fixes #457 * To include GENERIC_RESPONSE_PROFILE instance for the release "2.1.1" (#585) Fixes #581 * To merge V2.1.1_impl to develop and to main to publish (#591) Fixes #588 * Resolving eslint problem * resolving eslint issues --------- Co-authored-by: IswaryaaS --- server/api/openapi.yaml | 16416 ++++++++++------ server/application-data/application-data.json | 5 +- server/controllers/BasicServices.js | 171 +- server/controllers/FileProfile.js | 62 +- server/controllers/IndividualServices.js | 159 +- server/database/config.json | 5569 ++++++ server/database/load.json | 4459 ----- server/index.js | 5 +- server/package-lock.json | 3128 ++- server/package.json | 6 +- server/service/FileProfileService.js | 58 +- server/service/IndividualServicesService.js | 7 +- .../EventDispatcherWithResponse.js | 161 + .../IndividualServicesOperationsMapping.js | 32 + .../IndividualServicesUtility.js | 285 + .../PrepareForwardingAutomation.js | 193 +- .../PrepareForwardingConfiguration.js | 90 +- .../RegardUpdatedApprovalProcess.js | 1155 ++ .../individualServices/SoftwareUpgrade.js | 379 +- 19 files changed, 20967 insertions(+), 11373 deletions(-) create mode 100644 server/database/config.json delete mode 100644 server/database/load.json create mode 100644 server/service/individualServices/EventDispatcherWithResponse.js create mode 100644 server/service/individualServices/IndividualServicesUtility.js create mode 100644 server/service/individualServices/RegardUpdatedApprovalProcess.js diff --git a/server/api/openapi.yaml b/server/api/openapi.yaml index 3ac0d11..fe807db 100644 --- a/server/api/openapi.yaml +++ b/server/api/openapi.yaml @@ -1,7 +1,7 @@ openapi: 3.0.0 info: title: RegistryOffice - version: 2.0.1 + version: 2.1.1 servers: - url: / paths: @@ -106,7 +106,7 @@ paths: example: 850 life-cycle-state: description: | - 'Life cycle state of the consumed service find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-s-im-000/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + 'Life cycle state of the consumed service from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-im-000/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' style: simple explode: false schema: @@ -142,15 +142,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -178,15 +169,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -214,15 +196,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -250,15 +223,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -286,15 +250,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -322,15 +277,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -411,19 +357,19 @@ paths: approval-application: type: string description: | - 'Name of application that wants to receive information about new registrations from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-tar-1-0-0-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + 'Name of application that wants to receive information about new registrations from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-tar-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' approval-application-release-number: type: string description: | - 'Release of application that wants to receive information about new registrations from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-tar-1-0-0-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + 'Release of application that wants to receive information about new registrations from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-tar-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' approval-operation: type: string description: | - 'Operation that shall be addressed by information about new registrations from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-c-im-tar-1-0-0-003/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + 'Operation that shall be addressed by information about new registrations from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-tar-2-0-1-003/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' approval-application-protocol: type: string description: | - 'Protocol to be used for addressing the application that wants to receive information about new registrations from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-tar-1-0-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + 'Protocol to be used for addressing the application that wants to receive information about new registrations from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-tar-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' approval-application-address: type: object properties: @@ -433,24 +379,24 @@ paths: ipv-4-address: type: string description: | - 'IPv4 address of application that wants to receive information about new registrations from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-tar-1-0-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + 'IPv4 address of application that wants to receive information about new registrations from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-tar-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' domain-name: type: string description: | - 'Domain name of application that wants to receive information about new registrations from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-tar-1-0-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + 'Domain name of application that wants to receive information about new registrations from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-tar-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' approval-application-port: type: integer description: | - 'TCP port of application that wants to receive information about new registrations from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-tar-1-0-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + 'TCP port of application that wants to receive information about new registrations from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-tar-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' example: approval-application: TypeApprovalRegister - approval-application-release-number: 1.0.0 + approval-application-release-number: 2.0.1 approval-operation: /v1/regard-application approval-application-protocol: HTTP approval-application-address: ip-address: - ipv-4-address: 1.1.3.2 - approval-application-port: 3002 + ipv-4-address: 127.0.0.1 + approval-application-port: 3009 required: true responses: "204": @@ -521,15 +467,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -557,15 +494,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -593,15 +521,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -629,15 +548,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -665,15 +575,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -701,20 +602,11 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: $ref: '#/components/schemas/errorDescription' - PromptForBequeathingDataCausesNewApplicationBeingRequestedToDocumentSubscriptionsForDeregistrationNotifications: + PromptForBequeathingDataCausesTransferOfListOfAlreadyRegisteredApplications: url: post: parameters: @@ -778,61 +670,86 @@ paths: application/json: schema: required: - - subscriber-address - - subscriber-application - - subscriber-operation - - subscriber-port - - subscriber-protocol - - subscriber-release-number + - application-name + - client-update-operation + - dispose-remainders-operation + - embedding-operation + - operation-client-update-operation + - preceding-release-operation + - release-number + - subsequent-release-operation + - tcp-server type: object properties: - subscriber-application: + application-name: type: string description: | - 'Name of application that wants to receive notifications about obsolete registrations from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' - subscriber-release-number: + 'Name of application that wants to register from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + release-number: type: string description: | - 'Release of application that wants to receive notifications about obsolete registrations from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' - subscriber-operation: + 'Release of application that wants to register from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + preceding-application-name: type: string description: | - 'Names of the operation that shall be addressed by notifications about obsolete registrations from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-c-im-*-*-*-*-004/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' - subscriber-protocol: + 'If provided, the new application will address /v1/bequeath-your-data-and-die at the preceding application after receiving /v1/embed-yourself from LOADfile' + preceding-release-number: type: string description: | - 'Protocol to be used for addressing the application that wants to receive notifications about obsolete registrations from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' - subscriber-address: + 'If provided, the new application will address /v1/bequeath-your-data-and-die at the preceding release after receiving /v1/embed-yourself from LOADfile' + embedding-operation: + type: string + description: | + 'Name of service for initiating embedding process from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + client-update-operation: + type: string + description: | + 'Name of service for broadcasting server changes from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-001/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + operation-client-update-operation: + type: string + description: | + 'Name of service for broadcasting replacements of operations by backward compatible substitutes from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-002/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + dispose-remainders-operation: + type: string + description: | + 'Name of service for broadcasting de-registrations of applications from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-006/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + preceding-release-operation: + type: string + description: | + 'Name of service for retrieving information about the preceding release of a new application from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-008/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + subsequent-release-operation: + type: string + description: | + 'Name of service for configuring the newRelease at the existing application from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-009/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + tcp-server: type: object properties: - ip-address: + protocol: + type: string + description: | + 'Protocol to be used for addressing the application that wants to register from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + address: type: object properties: - ipv-4-address: + ip-address: + type: object + properties: + ipv-4-address: + type: string + description: | + 'IPv4 address of application that wants to register from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + domain-name: type: string description: | - 'IPv4 address of application that wants to receive notifications about obsolete registrations from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' - domain-name: - type: string + 'Domain name of application that wants to register from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + port: + type: integer description: | - 'Domain name of application that wants to receive notifications about obsolete registrations from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' - subscriber-port: - type: integer - description: | - 'TCP port of application that wants to receive notifications about obsolete registrations from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' - example: - subscriber-application: TypeApprovalRegister - subscriber-release-number: 1.0.0 - subscriber-operation: /v1/disregard-application - subscriber-protocol: HTTP - subscriber-address: - ip-address: - ipv-4-address: 1.1.3.2 - subscriber-port: 3002 + 'TCP port of application that wants to register from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' required: true responses: "204": - description: Subscribed for notifications about deregistrations + description: Application registered headers: x-correlator: description: UUID for the service execution flow that allows @@ -899,15 +816,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -935,15 +843,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -971,15 +870,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -1007,15 +897,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -1043,15 +924,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -1079,20 +951,11 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: $ref: '#/components/schemas/errorDescription' - PromptForBequeathingDataCausesNewApplicationBeingRequestedToDocumentSubscriptionsForApprovalNotifications: + PromptForBequeathingDataCausesTransferOfListOfSubscriptionsForEmbeddingStatusChanges: url: post: parameters: @@ -1167,50 +1030,47 @@ paths: subscriber-application: type: string description: | - 'Name of application that wants to receive notifications about new approvals from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + 'Name of application that wants to receive notifications about changes of the embedding status from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' subscriber-release-number: type: string description: | - 'Release of application that wants to receive notifications about new approvals from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + 'Release of application that wants to receive notifications about changes of the embedding status from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' subscriber-operation: type: string description: | - 'Names of the operation that shall be addressed by notifications about new approvals from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-c-im-*-*-*-*-003/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + 'Names of the operation that shall be addressed by notifications about changes of the embedding status from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-007/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' subscriber-protocol: type: string description: | - 'Protocol to be used for addressing the application that wants to receive notifications about new approvals from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + 'Protocol to be used for addressing the application that wants to receive notifications about changes of the embedding status from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' subscriber-address: + maxProperties: 1 + minProperties: 1 type: object properties: ip-address: + minProperties: 1 type: object properties: ipv-4-address: type: string description: | - 'IPv4 address of application that wants to receive notifications about new approvals from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + 'IPv4 address of application that wants to receive notifications about changes of the embedding status from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + additionalProperties: false domain-name: type: string description: | - 'Domain name of application that wants to receive notifications about new approvals from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + 'Domain name of application that wants to receive notifications about changes of the embedding status from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + additionalProperties: false subscriber-port: type: integer description: | - 'TCP port of application that wants to receive notifications about new approvals from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' - example: - subscriber-application: ExecutionAndTraceLog - subscriber-release-number: 1.0.0 - subscriber-operation: /v1/regard-application - subscriber-protocol: HTTP - subscriber-address: - ip-address: - ipv-4-address: 1.1.3.3 - subscriber-port: 3003 + 'TCP port of application that wants to receive notifications about changes of the embedding status from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' required: true responses: "204": - description: Subscribed for notifications about new approvals + description: Subscribed for notifications about changes of the embedding + status headers: x-correlator: description: UUID for the service execution flow that allows @@ -1277,15 +1137,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -1313,15 +1164,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -1349,15 +1191,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -1385,15 +1218,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -1421,15 +1245,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -1457,20 +1272,11 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: $ref: '#/components/schemas/errorDescription' - PromptForBequeathingDataCausesNewApplicationBeingRequestedToDocumentSubscriptionsForWithdrawnApprovalNotifications: + PromptForBequeathingDataCausesTARbeingRequestedToRedirectInfoAboutApprovalsToNewApplication: url: post: parameters: @@ -1545,19 +1351,19 @@ paths: subscriber-application: type: string description: | - 'Name of application that wants to receive notifications about withdrawn approvals from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + 'Future application name from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-nr-2-1-0-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' subscriber-release-number: type: string description: | - 'Release of application that wants to receive notifications about withdrawn approvals from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + 'Future release number from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-nr-2-1-0-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' subscriber-operation: type: string description: | - 'Names of the operation that shall be addressed by notifications about withdrawn approvals from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-c-im-*-*-*-*-004/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + 'Names of the operation that shall be addressed by notifications about documentation of an approval status from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-is-003/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' subscriber-protocol: type: string description: | - 'Protocol to be used for addressing the application that wants to receive notifications about withdrawn approvals from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + 'Protocol to be used for addressing the application in future from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-nr-2-1-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' subscriber-address: type: object properties: @@ -1567,28 +1373,29 @@ paths: ipv-4-address: type: string description: | - 'IPv4 address of application that wants to receive notifications about withdrawn approvals from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + 'Future IPv4 address from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-nr-2-1-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' domain-name: type: string description: | - 'Domain name of application that wants to receive notifications about withdrawn approvals from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + 'Future Domain name from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-nr-2-1-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' subscriber-port: type: integer description: | - 'TCP port of application that wants to receive notifications about withdrawn approvals from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + 'Future IP address from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-nr-2-1-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' example: - subscriber-application: AdministratorAdministration - subscriber-release-number: 1.0.0 - subscriber-operation: /v1/disregard-application + subscriber-application: RegistryOffice + subscriber-release-number: 2.1.0 + subscriber-operation: /v1/regard-updated-approval-status subscriber-protocol: HTTP subscriber-address: ip-address: - ipv-4-address: 1.1.3.5 - subscriber-port: 3005 + ipv-4-address: 1.1.3.17 + subscriber-port: 3017 required: true responses: "204": - description: Subscribed for notifications about withdrawn approvals + description: Subscribed for notifications about approval status + updates headers: x-correlator: description: UUID for the service execution flow that allows @@ -1655,15 +1462,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -1691,15 +1489,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -1727,15 +1516,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -1763,15 +1543,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -1799,15 +1570,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -1835,20 +1597,11 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: $ref: '#/components/schemas/errorDescription' - PromptForBequeathingDataCausesTransferOfListOfAlreadyRegisteredApplications: + PromptForBequeathingDataCausesRequestForBroadcastingInfoAboutServerReplacement: url: post: parameters: @@ -1912,94 +1665,57 @@ paths: application/json: schema: required: - - application-name - - client-update-operation - - embedding-operation - - operation-client-update-operation - - release-number - - tcp-server-list + - current-application-name + - current-release-number + - future-address + - future-application-name + - future-port + - future-protocol + - future-release-number type: object properties: - application-name: - type: string - description: | - 'Name of application that wants to register from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' - release-number: - type: string - description: | - 'Release of application that wants to register from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' - preceding-application-name: + current-application-name: type: string description: | - 'If provided, the new application will address /v1/bequeath-your-data-and-die at the preceding application after receiving /v1/embed-yourself from LOADfile' - preceding-release-number: + 'Own application name from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' + current-release-number: type: string description: | - 'If provided, the new application will address /v1/bequeath-your-data-and-die at the preceding release after receiving /v1/embed-yourself from LOADfile' - embedding-operation: + 'Own release number from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' + future-application-name: type: string description: | - 'Name of service for initiating embedding process from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-c-im-*-*-*-*-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' - client-update-operation: + 'Future name of the application that has updated connection data from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-nr-2-1-0-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + future-release-number: type: string description: | - 'Name of service for broadcasting server changes from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-c-im-*-*-*-*-001/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' - operation-client-update-operation: + 'Future release number of the application that has updated connection data from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-nr-2-1-0-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + future-protocol: type: string description: | - 'Name of service for broadcasting replacements of operations by backward compatible substitutes from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-c-im-*-*-*-*-002/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' - tcp-server-list: - type: array - items: - required: - - address - - port - - protocol - type: object - properties: - protocol: - type: string - description: | - 'Protocol to be used for addressing the application that wants to register from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' - address: - type: object - properties: - ip-address: - type: object - properties: - ipv-4-address: - type: string - description: | - 'IPv4 address of application that wants to register from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' - domain-name: - type: string - description: | - 'Domain name of application that wants to register from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' - port: - type: integer - description: | - 'TCP port of application that wants to register from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' - example: - application-name: TypeApprovalRegister - release-number: 1.0.0 - embedding-operation: /v1/embed-yourself - client-update-operation: /v1/update-client - operation-client-update-operation: /v1/update-operation-client - tcp-server-list: - - protocol: HTTP - address: - ip-address: - ipv-4-address: 1.1.3.2 - port: 3002 - - protocol: HTTPS - address: + 'Protocol to be used in future for addressing the application that has updated connection data from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-nr-2-1-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + future-address: + type: object + properties: ip-address: - ipv-4-address: 1.2.3.2 - port: 3002 + type: object + properties: + ipv-4-address: + type: string + description: | + 'Future IPv4 address of the application that has updated connection data from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-nr-2-1-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + domain-name: + type: string + description: | + 'Future domain name of the application that has updated connection data from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-nr-2-1-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + future-port: + type: integer + description: | + 'Future port of the application that has updated connection data from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-nr-2-1-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' required: true responses: "204": - description: Application registered + description: Will broadcast server replacement headers: x-correlator: description: UUID for the service execution flow that allows @@ -2066,15 +1782,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -2102,15 +1809,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -2138,15 +1836,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -2174,15 +1863,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -2210,15 +1890,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -2246,20 +1917,11 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: $ref: '#/components/schemas/errorDescription' - PromptForBequeathingDataCausesTARbeingRequestedToRedirectInfoAboutApprovalsToNewApplication: + PromptForBequeathingDataCausesRequestForDeregisteringOfOldRelease: url: post: parameters: @@ -2323,62 +1985,22 @@ paths: application/json: schema: required: - - subscriber-address - - subscriber-application - - subscriber-operation - - subscriber-port - - subscriber-protocol - - subscriber-release-number + - application-name + - release-number type: object properties: - subscriber-application: - type: string - description: | - 'Future application name from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-nr-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' - subscriber-release-number: - type: string - description: | - 'Future release number from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-nr-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' - subscriber-operation: + application-name: type: string description: | - 'Names of the operation that shall be addressed by notifications about documentation of an approval status from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-s-is-003/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' - subscriber-protocol: + 'Own application name from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' + release-number: type: string description: | - 'Protocol to be used for addressing the application in future from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-nr-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' - subscriber-address: - type: object - properties: - ip-address: - type: object - properties: - ipv-4-address: - type: string - description: | - 'Future IPv4 address from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-nr-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' - domain-name: - type: string - description: | - 'Future Domain name from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-nr-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' - subscriber-port: - type: integer - description: | - 'Future IP address from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-nr-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' - example: - subscriber-application: RegistryOffice - subscriber-release-number: 2.0.1 - subscriber-operation: /v1/regard-updated-approval-status - subscriber-protocol: HTTP - subscriber-address: - ip-address: - ipv-4-address: 1.1.3.8 - subscriber-port: 3008 + 'Own release number from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' required: true responses: "204": - description: Subscribed for notifications about approval status - updates + description: Application deregistered headers: x-correlator: description: UUID for the service execution flow that allows @@ -2445,15 +2067,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -2481,15 +2094,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -2517,15 +2121,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -2553,15 +2148,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -2589,15 +2175,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -2625,21 +2202,14 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: $ref: '#/components/schemas/errorDescription' - PromptForBequeathingDataCausesRequestForBroadcastingInfoAboutServerReplacement: + PromptingNewReleaseForUpdatingServerCausesRequestForBroadcastingInfoAboutBackwardCompatibleUpdateOfOperation: url: + description: | + 'This callback belongs to the sequence of actions that have to be done during the bequeath-your-data-and-die process, despite the forwarding gets neither managed nor directly initiated by the /v1/bequeath-your-data-and-die request. After consuming applications have been redirected to the new release, the new release is triggered (this callback) to request the RegistryOffice for broadcasting information about backward compatible replacements of services.' post: parameters: - name: user @@ -2702,67 +2272,32 @@ paths: application/json: schema: required: - - current-application-name - - current-release-number - - future-address - - future-application-name - - future-port - - future-protocol - - future-release-number + - application-name + - new-operation-name + - old-operation-name + - release-number type: object properties: - current-application-name: - type: string - description: | - 'Own application name from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' - current-release-number: + application-name: type: string description: | - 'Own release number from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' - future-application-name: + 'Own application name from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' + release-number: type: string description: | - 'Future name of the application that has updated connection data from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-nr-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' - future-release-number: + 'Own release number from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' + old-operation-name: type: string description: | - 'Future release number of the application that has updated connection data from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-nr-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' - future-protocol: + 'Name of the deprecated operation from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-*/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' + new-operation-name: type: string description: | - 'Protocol to be used in future for addressing the application that has updated connection data from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-nr-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' - future-address: - type: object - properties: - ip-address: - type: object - properties: - ipv-4-address: - type: string - description: | - 'Future IPv4 address of the application that has updated connection data from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-nr-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' - domain-name: - type: string - description: | - 'Future domain name of the application that has updated connection data from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-nr-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' - future-port: - type: integer - description: | - 'Future port of the application that has updated connection data from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-nr-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' - example: - current-application-name: RegistryOffice - current-release-number: 1.0.0 - future-application-name: RegistryOffice - future-release-number: 2.0.1 - future-protocol: HTTP - future-address: - ip-address: - ipv-4-address: 1.1.3.8 - future-port: 3008 + 'Name of the replacing operation from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-*/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' required: true responses: "204": - description: Will broadcast server replacement + description: Will broadcast operation update headers: x-correlator: description: UUID for the service execution flow that allows @@ -2829,15 +2364,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -2865,15 +2391,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -2901,15 +2418,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -2937,15 +2445,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -2973,15 +2472,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -3009,1437 +2499,557 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 - content: - application/json: - schema: - $ref: '#/components/schemas/errorDescription' - PromptForBequeathingDataCausesRequestForDeregisteringOfOldRelease: - url: - post: - parameters: - - name: user - in: header - description: User identifier from the system starting the service - call - required: true - style: simple - explode: false - schema: - type: string - example: User Name - - name: originator - in: header - description: | - 'Identification for the system consuming the API, as defined in - [/core-model-1-4:control-construct/logical-termination-point={uuid}/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' - required: true - style: simple - explode: false - schema: - minLength: 3 - type: string - example: Resolver - - name: x-correlator - in: header - description: UUID for the service execution flow that allows to correlate - requests and responses - required: true - style: simple - explode: false - schema: - pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" - type: string - description: Empty string accepted from external applications. - example: 550e8400-e29b-11d4-a716-446655440000 - - name: trace-indicator - in: header - description: Sequence of request numbers along the flow - required: true - style: simple - explode: false - schema: - pattern: "^([0-9]+)(\\.([0-9]+))*$" - type: string - description: Empty string accepted from external applications. - example: 1.3.1 - - name: customer-journey - in: header - description: Holds information supporting customer’s journey to which - the execution applies - required: true - style: simple - explode: false - schema: - type: string - example: Unknown value - requestBody: - content: - application/json: - schema: - required: - - application-name - - release-number - type: object - properties: - application-name: - type: string - description: | - 'Own application name from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' - release-number: - type: string - description: | - 'Own release number from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' - example: - application-name: BadApplication - release-number: 1.0.0 - required: true - responses: - "204": - description: Application deregistered - headers: - x-correlator: - description: UUID for the service execution flow that allows - to correlate requests and responses. Its value must be identical - at the response compared with its corresponding request - style: simple - explode: false - schema: - type: string - example: 550e8400-e29b-11d4-a716-446655440000 - exec-time: - description: "Value written by the service provider, reporting\ - \ the total elapsed time for the execution, including all\ - \ the additional processing needed to retrieve the data from\ - \ the backend service. Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 - life-cycle-state: - description: Life cycle state of the consumed service - style: simple - explode: false - schema: - type: string - example: EXPERIMENTAL - enum: - - EXPERIMENTAL - - OPERATIONAL - - DEPRECATED - - OBSOLETE - - UNKNOWN - - NOT_YET_DEFINED - "400": - description: Response in case of errored service requests - headers: - x-correlator: - description: UUID for the service execution flow that allows - to correlate requests and responses. Its value must be identical - at the response compared with its corresponding request - style: simple - explode: false - schema: - pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" - type: string - example: 550e8400-e29b-11d4-a716-446655440000 - exec-time: - description: "Value written by the service provider, reporting\ - \ the total elapsed time for the execution, including all\ - \ the additional processing needed to retrieve the data from\ - \ the backend service. Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 - content: - application/json: - schema: - $ref: '#/components/schemas/errorDescription' - "401": - description: Response in case of errored service requests - headers: - x-correlator: - description: UUID for the service execution flow that allows - to correlate requests and responses. Its value must be identical - at the response compared with its corresponding request - style: simple - explode: false - schema: - pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" - type: string - example: 550e8400-e29b-11d4-a716-446655440000 - exec-time: - description: "Value written by the service provider, reporting\ - \ the total elapsed time for the execution, including all\ - \ the additional processing needed to retrieve the data from\ - \ the backend service. Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 - content: - application/json: - schema: - $ref: '#/components/schemas/errorDescription' - "403": - description: Response in case of errored service requests - headers: - x-correlator: - description: UUID for the service execution flow that allows - to correlate requests and responses. Its value must be identical - at the response compared with its corresponding request - style: simple - explode: false - schema: - pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" - type: string - example: 550e8400-e29b-11d4-a716-446655440000 - exec-time: - description: "Value written by the service provider, reporting\ - \ the total elapsed time for the execution, including all\ - \ the additional processing needed to retrieve the data from\ - \ the backend service. Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 - content: - application/json: - schema: - $ref: '#/components/schemas/errorDescription' - "404": - description: Response in case of errored service requests - headers: - x-correlator: - description: UUID for the service execution flow that allows - to correlate requests and responses. Its value must be identical - at the response compared with its corresponding request - style: simple - explode: false - schema: - pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" - type: string - example: 550e8400-e29b-11d4-a716-446655440000 - exec-time: - description: "Value written by the service provider, reporting\ - \ the total elapsed time for the execution, including all\ - \ the additional processing needed to retrieve the data from\ - \ the backend service. Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 - content: - application/json: - schema: - $ref: '#/components/schemas/errorDescription' - "500": - description: Response in case of errored service requests - headers: - x-correlator: - description: UUID for the service execution flow that allows - to correlate requests and responses. Its value must be identical - at the response compared with its corresponding request - style: simple - explode: false - schema: - pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" - type: string - example: 550e8400-e29b-11d4-a716-446655440000 - exec-time: - description: "Value written by the service provider, reporting\ - \ the total elapsed time for the execution, including all\ - \ the additional processing needed to retrieve the data from\ - \ the backend service. Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 - content: - application/json: - schema: - $ref: '#/components/schemas/errorDescription' - default: - description: Response in case of errored service requests - headers: - x-correlator: - description: UUID for the service execution flow that allows - to correlate requests and responses. Its value must be identical - at the response compared with its corresponding request - style: simple - explode: false - schema: - pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" - type: string - example: 550e8400-e29b-11d4-a716-446655440000 - exec-time: - description: "Value written by the service provider, reporting\ - \ the total elapsed time for the execution, including all\ - \ the additional processing needed to retrieve the data from\ - \ the backend service. Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 - content: - application/json: - schema: - $ref: '#/components/schemas/errorDescription' - PromptingNewReleaseForUpdatingServerCausesRequestForBroadcastingInfoAboutBackwardCompatibleUpdateOfOperation: - url: - description: | - 'This callback belongs to the sequence of actions that have to be done during the bequeath-your-data-and-die process, despite the forwarding gets neither managed nor directly initiated by the /v1/bequeath-your-data-and-die request. After consuming applications have been redirected to the new release, the new release is triggered (this callback) to request the RegistryOffice for broadcasting information about backward compatible replacements of services.' - post: - parameters: - - name: user - in: header - description: User identifier from the system starting the service - call - required: true - style: simple - explode: false - schema: - type: string - example: User Name - - name: originator - in: header - description: | - 'Identification for the system consuming the API, as defined in - [/core-model-1-4:control-construct/logical-termination-point={uuid}/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' - required: true - style: simple - explode: false - schema: - minLength: 3 - type: string - example: Resolver - - name: x-correlator - in: header - description: UUID for the service execution flow that allows to correlate - requests and responses - required: true - style: simple - explode: false - schema: - pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" - type: string - description: Empty string accepted from external applications. - example: 550e8400-e29b-11d4-a716-446655440000 - - name: trace-indicator - in: header - description: Sequence of request numbers along the flow - required: true - style: simple - explode: false - schema: - pattern: "^([0-9]+)(\\.([0-9]+))*$" - type: string - description: Empty string accepted from external applications. - example: 1.3.1 - - name: customer-journey - in: header - description: Holds information supporting customer’s journey to which - the execution applies - required: true - style: simple - explode: false - schema: - type: string - example: Unknown value - requestBody: - content: - application/json: - schema: - required: - - application-name - - new-operation-name - - old-operation-name - - release-number - type: object - properties: - application-name: - type: string - description: | - 'Own application name from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' - release-number: - type: string - description: | - 'Own release number from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' - old-operation-name: - type: string - description: | - 'Name of the deprecated operation from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-s-*/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' - new-operation-name: - type: string - description: | - 'Name of the replacing operation from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-s-*/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' - example: - application-name: AdministratorAdministration - release-number: 1.0.0 - old-operation-name: /v1/regard-application - new-operation-name: /v2/regard-application - required: true - responses: - "204": - description: Will broadcast operation update - headers: - x-correlator: - description: UUID for the service execution flow that allows - to correlate requests and responses. Its value must be identical - at the response compared with its corresponding request - style: simple - explode: false - schema: - type: string - example: 550e8400-e29b-11d4-a716-446655440000 - exec-time: - description: "Value written by the service provider, reporting\ - \ the total elapsed time for the execution, including all\ - \ the additional processing needed to retrieve the data from\ - \ the backend service. Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 - life-cycle-state: - description: Life cycle state of the consumed service - style: simple - explode: false - schema: - type: string - example: EXPERIMENTAL - enum: - - EXPERIMENTAL - - OPERATIONAL - - DEPRECATED - - OBSOLETE - - UNKNOWN - - NOT_YET_DEFINED - "400": - description: Response in case of errored service requests - headers: - x-correlator: - description: UUID for the service execution flow that allows - to correlate requests and responses. Its value must be identical - at the response compared with its corresponding request - style: simple - explode: false - schema: - pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" - type: string - example: 550e8400-e29b-11d4-a716-446655440000 - exec-time: - description: "Value written by the service provider, reporting\ - \ the total elapsed time for the execution, including all\ - \ the additional processing needed to retrieve the data from\ - \ the backend service. Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 - content: - application/json: - schema: - $ref: '#/components/schemas/errorDescription' - "401": - description: Response in case of errored service requests - headers: - x-correlator: - description: UUID for the service execution flow that allows - to correlate requests and responses. Its value must be identical - at the response compared with its corresponding request - style: simple - explode: false - schema: - pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" - type: string - example: 550e8400-e29b-11d4-a716-446655440000 - exec-time: - description: "Value written by the service provider, reporting\ - \ the total elapsed time for the execution, including all\ - \ the additional processing needed to retrieve the data from\ - \ the backend service. Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 - content: - application/json: - schema: - $ref: '#/components/schemas/errorDescription' - "403": - description: Response in case of errored service requests - headers: - x-correlator: - description: UUID for the service execution flow that allows - to correlate requests and responses. Its value must be identical - at the response compared with its corresponding request - style: simple - explode: false - schema: - pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" - type: string - example: 550e8400-e29b-11d4-a716-446655440000 - exec-time: - description: "Value written by the service provider, reporting\ - \ the total elapsed time for the execution, including all\ - \ the additional processing needed to retrieve the data from\ - \ the backend service. Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 - content: - application/json: - schema: - $ref: '#/components/schemas/errorDescription' - "404": - description: Response in case of errored service requests - headers: - x-correlator: - description: UUID for the service execution flow that allows - to correlate requests and responses. Its value must be identical - at the response compared with its corresponding request - style: simple - explode: false - schema: - pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" - type: string - example: 550e8400-e29b-11d4-a716-446655440000 - exec-time: - description: "Value written by the service provider, reporting\ - \ the total elapsed time for the execution, including all\ - \ the additional processing needed to retrieve the data from\ - \ the backend service. Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 - content: - application/json: - schema: - $ref: '#/components/schemas/errorDescription' - "500": - description: Response in case of errored service requests - headers: - x-correlator: - description: UUID for the service execution flow that allows - to correlate requests and responses. Its value must be identical - at the response compared with its corresponding request - style: simple - explode: false - schema: - pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" - type: string - example: 550e8400-e29b-11d4-a716-446655440000 - exec-time: - description: "Value written by the service provider, reporting\ - \ the total elapsed time for the execution, including all\ - \ the additional processing needed to retrieve the data from\ - \ the backend service. Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 - content: - application/json: - schema: - $ref: '#/components/schemas/errorDescription' - default: - description: Response in case of errored service requests - headers: - x-correlator: - description: UUID for the service execution flow that allows - to correlate requests and responses. Its value must be identical - at the response compared with its corresponding request - style: simple - explode: false - schema: - pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" - type: string - example: 550e8400-e29b-11d4-a716-446655440000 - exec-time: - description: "Value written by the service provider, reporting\ - \ the total elapsed time for the execution, including all\ - \ the additional processing needed to retrieve the data from\ - \ the backend service. Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 - content: - application/json: - schema: - $ref: '#/components/schemas/errorDescription' - security: - - apiKeyAuth: [] - x-swagger-router-controller: IndividualServices - /v1/register-application: - post: - tags: - - IndividualServices - summary: Adds to the list of known applications - description: | - 'Registration service is not protected by operationKey. Receiving a de-registration request shall be assumed after passing wait time to approve from [/core-model-1-4:control-construct/profile-collection/profile=ro-2-0-1-integer-p-000/integer-profile-1-0:integer-profile-pac/integer-profile-configuration/integer-value]' - operationId: registerApplication - parameters: - - name: user - in: header - description: User identifier from the system starting the service call - required: true - style: simple - explode: false - schema: - type: string - example: User Name - - name: originator - in: header - description: | - 'Identification for the system consuming the API, as defined in - [/core-model-1-4:control-construct/logical-termination-point={uuid}/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' - required: true - style: simple - explode: false - schema: - minLength: 3 - type: string - example: Resolver - - name: x-correlator - in: header - description: UUID for the service execution flow that allows to correlate - requests and responses - required: true - style: simple - explode: false - schema: - pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" - type: string - description: Empty string accepted from external applications. - example: 550e8400-e29b-11d4-a716-446655440000 - - name: trace-indicator - in: header - description: Sequence of request numbers along the flow - required: true - style: simple - explode: false - schema: - pattern: "^([0-9]+)(\\.([0-9]+))*$" - type: string - description: Empty string accepted from external applications. - example: 1.3.1 - - name: customer-journey - in: header - description: Holds information supporting customer’s journey to which the - execution applies - required: true - style: simple - explode: false - schema: - type: string - example: Unknown value - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/v1_registerapplication_body' - required: true - responses: - "204": - description: Application registered - headers: - x-correlator: - description: UUID for the service execution flow that allows to correlate - requests and responses. Its value must be identical at the response - compared with its corresponding request - style: simple - explode: false - schema: - type: string - example: 550e8400-e29b-11d4-a716-446655440000 - exec-time: - description: "Value written by the service provider, reporting the total\ - \ elapsed time for the execution, including all the additional processing\ - \ needed to retrieve the data from the backend service. Expressed\ - \ in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 - life-cycle-state: - description: | - 'Life cycle state of the consumed service find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-s-is-001/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' - style: simple - explode: false - schema: - type: string - example: EXPERIMENTAL - enum: - - EXPERIMENTAL - - OPERATIONAL - - DEPRECATED - - OBSOLETE - - UNKNOWN - - NOT_YET_DEFINED - "400": - description: Response in case of errored service requests - headers: - x-correlator: - description: UUID for the service execution flow that allows to correlate - requests and responses. Its value must be identical at the response - compared with its corresponding request - style: simple - explode: false - schema: - pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" - type: string - example: 550e8400-e29b-11d4-a716-446655440000 - exec-time: - description: "Value written by the service provider, reporting the total\ - \ elapsed time for the execution, including all the additional processing\ - \ needed to retrieve the data from the backend service. Expressed\ - \ in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 - content: - application/json: - schema: - $ref: '#/components/schemas/errorDescription' - "403": - description: Response in case of errored service requests - headers: - x-correlator: - description: UUID for the service execution flow that allows to correlate - requests and responses. Its value must be identical at the response - compared with its corresponding request - style: simple - explode: false - schema: - pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" - type: string - example: 550e8400-e29b-11d4-a716-446655440000 - exec-time: - description: "Value written by the service provider, reporting the total\ - \ elapsed time for the execution, including all the additional processing\ - \ needed to retrieve the data from the backend service. Expressed\ - \ in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 - content: - application/json: - schema: - $ref: '#/components/schemas/errorDescription' - "404": - description: Response in case of errored service requests - headers: - x-correlator: - description: UUID for the service execution flow that allows to correlate - requests and responses. Its value must be identical at the response - compared with its corresponding request - style: simple - explode: false - schema: - pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" - type: string - example: 550e8400-e29b-11d4-a716-446655440000 - exec-time: - description: "Value written by the service provider, reporting the total\ - \ elapsed time for the execution, including all the additional processing\ - \ needed to retrieve the data from the backend service. Expressed\ - \ in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 - content: - application/json: - schema: - $ref: '#/components/schemas/errorDescription' - "500": - description: Response in case of errored service requests - headers: - x-correlator: - description: UUID for the service execution flow that allows to correlate - requests and responses. Its value must be identical at the response - compared with its corresponding request - style: simple - explode: false - schema: - pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" - type: string - example: 550e8400-e29b-11d4-a716-446655440000 - exec-time: - description: "Value written by the service provider, reporting the total\ - \ elapsed time for the execution, including all the additional processing\ - \ needed to retrieve the data from the backend service. Expressed\ - \ in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 - content: - application/json: - schema: - $ref: '#/components/schemas/errorDescription' - default: - description: Response in case of errored service requests - headers: - x-correlator: - description: UUID for the service execution flow that allows to correlate - requests and responses. Its value must be identical at the response - compared with its corresponding request - style: simple - explode: false - schema: - pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" - type: string - example: 550e8400-e29b-11d4-a716-446655440000 - exec-time: - description: "Value written by the service provider, reporting the total\ - \ elapsed time for the execution, including all the additional processing\ - \ needed to retrieve the data from the backend service. Expressed\ - \ in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 - content: - application/json: - schema: - $ref: '#/components/schemas/errorDescription' - callbacks: - TypeApprovalCausesRequestForEmbedding: - url: - post: - parameters: - - name: user - in: header - description: User identifier from the system starting the service - call - required: true - style: simple - explode: false - schema: - type: string - example: User Name - - name: originator - in: header - description: | - 'Identification for the system consuming the API, as defined in - [/core-model-1-4:control-construct/logical-termination-point={uuid}/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' - required: true - style: simple - explode: false - schema: - minLength: 3 - type: string - example: Resolver - - name: x-correlator - in: header - description: UUID for the service execution flow that allows to correlate - requests and responses - required: true - style: simple - explode: false - schema: - pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" - type: string - description: Empty string accepted from external applications. - example: 550e8400-e29b-11d4-a716-446655440000 - - name: trace-indicator - in: header - description: Sequence of request numbers along the flow - required: true - style: simple - explode: false - schema: - pattern: "^([0-9]+)(\\.([0-9]+))*$" - type: string - description: Empty string accepted from external applications. - example: 1.3.1 - - name: customer-journey - in: header - description: Holds information supporting customer’s journey to which - the execution applies - required: true - style: simple - explode: false - schema: - type: string - example: Unknown value - requestBody: - content: - application/json: - schema: - required: - - deregistration-operation - - old-release-address - - old-release-port - - old-release-protocol - - registry-office-address - - registry-office-application - - registry-office-application-release-number - - registry-office-port - - registry-office-protocol - - relay-operation-update-operation - - relay-server-replacement-operation - type: object - properties: - registry-office-application: - type: string - description: | - 'Own application name from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' - registry-office-application-release-number: - type: string - description: | - 'Own release number from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' - relay-server-replacement-operation: - type: string - description: | - 'Operation for requesting for broadcasting a new server address from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-s-is-010/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' - relay-operation-update-operation: - type: string - description: | - 'Operation for requesting for broadcasting a backward compatible replacement of an operation from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-s-is-011/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' - deregistration-operation: - type: string - description: | - 'Operation for deregistering from the application layer from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-s-is-002/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' - registry-office-protocol: - type: string - description: | - 'Protocol for addressing the RegistryOffice application from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-protocol]' - registry-office-address: - type: object - properties: - ip-address: - type: object - properties: - ipv-4-address: - type: string - description: | - 'Own IP address from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/ipv-4-address]' - domain-name: - type: string - description: | - 'Own domain name from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/domain-name]' - registry-office-port: - type: integer - description: | - 'Own TCP port from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-port]' - old-release-protocol: - type: string - description: | - 'If application of the same name (but lower release number is already registered), Protocol for addressing the old release of the same application from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*-*-*-*-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol] otherwise protocol for addressing the newly approved application.' - old-release-address: - type: object - properties: - ip-address: - type: object - properties: - ipv-4-address: - type: string - description: | - 'If application of the same name (but lower release number is already registered), IPv4 address of the OldRelease from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*-*-*-*-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address] otherwise IPv4 address of the newly approved application.' - domain-name: - type: string - description: | - 'If application of the same name (but lower release number is already registered), domain name of the OldRelease from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*-*-*-*-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name] otherwise domain-name of the newly approved application.' - old-release-port: - type: integer - description: | - 'If application of the same name (but lower release number is already registered), TCP port of the OldRelease from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*-*-*-*-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port] otherwise TCP port of the newly approved application.' - example: - registry-office-application: RegistryOffice - registry-office-application-release-number: 2.0.1 - relay-server-replacement-operation: /v1/relay-server-replacement - relay-operation-update-operation: /v1/relay-operation-update - deregistration-operation: /v1/deregister-application - registry-office-protocol: HTTP - registry-office-address: - ip-address: - ipv-4-address: 1.1.3.8 - registry-office-port: 3008 - old-release-protocol: HTTP - old-release-address: - ip-address: - ipv-4-address: 1.1.3.1 - old-release-port: 3001 - required: true - responses: - "204": - description: Will embed into the MBH SDN application layer - headers: - x-correlator: - description: UUID for the service execution flow that allows - to correlate requests and responses. Its value must be identical - at the response compared with its corresponding request - style: simple - explode: false - schema: - type: string - example: 550e8400-e29b-11d4-a716-446655440000 - exec-time: - description: "Value written by the service provider, reporting\ - \ the total elapsed time for the execution, including all\ - \ the additional processing needed to retrieve the data from\ - \ the backend service. Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 - life-cycle-state: - description: Life cycle state of the consumed service - style: simple - explode: false - schema: - type: string - example: EXPERIMENTAL - enum: - - EXPERIMENTAL - - OPERATIONAL - - DEPRECATED - - OBSOLETE - - UNKNOWN - - NOT_YET_DEFINED - "400": - description: Response in case of errored service requests - headers: - x-correlator: - description: UUID for the service execution flow that allows - to correlate requests and responses. Its value must be identical - at the response compared with its corresponding request - style: simple - explode: false - schema: - pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" - type: string - example: 550e8400-e29b-11d4-a716-446655440000 - exec-time: - description: "Value written by the service provider, reporting\ - \ the total elapsed time for the execution, including all\ - \ the additional processing needed to retrieve the data from\ - \ the backend service. Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 - content: - application/json: - schema: - $ref: '#/components/schemas/errorDescription' - "401": - description: Response in case of errored service requests - headers: - x-correlator: - description: UUID for the service execution flow that allows - to correlate requests and responses. Its value must be identical - at the response compared with its corresponding request - style: simple - explode: false - schema: - pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" - type: string - example: 550e8400-e29b-11d4-a716-446655440000 - exec-time: - description: "Value written by the service provider, reporting\ - \ the total elapsed time for the execution, including all\ - \ the additional processing needed to retrieve the data from\ - \ the backend service. Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 - content: - application/json: - schema: - $ref: '#/components/schemas/errorDescription' - "403": - description: Response in case of errored service requests - headers: - x-correlator: - description: UUID for the service execution flow that allows - to correlate requests and responses. Its value must be identical - at the response compared with its corresponding request - style: simple - explode: false - schema: - pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" - type: string - example: 550e8400-e29b-11d4-a716-446655440000 - exec-time: - description: "Value written by the service provider, reporting\ - \ the total elapsed time for the execution, including all\ - \ the additional processing needed to retrieve the data from\ - \ the backend service. Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 - content: - application/json: - schema: - $ref: '#/components/schemas/errorDescription' - "404": - description: Response in case of errored service requests - headers: - x-correlator: - description: UUID for the service execution flow that allows - to correlate requests and responses. Its value must be identical - at the response compared with its corresponding request - style: simple - explode: false - schema: - pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" - type: string - example: 550e8400-e29b-11d4-a716-446655440000 - exec-time: - description: "Value written by the service provider, reporting\ - \ the total elapsed time for the execution, including all\ - \ the additional processing needed to retrieve the data from\ - \ the backend service. Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 - content: - application/json: - schema: - $ref: '#/components/schemas/errorDescription' - "500": - description: Response in case of errored service requests - headers: - x-correlator: - description: UUID for the service execution flow that allows - to correlate requests and responses. Its value must be identical - at the response compared with its corresponding request - style: simple - explode: false - schema: - pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" - type: string - example: 550e8400-e29b-11d4-a716-446655440000 - exec-time: - description: "Value written by the service provider, reporting\ - \ the total elapsed time for the execution, including all\ - \ the additional processing needed to retrieve the data from\ - \ the backend service. Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 - content: - application/json: - schema: - $ref: '#/components/schemas/errorDescription' - default: - description: Response in case of errored service requests - headers: - x-correlator: - description: UUID for the service execution flow that allows - to correlate requests and responses. Its value must be identical - at the response compared with its corresponding request - style: simple - explode: false - schema: - pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" - type: string - example: 550e8400-e29b-11d4-a716-446655440000 - exec-time: - description: "Value written by the service provider, reporting\ - \ the total elapsed time for the execution, including all\ - \ the additional processing needed to retrieve the data from\ - \ the backend service. Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: $ref: '#/components/schemas/errorDescription' + security: + - apiKeyAuth: [] + x-swagger-router-controller: IndividualServices + /v1/register-application: + description: | + 'DEPRECATED Service shall be deleted with RO v3.0.0 Starting from AP v2.1.0, /v2/register-application shall be applied as a backward compatible update' + post: + tags: + - IndividualServices + summary: Adds to the list of known applications + description: | + 'Registration service is not protected by operationKey. Receiving a de-registration request shall be assumed after passing wait time to approve from [/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-0-integer-p-010/integer-profile-1-0:integer-profile-pac/integer-profile-configuration/integer-value]' + operationId: registerApplication + parameters: + - name: user + in: header + description: User identifier from the system starting the service call + required: true + style: simple + explode: false + schema: + type: string + example: User Name + - name: originator + in: header + description: | + 'Identification for the system consuming the API, as defined in + [/core-model-1-4:control-construct/logical-termination-point={uuid}/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + required: true + style: simple + explode: false + schema: + minLength: 3 + type: string + example: Resolver + - name: x-correlator + in: header + description: UUID for the service execution flow that allows to correlate + requests and responses + required: true + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + description: Empty string accepted from external applications. + example: 550e8400-e29b-11d4-a716-446655440000 + - name: trace-indicator + in: header + description: Sequence of request numbers along the flow + required: true + style: simple + explode: false + schema: + pattern: "^([0-9]+)(\\.([0-9]+))*$" + type: string + description: Empty string accepted from external applications. + example: 1.3.1 + - name: customer-journey + in: header + description: Holds information supporting customer’s journey to which the + execution applies + required: true + style: simple + explode: false + schema: + type: string + example: Unknown value + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/v1_registerapplication_body' + required: true + responses: + "204": + description: Application registered + headers: + x-correlator: + description: UUID for the service execution flow that allows to correlate + requests and responses. Its value must be identical at the response + compared with its corresponding request + style: simple + explode: false + schema: + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting the total\ + \ elapsed time for the execution, including all the additional processing\ + \ needed to retrieve the data from the backend service. Expressed\ + \ in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + backend-time: + description: "Value written by the service provider, reporting the elapsed\ + \ time for data retrieval from the backend (service invocation, database\ + \ access…). Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 850 + life-cycle-state: + description: | + 'Life cycle state of the consumed service find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-is-001/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + style: simple + explode: false + schema: + type: string + example: EXPERIMENTAL + enum: + - EXPERIMENTAL + - OPERATIONAL + - DEPRECATED + - OBSOLETE + - UNKNOWN + - NOT_YET_DEFINED + "400": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows to correlate + requests and responses. Its value must be identical at the response + compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting the total\ + \ elapsed time for the execution, including all the additional processing\ + \ needed to retrieve the data from the backend service. Expressed\ + \ in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "403": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows to correlate + requests and responses. Its value must be identical at the response + compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting the total\ + \ elapsed time for the execution, including all the additional processing\ + \ needed to retrieve the data from the backend service. Expressed\ + \ in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "404": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows to correlate + requests and responses. Its value must be identical at the response + compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting the total\ + \ elapsed time for the execution, including all the additional processing\ + \ needed to retrieve the data from the backend service. Expressed\ + \ in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "500": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows to correlate + requests and responses. Its value must be identical at the response + compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting the total\ + \ elapsed time for the execution, including all the additional processing\ + \ needed to retrieve the data from the backend service. Expressed\ + \ in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + default: + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows to correlate + requests and responses. Its value must be identical at the response + compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting the total\ + \ elapsed time for the execution, including all the additional processing\ + \ needed to retrieve the data from the backend service. Expressed\ + \ in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + x-swagger-router-controller: IndividualServices + /v2/register-application: + post: + tags: + - IndividualServices + summary: Adds to the list of known applications + description: | + 'Registration service is not protected by operationKey. Receiving a de-registration request shall be assumed after passing wait time to approve from [/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-0-integer-p-010/integer-profile-1-0:integer-profile-pac/integer-profile-configuration/integer-value]' + operationId: registerApplication2 + parameters: + - name: user + in: header + description: User identifier from the system starting the service call + required: true + style: simple + explode: false + schema: + type: string + example: User Name + - name: originator + in: header + description: | + 'Identification for the system consuming the API, as defined in + [/core-model-1-4:control-construct/logical-termination-point={uuid}/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + required: true + style: simple + explode: false + schema: + minLength: 3 + type: string + example: Resolver + - name: x-correlator + in: header + description: UUID for the service execution flow that allows to correlate + requests and responses + required: true + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + description: Empty string accepted from external applications. + example: 550e8400-e29b-11d4-a716-446655440000 + - name: trace-indicator + in: header + description: Sequence of request numbers along the flow + required: true + style: simple + explode: false + schema: + pattern: "^([0-9]+)(\\.([0-9]+))*$" + type: string + description: Empty string accepted from external applications. + example: 1.3.1 + - name: customer-journey + in: header + description: Holds information supporting customer’s journey to which the + execution applies + required: true + style: simple + explode: false + schema: + type: string + example: Unknown value + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/v2_registerapplication_body' + examples: + old-multiple-TcpServers-format: + value: + application-name: TypeApprovalRegister + release-number: 2.0.1 + preceding-application-name: TypeApprovalRegister + preceding-release-number: 1.0.0 + embedding-operation: /v1/embed-yourself + client-update-operation: /v1/update-client + operation-client-update-operation: /v1/update-operation-client + tcp-server-list: + - protocol: HTTP + address: + ip-address: + ipv-4-address: 127.0.0.1 + port: 3009 + - protocol: HTTPS + address: + ip-address: + ipv-4-address: 1.2.3.9 + port: 3209 + new-single-TcpServer-format: + value: + application-name: TypeApprovalRegister + release-number: 2.0.1 + preceding-application-name: TypeApprovalRegister + preceding-release-number: 1.0.0 + embedding-operation: /v1/embed-yourself + client-update-operation: /v1/update-client + operation-client-update-operation: /v1/update-operation-client + dispose-remainders-operation: /v1/dispose-remainders-of-deregistered-application + preceding-release-operation: /v1/inform-about-preceding-release + subsequent-release-operation: /v1/update-client-of-subsequent-release + tcp-server: + protocol: HTTP + address: + ip-address: + ipv-4-address: 127.0.0.1 + port: 3009 + required: true + responses: + "204": + description: Application registered + headers: + x-correlator: + description: UUID for the service execution flow that allows to correlate + requests and responses. Its value must be identical at the response + compared with its corresponding request + style: simple + explode: false + schema: + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting the total\ + \ elapsed time for the execution, including all the additional processing\ + \ needed to retrieve the data from the backend service. Expressed\ + \ in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + backend-time: + description: "Value written by the service provider, reporting the elapsed\ + \ time for data retrieval from the backend (service invocation, database\ + \ access…). Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 850 + life-cycle-state: + description: | + 'Life cycle state of the consumed service find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-is-001/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + style: simple + explode: false + schema: + type: string + example: EXPERIMENTAL + enum: + - EXPERIMENTAL + - OPERATIONAL + - DEPRECATED + - OBSOLETE + - UNKNOWN + - NOT_YET_DEFINED + "400": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows to correlate + requests and responses. Its value must be identical at the response + compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting the total\ + \ elapsed time for the execution, including all the additional processing\ + \ needed to retrieve the data from the backend service. Expressed\ + \ in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "403": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows to correlate + requests and responses. Its value must be identical at the response + compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting the total\ + \ elapsed time for the execution, including all the additional processing\ + \ needed to retrieve the data from the backend service. Expressed\ + \ in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "404": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows to correlate + requests and responses. Its value must be identical at the response + compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting the total\ + \ elapsed time for the execution, including all the additional processing\ + \ needed to retrieve the data from the backend service. Expressed\ + \ in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "500": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows to correlate + requests and responses. Its value must be identical at the response + compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting the total\ + \ elapsed time for the execution, including all the additional processing\ + \ needed to retrieve the data from the backend service. Expressed\ + \ in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + default: + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows to correlate + requests and responses. Its value must be identical at the response + compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting the total\ + \ elapsed time for the execution, including all the additional processing\ + \ needed to retrieve the data from the backend service. Expressed\ + \ in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' x-swagger-router-controller: IndividualServices /v1/deregister-application: post: @@ -4542,7 +3152,7 @@ paths: example: 850 life-cycle-state: description: | - 'Life cycle state of the consumed service find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-s-is-002/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + 'Life cycle state of the consumed service find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-is-002/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' style: simple explode: false schema: @@ -4578,15 +3188,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -4614,15 +3215,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -4650,15 +3242,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -4686,15 +3269,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -4722,15 +3296,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -4758,19 +3323,296 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: $ref: '#/components/schemas/errorDescription' + callbacks: + DeRegistrationBroadcast: + url: + description: Exclusively approved applications shall get information about + de-registered applications. + post: + parameters: + - name: user + in: header + description: User identifier from the system starting the service + call + required: true + style: simple + explode: false + schema: + type: string + example: User Name + - name: originator + in: header + description: | + 'Identification for the system consuming the API, as defined in + [/core-model-1-4:control-construct/logical-termination-point={uuid}/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + required: true + style: simple + explode: false + schema: + minLength: 3 + type: string + example: Resolver + - name: x-correlator + in: header + description: UUID for the service execution flow that allows to correlate + requests and responses + required: true + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + description: Empty string accepted from external applications. + example: 550e8400-e29b-11d4-a716-446655440000 + - name: trace-indicator + in: header + description: Sequence of request numbers along the flow + required: true + style: simple + explode: false + schema: + pattern: "^([0-9]+)(\\.([0-9]+))*$" + type: string + description: Empty string accepted from external applications. + example: 1.3.1 + - name: customer-journey + in: header + description: Holds information supporting customer’s journey to which + the execution applies + required: true + style: simple + explode: false + schema: + type: string + example: Unknown value + requestBody: + content: + application/json: + schema: + type: object + properties: + application-name: + type: string + description: | + 'Name of application that shall be removed from configuration and application data from [$/v1/deregister-application.body#application-name]' + release-number: + type: string + description: | + 'Release of application that shall be removed from configuration and application data from [$/v1/deregister-application.body#release-number]' + required: true + responses: + "204": + description: Application removed from configuration and application + data + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + backend-time: + description: "Value written by the service provider, reporting\ + \ the elapsed time for data retrieval from the backend (service\ + \ invocation, database access…). Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 850 + life-cycle-state: + description: Life cycle state of the consumed service + style: simple + explode: false + schema: + type: string + example: EXPERIMENTAL + enum: + - EXPERIMENTAL + - OPERATIONAL + - DEPRECATED + - OBSOLETE + - UNKNOWN + - NOT_YET_DEFINED + "400": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "401": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "403": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "404": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "500": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + default: + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' security: - apiKeyAuth: [] x-swagger-router-controller: IndividualServices @@ -4778,8 +3620,8 @@ paths: post: tags: - IndividualServices - summary: Updates the approval status of an already registered application - operationId: updateApprovalStatus + summary: Informs about the changed approval status of an application + operationId: regardUpdatedApprovalStatus parameters: - name: user in: header @@ -4840,10 +3682,23 @@ paths: application/json: schema: $ref: '#/components/schemas/v1_regardupdatedapprovalstatus_body' + examples: + requestBody-according-to-v2.1: + value: + application-name: BadApplication + release-number: 1.0.0 + approval-status: BARRED + response-receiver-operation: /v1/document-embedding-status + requestBody-according-to-v2.0: + value: + application-name: BadApplication + release-number: 1.0.0 + approval-status: BARRED required: true responses: - "204": - description: Approval status updated + "200": + description: | + 'Approval status updated ResponseCode 200 is to be sent, if the requestBody is according to v2.1 or later' headers: x-correlator: description: UUID for the service execution flow that allows to correlate @@ -4875,7 +3730,7 @@ paths: example: 850 life-cycle-state: description: | - 'Life cycle state of the consumed service find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-s-is-003/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + 'Life cycle state of the consumed service find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-is-003/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' style: simple explode: false schema: @@ -4888,8 +3743,13 @@ paths: - OBSOLETE - UNKNOWN - NOT_YET_DEFINED - "400": - description: Response in case of errored service requests + content: + application/json: + schema: + $ref: '#/components/schemas/inline_response_200' + "204": + description: | + 'Approval status updated DEPRECATED ResponseCode 204 is just for assuring backward compatibility during the upgrade process of the TAC applications It shall be deleted with RO v3.0.0 Is is to be sent, if the requestBody is according to v2.0' headers: x-correlator: description: UUID for the service execution flow that allows to correlate @@ -4898,7 +3758,6 @@ paths: style: simple explode: false schema: - pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" type: string example: 550e8400-e29b-11d4-a716-446655440000 exec-time: @@ -4920,11 +3779,22 @@ paths: schema: type: integer example: 850 - content: - application/json: + life-cycle-state: + description: | + 'Life cycle state of the consumed service find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-s-is-003/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + style: simple + explode: false schema: - $ref: '#/components/schemas/errorDescription' - "401": + type: string + example: EXPERIMENTAL + enum: + - EXPERIMENTAL + - OPERATIONAL + - DEPRECATED + - OBSOLETE + - UNKNOWN + - NOT_YET_DEFINED + "400": description: Response in case of errored service requests headers: x-correlator: @@ -4947,15 +3817,33 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "401": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows to correlate + requests and responses. Its value must be identical at the response + compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting the total\ + \ elapsed time for the execution, including all the additional processing\ + \ needed to retrieve the data from the backend service. Expressed\ + \ in milliseconds" style: simple explode: false schema: type: integer - example: 850 + example: 1100 content: application/json: schema: @@ -4983,15 +3871,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -5019,15 +3898,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -5055,15 +3925,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -5091,24 +3952,4966 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: $ref: '#/components/schemas/errorDescription' callbacks: - ServerReplacementBroadcast: + BarringApplicationCausesDeregisteringOfApplication: + url: + description: "Callback to be activated, if {$request.body#approval-status}\ + \ == BARRED" + post: + parameters: + - name: user + in: header + description: User identifier from the system starting the service + call + required: true + style: simple + explode: false + schema: + type: string + example: User Name + - name: originator + in: header + description: | + 'Identification for the system consuming the API, as defined in + [/core-model-1-4:control-construct/logical-termination-point={uuid}/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + required: true + style: simple + explode: false + schema: + minLength: 3 + type: string + example: Resolver + - name: x-correlator + in: header + description: UUID for the service execution flow that allows to correlate + requests and responses + required: true + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + description: Empty string accepted from external applications. + example: 550e8400-e29b-11d4-a716-446655440000 + - name: trace-indicator + in: header + description: Sequence of request numbers along the flow + required: true + style: simple + explode: false + schema: + pattern: "^([0-9]+)(\\.([0-9]+))*$" + type: string + description: Empty string accepted from external applications. + example: 1.3.1 + - name: customer-journey + in: header + description: Holds information supporting customer’s journey to which + the execution applies + required: true + style: simple + explode: false + schema: + type: string + example: Unknown value + requestBody: + content: + application/json: + schema: + type: object + properties: + application-name: + type: string + description: | + 'Name of application that shall be removed from the register from {$request.body#application-name}' + release-number: + type: string + description: | + 'Release of application that shall be removed from the register from {$request.body#release-number}' + required: true + responses: + "204": + description: Application deregistered + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + backend-time: + description: "Value written by the service provider, reporting\ + \ the elapsed time for data retrieval from the backend (service\ + \ invocation, database access…). Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 850 + life-cycle-state: + description: Life cycle state of the consumed service + style: simple + explode: false + schema: + type: string + example: EXPERIMENTAL + enum: + - EXPERIMENTAL + - OPERATIONAL + - DEPRECATED + - OBSOLETE + - UNKNOWN + - NOT_YET_DEFINED + "400": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "401": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "403": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "404": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "500": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + default: + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + ApprovingApplicationCausesConnectingWith: + Alt: + post: + parameters: + - name: user + in: header + description: User identifier from the system starting the service + call + required: true + style: simple + explode: false + schema: + type: string + example: User Name + - name: originator + in: header + description: | + 'Identification for the system consuming the API, as defined in + [/core-model-1-4:control-construct/logical-termination-point={uuid}/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + required: true + style: simple + explode: false + schema: + minLength: 3 + type: string + example: Resolver + - name: x-correlator + in: header + description: UUID for the service execution flow that allows to correlate + requests and responses + required: true + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + description: Empty string accepted from external applications. + example: 550e8400-e29b-11d4-a716-446655440000 + - name: trace-indicator + in: header + description: Sequence of request numbers along the flow + required: true + style: simple + explode: false + schema: + pattern: "^([0-9]+)(\\.([0-9]+))*$" + type: string + description: Empty string accepted from external applications. + example: 1.3.1 + - name: customer-journey + in: header + description: Holds information supporting customer’s journey to which + the execution applies + required: true + style: simple + explode: false + schema: + type: string + example: Unknown value + requestBody: + content: + application/json: + schema: + type: object + properties: + application-name: + type: string + description: | + 'Name of application that is approved from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$request.body#application-name}' + release-number: + type: string + description: | + 'Release of application that is approved from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$request.body#release-number}' + protocol: + type: string + description: | + 'Protocol to be used for addressing the application that is approved from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + address: + type: object + properties: + ip-address: + type: object + properties: + ipv-4-address: + type: string + description: | + 'IPv4 address of application that is approved from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + domain-name: + type: string + description: | + 'Domain name of application that is approved from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + port: + type: integer + description: | + 'TCP port of application that is approved from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + required: true + responses: + "200": + description: Application will be represented in the application + layer topology + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + backend-time: + description: "Value written by the service provider, reporting\ + \ the elapsed time for data retrieval from the backend (service\ + \ invocation, database access…). Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 850 + life-cycle-state: + description: Life cycle state of the consumed service + style: simple + explode: false + schema: + type: string + example: EXPERIMENTAL + enum: + - EXPERIMENTAL + - OPERATIONAL + - DEPRECATED + - OBSOLETE + - UNKNOWN + - NOT_YET_DEFINED + content: + application/json: + schema: + type: object + properties: + successfully-connected: + type: boolean + reason-of-failure: + type: string + "400": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "401": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "403": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "404": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "500": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + default: + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + Okm: + post: + parameters: + - name: user + in: header + description: User identifier from the system starting the service + call + required: true + style: simple + explode: false + schema: + type: string + example: User Name + - name: originator + in: header + description: | + 'Identification for the system consuming the API, as defined in + [/core-model-1-4:control-construct/logical-termination-point={uuid}/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + required: true + style: simple + explode: false + schema: + minLength: 3 + type: string + example: Resolver + - name: x-correlator + in: header + description: UUID for the service execution flow that allows to correlate + requests and responses + required: true + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + description: Empty string accepted from external applications. + example: 550e8400-e29b-11d4-a716-446655440000 + - name: trace-indicator + in: header + description: Sequence of request numbers along the flow + required: true + style: simple + explode: false + schema: + pattern: "^([0-9]+)(\\.([0-9]+))*$" + type: string + description: Empty string accepted from external applications. + example: 1.3.1 + - name: customer-journey + in: header + description: Holds information supporting customer’s journey to which + the execution applies + required: true + style: simple + explode: false + schema: + type: string + example: Unknown value + requestBody: + content: + application/json: + schema: + type: object + properties: + application-name: + type: string + description: | + 'Name of application that is approved from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$request.body#application-name}' + release-number: + type: string + description: | + 'Release of application that is approved from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$request.body#release-number}' + protocol: + type: string + description: | + 'Protocol to be used for addressing the application that is approved from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + address: + type: object + properties: + ip-address: + type: object + properties: + ipv-4-address: + type: string + description: | + 'IPv4 address of application that is approved from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + domain-name: + type: string + description: | + 'Domain name of application that is approved from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + port: + type: integer + description: | + 'TCP port of application that is approved from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + required: true + responses: + "200": + description: Application will be able to receive operationKeys + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + backend-time: + description: "Value written by the service provider, reporting\ + \ the elapsed time for data retrieval from the backend (service\ + \ invocation, database access…). Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 850 + life-cycle-state: + description: Life cycle state of the consumed service + style: simple + explode: false + schema: + type: string + example: EXPERIMENTAL + enum: + - EXPERIMENTAL + - OPERATIONAL + - DEPRECATED + - OBSOLETE + - UNKNOWN + - NOT_YET_DEFINED + content: + application/json: + schema: + type: object + properties: + successfully-connected: + type: boolean + reason-of-failure: + type: string + "400": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "401": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "403": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "404": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "500": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + default: + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + Eatl: + post: + parameters: + - name: user + in: header + description: User identifier from the system starting the service + call + required: true + style: simple + explode: false + schema: + type: string + example: User Name + - name: originator + in: header + description: | + 'Identification for the system consuming the API, as defined in + [/core-model-1-4:control-construct/logical-termination-point={uuid}/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + required: true + style: simple + explode: false + schema: + minLength: 3 + type: string + example: Resolver + - name: x-correlator + in: header + description: UUID for the service execution flow that allows to correlate + requests and responses + required: true + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + description: Empty string accepted from external applications. + example: 550e8400-e29b-11d4-a716-446655440000 + - name: trace-indicator + in: header + description: Sequence of request numbers along the flow + required: true + style: simple + explode: false + schema: + pattern: "^([0-9]+)(\\.([0-9]+))*$" + type: string + description: Empty string accepted from external applications. + example: 1.3.1 + - name: customer-journey + in: header + description: Holds information supporting customer’s journey to which + the execution applies + required: true + style: simple + explode: false + schema: + type: string + example: Unknown value + requestBody: + content: + application/json: + schema: + type: object + properties: + application-name: + type: string + description: | + 'Name of application that is approved from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$request.body#application-name}' + release-number: + type: string + description: | + 'Release of application that is approved from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$request.body#release-number}' + protocol: + type: string + description: | + 'Protocol to be used for addressing the application that is approved from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + address: + type: object + properties: + ip-address: + type: object + properties: + ipv-4-address: + type: string + description: | + 'IPv4 address of application that is approved from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + domain-name: + type: string + description: | + 'Domain name of application that is approved from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + port: + type: integer + description: | + 'TCP port of application that is approved from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + required: true + responses: + "200": + description: Application will be requested for service request notifications + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + backend-time: + description: "Value written by the service provider, reporting\ + \ the elapsed time for data retrieval from the backend (service\ + \ invocation, database access…). Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 850 + life-cycle-state: + description: Life cycle state of the consumed service + style: simple + explode: false + schema: + type: string + example: EXPERIMENTAL + enum: + - EXPERIMENTAL + - OPERATIONAL + - DEPRECATED + - OBSOLETE + - UNKNOWN + - NOT_YET_DEFINED + content: + application/json: + schema: + type: object + properties: + successfully-connected: + type: boolean + reason-of-failure: + type: string + "400": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "401": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "403": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "404": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "500": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + default: + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + Aa: + post: + parameters: + - name: user + in: header + description: User identifier from the system starting the service + call + required: true + style: simple + explode: false + schema: + type: string + example: User Name + - name: originator + in: header + description: | + 'Identification for the system consuming the API, as defined in + [/core-model-1-4:control-construct/logical-termination-point={uuid}/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + required: true + style: simple + explode: false + schema: + minLength: 3 + type: string + example: Resolver + - name: x-correlator + in: header + description: UUID for the service execution flow that allows to correlate + requests and responses + required: true + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + description: Empty string accepted from external applications. + example: 550e8400-e29b-11d4-a716-446655440000 + - name: trace-indicator + in: header + description: Sequence of request numbers along the flow + required: true + style: simple + explode: false + schema: + pattern: "^([0-9]+)(\\.([0-9]+))*$" + type: string + description: Empty string accepted from external applications. + example: 1.3.1 + - name: customer-journey + in: header + description: Holds information supporting customer’s journey to which + the execution applies + required: true + style: simple + explode: false + schema: + type: string + example: Unknown value + requestBody: + content: + application/json: + schema: + type: object + properties: + application-name: + type: string + description: | + 'Name of application that is approved from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$request.body#application-name}' + release-number: + type: string + description: | + 'Release of application that is approved from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$request.body#release-number}' + protocol: + type: string + description: | + 'Protocol to be used for addressing the application that is approved from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + address: + type: object + properties: + ip-address: + type: object + properties: + ipv-4-address: + type: string + description: | + 'IPv4 address of application that is approved from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + domain-name: + type: string + description: | + 'Domain name of application that is approved from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + port: + type: integer + description: | + 'TCP port of application that is approved from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + required: true + responses: + "200": + description: Application requested to inquire approvals of BasicAuth + requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + backend-time: + description: "Value written by the service provider, reporting\ + \ the elapsed time for data retrieval from the backend (service\ + \ invocation, database access…). Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 850 + life-cycle-state: + description: Life cycle state of the consumed service + style: simple + explode: false + schema: + type: string + example: EXPERIMENTAL + enum: + - EXPERIMENTAL + - OPERATIONAL + - DEPRECATED + - OBSOLETE + - UNKNOWN + - NOT_YET_DEFINED + content: + application/json: + schema: + type: object + properties: + successfully-connected: + type: boolean + reason-of-failure: + type: string + "400": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "401": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "403": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "404": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "500": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + default: + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + Ol: + post: + parameters: + - name: user + in: header + description: User identifier from the system starting the service + call + required: true + style: simple + explode: false + schema: + type: string + example: User Name + - name: originator + in: header + description: | + 'Identification for the system consuming the API, as defined in + [/core-model-1-4:control-construct/logical-termination-point={uuid}/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + required: true + style: simple + explode: false + schema: + minLength: 3 + type: string + example: Resolver + - name: x-correlator + in: header + description: UUID for the service execution flow that allows to correlate + requests and responses + required: true + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + description: Empty string accepted from external applications. + example: 550e8400-e29b-11d4-a716-446655440000 + - name: trace-indicator + in: header + description: Sequence of request numbers along the flow + required: true + style: simple + explode: false + schema: + pattern: "^([0-9]+)(\\.([0-9]+))*$" + type: string + description: Empty string accepted from external applications. + example: 1.3.1 + - name: customer-journey + in: header + description: Holds information supporting customer’s journey to which + the execution applies + required: true + style: simple + explode: false + schema: + type: string + example: Unknown value + requestBody: + content: + application/json: + schema: + type: object + properties: + application-name: + type: string + description: | + 'Name of application that is approved from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$request.body#application-name}' + release-number: + type: string + description: | + 'Release of application that is approved from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$request.body#release-number}' + protocol: + type: string + description: | + 'Protocol to be used for addressing the application that is approved from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + address: + type: object + properties: + ip-address: + type: object + properties: + ipv-4-address: + type: string + description: | + 'IPv4 address of application that is approved from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + domain-name: + type: string + description: | + 'Domain name of application that is approved from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + port: + type: integer + description: | + 'TCP port of application that is approved from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + required: true + responses: + "200": + description: Application will be requested for OaM request notifications + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + backend-time: + description: "Value written by the service provider, reporting\ + \ the elapsed time for data retrieval from the backend (service\ + \ invocation, database access…). Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 850 + life-cycle-state: + description: Life cycle state of the consumed service + style: simple + explode: false + schema: + type: string + example: EXPERIMENTAL + enum: + - EXPERIMENTAL + - OPERATIONAL + - DEPRECATED + - OBSOLETE + - UNKNOWN + - NOT_YET_DEFINED + content: + application/json: + schema: + type: object + properties: + successfully-connected: + type: boolean + reason-of-failure: + type: string + "400": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "401": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "403": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "404": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "500": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + default: + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + ApprovalNotification: url: - description: Exclusively approved applications shall get information about - updated serving applications. + description: | + 'To be activated, if received /v1/regard-updated-approval-status::requestBody::approval-status == APPROVED' + post: + parameters: + - name: user + in: header + description: User identifier from the system starting the service + call + required: true + style: simple + explode: false + schema: + type: string + example: User Name + - name: originator + in: header + description: | + 'Identification for the system consuming the API, as defined in + [/core-model-1-4:control-construct/logical-termination-point={uuid}/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + required: true + style: simple + explode: false + schema: + minLength: 3 + type: string + example: Resolver + - name: x-correlator + in: header + description: UUID for the service execution flow that allows to correlate + requests and responses + required: true + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + description: Empty string accepted from external applications. + example: 550e8400-e29b-11d4-a716-446655440000 + - name: trace-indicator + in: header + description: Sequence of request numbers along the flow + required: true + style: simple + explode: false + schema: + pattern: "^([0-9]+)(\\.([0-9]+))*$" + type: string + description: Empty string accepted from external applications. + example: 1.3.1 + - name: customer-journey + in: header + description: Holds information supporting customer’s journey to which + the execution applies + required: true + style: simple + explode: false + schema: + type: string + example: Unknown value + requestBody: + content: + application/json: + schema: + required: + - address + - application-name + - port + - protocol + - release-number + type: object + properties: + application-name: + type: string + description: | + 'Name of application that is approved from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + release-number: + type: string + description: | + 'Release of application that is approved from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + protocol: + type: string + description: | + 'Protocol to be used for addressing the application that is approved from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + address: + type: object + properties: + ip-address: + type: object + properties: + ipv-4-address: + type: string + description: | + 'IPv4 address of application that is approved from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + domain-name: + type: string + description: | + 'Domain name of application that is approved from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + port: + type: integer + description: | + 'TCP port of application that is approved from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + example: + application-name: CurrentController + release-number: 1.0.0 + protocol: HTTP + address: + ip-address: + ipv-4-address: 1.1.4.1 + port: 4001 + required: true + responses: + "204": + description: Application will be regarded + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + backend-time: + description: "Value written by the service provider, reporting\ + \ the elapsed time for data retrieval from the backend (service\ + \ invocation, database access…). Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 850 + life-cycle-state: + description: Life cycle state of the consumed service + style: simple + explode: false + schema: + type: string + example: EXPERIMENTAL + enum: + - EXPERIMENTAL + - OPERATIONAL + - DEPRECATED + - OBSOLETE + - UNKNOWN + - NOT_YET_DEFINED + "400": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "401": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "403": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "404": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "500": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + default: + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + ApprovingApplicationCausesPreparingTheEmbedding: + RequestForOldRelease: + post: + parameters: + - name: user + in: header + description: User identifier from the system starting the service + call + required: true + style: simple + explode: false + schema: + type: string + example: User Name + - name: originator + in: header + description: | + 'Identification for the system consuming the API, as defined in + [/core-model-1-4:control-construct/logical-termination-point={uuid}/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + required: true + style: simple + explode: false + schema: + minLength: 3 + type: string + example: Resolver + - name: x-correlator + in: header + description: UUID for the service execution flow that allows to correlate + requests and responses + required: true + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + description: Empty string accepted from external applications. + example: 550e8400-e29b-11d4-a716-446655440000 + - name: trace-indicator + in: header + description: Sequence of request numbers along the flow + required: true + style: simple + explode: false + schema: + pattern: "^([0-9]+)(\\.([0-9]+))*$" + type: string + description: Empty string accepted from external applications. + example: 1.3.1 + - name: customer-journey + in: header + description: Holds information supporting customer’s journey to which + the execution applies + required: true + style: simple + explode: false + schema: + type: string + example: Unknown value + responses: + "200": + description: Name and number of the preceding release provided + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + backend-time: + description: "Value written by the service provider, reporting\ + \ the elapsed time for data retrieval from the backend (service\ + \ invocation, database access…). Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 850 + life-cycle-state: + description: Life cycle state of the consumed service + style: simple + explode: false + schema: + type: string + example: EXPERIMENTAL + enum: + - EXPERIMENTAL + - OPERATIONAL + - DEPRECATED + - OBSOLETE + - UNKNOWN + - NOT_YET_DEFINED + content: + application/json: + schema: + type: object + properties: + application-name: + type: string + description: ApplicationName of the OldRelease + release-number: + type: string + description: ReleaseNumber of the OldRelease + "400": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "401": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "403": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "404": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "500": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + default: + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + CreateLinkToUpdateNewReleaseClient: + description: "To be executed, IF (oldReleaseApplicationName != \"OldRelease\"\ + ) AND (HttpClient for oldReleaseApplicationName exists in RO)" + post: + parameters: + - name: user + in: header + description: User identifier from the system starting the service + call + required: true + style: simple + explode: false + schema: + type: string + example: User Name + - name: originator + in: header + description: | + 'Identification for the system consuming the API, as defined in + [/core-model-1-4:control-construct/logical-termination-point={uuid}/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + required: true + style: simple + explode: false + schema: + minLength: 3 + type: string + example: Resolver + - name: x-correlator + in: header + description: UUID for the service execution flow that allows to correlate + requests and responses + required: true + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + description: Empty string accepted from external applications. + example: 550e8400-e29b-11d4-a716-446655440000 + - name: trace-indicator + in: header + description: Sequence of request numbers along the flow + required: true + style: simple + explode: false + schema: + pattern: "^([0-9]+)(\\.([0-9]+))*$" + type: string + description: Empty string accepted from external applications. + example: 1.3.1 + - name: customer-journey + in: header + description: Holds information supporting customer’s journey to which + the execution applies + required: true + style: simple + explode: false + schema: + type: string + example: Unknown value + requestBody: + content: + application/json: + schema: + type: object + properties: + serving-application-name: + type: string + description: | + 'Name of application that holds the OperationServer of the link, which is to be complemented from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$RequestForOldRelease.responses.body#application-name}' + serving-application-release-number: + type: string + description: | + 'Release of application that holds the OperationServer of the link, which is to be complemented from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$RequestForOldRelease.responses.body#release-number}' + operation-name: + type: string + description: | + 'Name of the operation, which is made available via the link from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-009/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + consuming-application-name: + type: string + description: | + 'Name of application that holds the OperationClient, which shall be connected via the link from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' + consuming-application-release-number: + type: string + description: | + 'Release of application that holds the OperationClient, which shall be connected via the link from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' + required: true + responses: + "200": + description: OperationClient connected with OperationServer + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + backend-time: + description: "Value written by the service provider, reporting\ + \ the elapsed time for data retrieval from the backend (service\ + \ invocation, database access…). Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 850 + life-cycle-state: + description: Life cycle state of the consumed service + style: simple + explode: false + schema: + type: string + example: EXPERIMENTAL + enum: + - EXPERIMENTAL + - OPERATIONAL + - DEPRECATED + - OBSOLETE + - UNKNOWN + - NOT_YET_DEFINED + content: + application/json: + schema: + type: object + properties: + client-successfully-added: + type: boolean + reason-of-failure: + type: string + "400": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "401": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "403": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "404": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "500": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + default: + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + RequestForUpdatingNewReleaseClient: + description: | + 'To be executed, IF (oldReleaseApplicationName != "OldRelease") AND (HttpClient for oldReleaseApplicationName exists in RO) Request to be initiated by receiving /v1/update-operation-key of {$ApprovingApplicationCausesPreparingTheEmbedding.RequestForOldRelease.responses.body#applicationName}://v1/update-client-of-subsequent-release Process shall be terminated, if /v1/update-operation-key is not received within time period defined in [/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-0-integer-p-000/integer-profile-1-0:integer-profile-pac/integer-profile-configuration/integer-value]' + post: + parameters: + - name: user + in: header + description: User identifier from the system starting the service + call + required: true + style: simple + explode: false + schema: + type: string + example: User Name + - name: originator + in: header + description: | + 'Identification for the system consuming the API, as defined in + [/core-model-1-4:control-construct/logical-termination-point={uuid}/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + required: true + style: simple + explode: false + schema: + minLength: 3 + type: string + example: Resolver + - name: x-correlator + in: header + description: UUID for the service execution flow that allows to correlate + requests and responses + required: true + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + description: Empty string accepted from external applications. + example: 550e8400-e29b-11d4-a716-446655440000 + - name: trace-indicator + in: header + description: Sequence of request numbers along the flow + required: true + style: simple + explode: false + schema: + pattern: "^([0-9]+)(\\.([0-9]+))*$" + type: string + description: Empty string accepted from external applications. + example: 1.3.1 + - name: customer-journey + in: header + description: Holds information supporting customer’s journey to which + the execution applies + required: true + style: simple + explode: false + schema: + type: string + example: Unknown value + requestBody: + content: + application/json: + schema: + type: object + properties: + application-name: + type: string + description: | + 'Name of the application that is target of the bequeath-your-data-and-die process from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$request.body#application-name}' + release-number: + type: string + description: | + 'Release of the application that is target of the bequeath-your-data-and-die process from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$request.body#release-number}' + protocol: + type: string + description: | + 'Protocol to be used during the bequeath-your-data-and-die process from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + address: + type: object + properties: + ip-address: + type: object + properties: + ipv-4-address: + type: string + description: | + 'IPv4 address to be used during the bequeath-your-data-and-die process from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + domain-name: + type: string + description: | + 'Domain name to be used during the bequeath-your-data-and-die process from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + future-port: + type: integer + description: | + 'Port to be used during the bequeath-your-data-and-die process from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + required: true + responses: + "200": + description: Operations required for transferring data provided + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + backend-time: + description: "Value written by the service provider, reporting\ + \ the elapsed time for data retrieval from the backend (service\ + \ invocation, database access…). Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 850 + life-cycle-state: + description: Life cycle state of the consumed service + style: simple + explode: false + schema: + type: string + example: EXPERIMENTAL + enum: + - EXPERIMENTAL + - OPERATIONAL + - DEPRECATED + - OBSOLETE + - UNKNOWN + - NOT_YET_DEFINED + content: + application/json: + schema: + type: object + properties: + bequeath-your-data-and-die-operation: + type: string + description: Operation for starting the handover process + on the already existing application + data-transfer-operations-list: + type: array + description: List of operations required for transferring + data from the oldRelease to the newRelease + items: + type: string + "400": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "401": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "403": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "404": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "500": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + default: + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + CreateLinkForBequeathYourData: + description: | + 'To be executed, IF (oldReleaseApplicationName != "OldRelease") AND (HttpClient for oldReleaseApplicationName exists in RO) This request shall be repeated as it may fail because background processes are not finished. Process shall be terminated, if number of attempts is exceeding the maximum defined in [/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-0-integer-p-001/integer-profile-1-0:integer-profile-pac/integer-profile-configuration/integer-value]' + post: + parameters: + - name: user + in: header + description: User identifier from the system starting the service + call + required: true + style: simple + explode: false + schema: + type: string + example: User Name + - name: originator + in: header + description: | + 'Identification for the system consuming the API, as defined in + [/core-model-1-4:control-construct/logical-termination-point={uuid}/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + required: true + style: simple + explode: false + schema: + minLength: 3 + type: string + example: Resolver + - name: x-correlator + in: header + description: UUID for the service execution flow that allows to correlate + requests and responses + required: true + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + description: Empty string accepted from external applications. + example: 550e8400-e29b-11d4-a716-446655440000 + - name: trace-indicator + in: header + description: Sequence of request numbers along the flow + required: true + style: simple + explode: false + schema: + pattern: "^([0-9]+)(\\.([0-9]+))*$" + type: string + description: Empty string accepted from external applications. + example: 1.3.1 + - name: customer-journey + in: header + description: Holds information supporting customer’s journey to which + the execution applies + required: true + style: simple + explode: false + schema: + type: string + example: Unknown value + requestBody: + content: + application/json: + schema: + type: object + properties: + serving-application-name: + type: string + description: | + 'Name of application that holds the OperationServer of the link, which is to be complemented from {$RequestForOldRelease.responses.body#application-name}' + serving-application-release-number: + type: string + description: | + 'Release of application that holds the OperationServer of the link, which is to be complemented from {$RequestForOldRelease.responses.body#release-number}' + operation-name: + type: string + description: | + 'Name of the operation, which is made available via the link from {$RequestForUpdatingNewReleaseClient.responses.body#bequeath-your-data-and-die-operation}' + consuming-application-name: + type: string + description: | + 'Name of application that holds the OperationClient, which shall be connected via the link from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$request.body#application-name}' + consuming-application-release-number: + type: string + description: | + 'Release of application that holds the OperationClient, which shall be connected via the link from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$request.body#release-number}' + required: true + responses: + "200": + description: OperationClient connected with OperationServer + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + backend-time: + description: "Value written by the service provider, reporting\ + \ the elapsed time for data retrieval from the backend (service\ + \ invocation, database access…). Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 850 + life-cycle-state: + description: Life cycle state of the consumed service + style: simple + explode: false + schema: + type: string + example: EXPERIMENTAL + enum: + - EXPERIMENTAL + - OPERATIONAL + - DEPRECATED + - OBSOLETE + - UNKNOWN + - NOT_YET_DEFINED + content: + application/json: + schema: + type: object + properties: + client-successfully-added: + type: boolean + reason-of-failure: + type: string + "400": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "401": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "403": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "404": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "500": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + default: + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + CreateFurtherLinksForTransferringData: + description: | + 'To be executed, IF (oldReleaseApplicationName != "OldRelease") AND (HttpClient for oldReleaseApplicationName exists in RO) This request might be sent multiple times, according to the number of entries in {$RequestForUpdatingNewReleaseClient.responses.body#data-transfer-operations-list}' + post: + parameters: + - name: user + in: header + description: User identifier from the system starting the service + call + required: true + style: simple + explode: false + schema: + type: string + example: User Name + - name: originator + in: header + description: | + 'Identification for the system consuming the API, as defined in + [/core-model-1-4:control-construct/logical-termination-point={uuid}/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + required: true + style: simple + explode: false + schema: + minLength: 3 + type: string + example: Resolver + - name: x-correlator + in: header + description: UUID for the service execution flow that allows to correlate + requests and responses + required: true + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + description: Empty string accepted from external applications. + example: 550e8400-e29b-11d4-a716-446655440000 + - name: trace-indicator + in: header + description: Sequence of request numbers along the flow + required: true + style: simple + explode: false + schema: + pattern: "^([0-9]+)(\\.([0-9]+))*$" + type: string + description: Empty string accepted from external applications. + example: 1.3.1 + - name: customer-journey + in: header + description: Holds information supporting customer’s journey to which + the execution applies + required: true + style: simple + explode: false + schema: + type: string + example: Unknown value + requestBody: + content: + application/json: + schema: + type: object + properties: + serving-application-name: + type: string + description: | + 'Name of application that holds the OperationServer of the link, which is to be complemented from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$request.body#application-name}' + serving-application-release-number: + type: string + description: | + 'Release of application that holds the OperationServer of the link, which is to be complemented from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$request.body#release-number}' + operation-name: + type: string + description: | + 'Name of the operation, which is made available via the link from {$RequestForUpdatingNewReleaseClient.responses.body#data-transfer-operations-list} to be repeated for all entries' + consuming-application-name: + type: string + description: | + 'Name of application that holds the OperationClient, which shall be connected via the link from {$RequestForOldRelease.responses.body#application-name}' + consuming-application-release-number: + type: string + description: | + 'Release of application that holds the OperationClient, which shall be connected via the link from {$RequestForOldRelease.responses.body#release-number}' + required: true + responses: + "200": + description: OperationClient connected with OperationServer + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + backend-time: + description: "Value written by the service provider, reporting\ + \ the elapsed time for data retrieval from the backend (service\ + \ invocation, database access…). Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 850 + life-cycle-state: + description: Life cycle state of the consumed service + style: simple + explode: false + schema: + type: string + example: EXPERIMENTAL + enum: + - EXPERIMENTAL + - OPERATIONAL + - DEPRECATED + - OBSOLETE + - UNKNOWN + - NOT_YET_DEFINED + content: + application/json: + schema: + type: object + properties: + client-successfully-added: + type: boolean + reason-of-failure: + type: string + "400": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "401": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "403": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "404": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "500": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + default: + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + CreateLinkForPromptingEmbedding: + post: + parameters: + - name: user + in: header + description: User identifier from the system starting the service + call + required: true + style: simple + explode: false + schema: + type: string + example: User Name + - name: originator + in: header + description: | + 'Identification for the system consuming the API, as defined in + [/core-model-1-4:control-construct/logical-termination-point={uuid}/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + required: true + style: simple + explode: false + schema: + minLength: 3 + type: string + example: Resolver + - name: x-correlator + in: header + description: UUID for the service execution flow that allows to correlate + requests and responses + required: true + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + description: Empty string accepted from external applications. + example: 550e8400-e29b-11d4-a716-446655440000 + - name: trace-indicator + in: header + description: Sequence of request numbers along the flow + required: true + style: simple + explode: false + schema: + pattern: "^([0-9]+)(\\.([0-9]+))*$" + type: string + description: Empty string accepted from external applications. + example: 1.3.1 + - name: customer-journey + in: header + description: Holds information supporting customer’s journey to which + the execution applies + required: true + style: simple + explode: false + schema: + type: string + example: Unknown value + requestBody: + content: + application/json: + schema: + type: object + properties: + serving-application-name: + type: string + description: | + 'Name of application that holds the OperationServer of the link, which is to be complemented from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$request.body#application-name}' + serving-application-release-number: + type: string + description: | + 'Release of application that holds the OperationServer of the link, which is to be complemented from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$request.body#release-number}' + operation-name: + type: string + description: | + 'Name of the operation, which is made available via the link from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + consuming-application-name: + type: string + description: | + 'Name of application that holds the OperationClient, which shall be connected via the link from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' + consuming-application-release-number: + type: string + description: | + 'Release of application that holds the OperationClient, which shall be connected via the link from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' + required: true + responses: + "200": + description: OperationClient connected with OperationServer + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + backend-time: + description: "Value written by the service provider, reporting\ + \ the elapsed time for data retrieval from the backend (service\ + \ invocation, database access…). Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 850 + life-cycle-state: + description: Life cycle state of the consumed service + style: simple + explode: false + schema: + type: string + example: EXPERIMENTAL + enum: + - EXPERIMENTAL + - OPERATIONAL + - DEPRECATED + - OBSOLETE + - UNKNOWN + - NOT_YET_DEFINED + content: + application/json: + schema: + type: object + properties: + client-successfully-added: + type: boolean + reason-of-failure: + type: string + "400": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "401": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "403": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "404": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "500": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + default: + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + RequestForEmbedding: + description: | + 'Request to be initiated by receiving /v1/update-operation-key of {$request.body#application-name}://v1/embed-yourself Process shall be terminated, if /v1/update-operation-key is not received within time period defined in [/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-0-integer-p-000/integer-profile-1-0:integer-profile-pac/integer-profile-configuration/integer-value]' + post: + parameters: + - name: user + in: header + description: User identifier from the system starting the service + call + required: true + style: simple + explode: false + schema: + type: string + example: User Name + - name: originator + in: header + description: | + 'Identification for the system consuming the API, as defined in + [/core-model-1-4:control-construct/logical-termination-point={uuid}/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + required: true + style: simple + explode: false + schema: + minLength: 3 + type: string + example: Resolver + - name: x-correlator + in: header + description: UUID for the service execution flow that allows to correlate + requests and responses + required: true + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + description: Empty string accepted from external applications. + example: 550e8400-e29b-11d4-a716-446655440000 + - name: trace-indicator + in: header + description: Sequence of request numbers along the flow + required: true + style: simple + explode: false + schema: + pattern: "^([0-9]+)(\\.([0-9]+))*$" + type: string + description: Empty string accepted from external applications. + example: 1.3.1 + - name: customer-journey + in: header + description: Holds information supporting customer’s journey to which + the execution applies + required: true + style: simple + explode: false + schema: + type: string + example: Unknown value + requestBody: + content: + application/json: + schema: + required: + - deregistration-operation + - registry-office-address + - registry-office-application + - registry-office-application-release-number + - registry-office-port + - registry-office-protocol + - relay-operation-update-operation + - relay-server-replacement-operation + type: object + properties: + registry-office-application: + type: string + description: | + 'Name of RegistryOffice application from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' + registry-office-application-release-number: + type: string + description: | + 'Release of RegistryOffice application from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' + relay-server-replacement-operation: + type: string + description: | + 'Operation for requesting for broadcasting a new server address from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-is-010/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' + relay-operation-update-operation: + type: string + description: | + 'Operation for requesting for broadcasting a backward compatible replacement of an operation from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-is-011/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' + deregistration-operation: + type: string + description: | + 'Operation for deregistering from the application layer from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-is-002/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' + registry-office-protocol: + type: string + description: | + 'Protocol for addressing RegistryOffice application from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-protocol]' + registry-office-address: + maxProperties: 1 + minProperties: 1 + type: object + properties: + ip-address: + minProperties: 1 + type: object + properties: + ipv-4-address: + type: string + description: | + 'IPv4 address of RegistryOffice application from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/ipv-4-address]' + additionalProperties: false + domain-name: + type: string + description: | + 'Domain name of RegistryOffice application from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/domain-name]' + additionalProperties: false + registry-office-port: + type: integer + description: | + 'Port of RegistryOffice application from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-port]' + old-release-protocol: + type: string + description: | + 'Protocol for addressing the currently running old release of the same application for [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*-*-*-*-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$RequestForOldRelease.responses.body#application-name} + AND [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*-*-*-*-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$RequestForOldRelease.responses.body#release-number} + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*-*-*-*-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + old-release-address: + maxProperties: 1 + minProperties: 1 + type: object + properties: + ip-address: + minProperties: 1 + type: object + properties: + ipv-4-address: + type: string + description: | + 'IPv4 address of currently running old release of the same application for [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*-*-*-*-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$RequestForOldRelease.responses.body#application-name} + AND [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*-*-*-*-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$RequestForOldRelease.responses.body#release-number} + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*-*-*-*-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + additionalProperties: false + domain-name: + type: string + description: | + 'Domain name of currently running old release of the same application for [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*-*-*-*-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$RequestForOldRelease.responses.body#application-name} + AND [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*-*-*-*-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$RequestForOldRelease.responses.body#release-number} + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*-*-*-*-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + additionalProperties: false + old-release-port: + type: integer + description: | + 'Port of currently running old release of the same application for [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*-*-*-*-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$RequestForOldRelease.responses.body#application-name} + AND [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*-*-*-*-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$RequestForOldRelease.responses.body#release-number} + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*-*-*-*-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + required: true + responses: + "204": + description: Will embed into the MBH SDN application layer + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + backend-time: + description: "Value written by the service provider, reporting\ + \ the elapsed time for data retrieval from the backend (service\ + \ invocation, database access…). Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 850 + life-cycle-state: + description: Life cycle state of the consumed service + style: simple + explode: false + schema: + type: string + example: EXPERIMENTAL + enum: + - EXPERIMENTAL + - OPERATIONAL + - DEPRECATED + - OBSOLETE + - UNKNOWN + - NOT_YET_DEFINED + "400": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "401": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "403": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "404": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "500": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + default: + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + ApprovingApplicationCausesConnectingToBroadcast: + CreateLinkForUpdatingClient: + post: + parameters: + - name: user + in: header + description: User identifier from the system starting the service + call + required: true + style: simple + explode: false + schema: + type: string + example: User Name + - name: originator + in: header + description: | + 'Identification for the system consuming the API, as defined in + [/core-model-1-4:control-construct/logical-termination-point={uuid}/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + required: true + style: simple + explode: false + schema: + minLength: 3 + type: string + example: Resolver + - name: x-correlator + in: header + description: UUID for the service execution flow that allows to correlate + requests and responses + required: true + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + description: Empty string accepted from external applications. + example: 550e8400-e29b-11d4-a716-446655440000 + - name: trace-indicator + in: header + description: Sequence of request numbers along the flow + required: true + style: simple + explode: false + schema: + pattern: "^([0-9]+)(\\.([0-9]+))*$" + type: string + description: Empty string accepted from external applications. + example: 1.3.1 + - name: customer-journey + in: header + description: Holds information supporting customer’s journey to which + the execution applies + required: true + style: simple + explode: false + schema: + type: string + example: Unknown value + requestBody: + content: + application/json: + schema: + type: object + properties: + serving-application-name: + type: string + description: | + 'Name of application that holds the OperationServer of the link, which is to be complemented from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$request.body#application-name}' + serving-application-release-number: + type: string + description: | + 'Release of application that holds the OperationServer of the link, which is to be complemented from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$request.body#release-number}' + operation-name: + type: string + description: | + 'Name of the operation, which is made available via the link from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-001/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + consuming-application-name: + type: string + description: | + 'Name of application that holds the OperationClient, which shall be connected via the link from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' + consuming-application-release-number: + type: string + description: | + 'Release of application that holds the OperationClient, which shall be connected via the link from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' + required: true + responses: + "200": + description: OperationClient connected with OperationServer + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + backend-time: + description: "Value written by the service provider, reporting\ + \ the elapsed time for data retrieval from the backend (service\ + \ invocation, database access…). Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 850 + life-cycle-state: + description: Life cycle state of the consumed service + style: simple + explode: false + schema: + type: string + example: EXPERIMENTAL + enum: + - EXPERIMENTAL + - OPERATIONAL + - DEPRECATED + - OBSOLETE + - UNKNOWN + - NOT_YET_DEFINED + content: + application/json: + schema: + type: object + properties: + client-successfully-added: + type: boolean + reason-of-failure: + type: string + "400": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "401": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "403": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "404": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "500": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + default: + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + CreateLinkForUpdatingOperationClient: + description: | + 'Request to be initiated by receiving /v1/update-operation-key of {$request.body#application-name}://v1/update-client Process shall be terminated, if /v1/update-operation-key is not received within time period defined in [/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-0-integer-p-000/integer-profile-1-0:integer-profile-pac/integer-profile-configuration/integer-value]' + post: + parameters: + - name: user + in: header + description: User identifier from the system starting the service + call + required: true + style: simple + explode: false + schema: + type: string + example: User Name + - name: originator + in: header + description: | + 'Identification for the system consuming the API, as defined in + [/core-model-1-4:control-construct/logical-termination-point={uuid}/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + required: true + style: simple + explode: false + schema: + minLength: 3 + type: string + example: Resolver + - name: x-correlator + in: header + description: UUID for the service execution flow that allows to correlate + requests and responses + required: true + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + description: Empty string accepted from external applications. + example: 550e8400-e29b-11d4-a716-446655440000 + - name: trace-indicator + in: header + description: Sequence of request numbers along the flow + required: true + style: simple + explode: false + schema: + pattern: "^([0-9]+)(\\.([0-9]+))*$" + type: string + description: Empty string accepted from external applications. + example: 1.3.1 + - name: customer-journey + in: header + description: Holds information supporting customer’s journey to which + the execution applies + required: true + style: simple + explode: false + schema: + type: string + example: Unknown value + requestBody: + content: + application/json: + schema: + type: object + properties: + serving-application-name: + type: string + description: | + 'Name of application that holds the OperationServer of the link, which is to be complemented from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$request.body#application-name}' + serving-application-release-number: + type: string + description: | + 'Release of application that holds the OperationServer of the link, which is to be complemented from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$request.body#release-number}' + operation-name: + type: string + description: | + 'Name of the operation, which is made available via the link from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-002/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + consuming-application-name: + type: string + description: | + 'Name of application that holds the OperationClient, which shall be connected via the link from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' + consuming-application-release-number: + type: string + description: | + 'Release of application that holds the OperationClient, which shall be connected via the link from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' + required: true + responses: + "200": + description: OperationClient connected with OperationServer + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + backend-time: + description: "Value written by the service provider, reporting\ + \ the elapsed time for data retrieval from the backend (service\ + \ invocation, database access…). Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 850 + life-cycle-state: + description: Life cycle state of the consumed service + style: simple + explode: false + schema: + type: string + example: EXPERIMENTAL + enum: + - EXPERIMENTAL + - OPERATIONAL + - DEPRECATED + - OBSOLETE + - UNKNOWN + - NOT_YET_DEFINED + content: + application/json: + schema: + type: object + properties: + client-successfully-added: + type: boolean + reason-of-failure: + type: string + "400": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "401": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "403": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "404": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "500": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + default: + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + CreateLinkForDisposingRemainders: + description: | + 'Request to be initiated by receiving /v1/update-operation-key of {$request.body#application-name}://v1/update-operation-client Process shall be terminated, if /v1/update-operation-key is not received within time period defined in [/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-0-integer-p-000/integer-profile-1-0:integer-profile-pac/integer-profile-configuration/integer-value]' post: parameters: - name: user @@ -5170,68 +8973,32 @@ paths: content: application/json: schema: - required: - - current-application-name - - current-release-number - - future-address - - future-application-name - - future-port - - future-protocol - - future-release-number type: object properties: - current-application-name: + serving-application-name: type: string description: | - 'Current name of the application that has updated connection data from [$/v1/relay-server-replacement.body#current-application-name] ==[/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' - current-release-number: + 'Name of application that holds the OperationServer of the link, which is to be complemented from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$request.body#application-name}' + serving-application-release-number: type: string description: | - 'Current release number of the application that has updated connection data from [$/v1/relay-server-replacement.body#current-release-number] ==[/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' - future-application-name: + 'Release of application that holds the OperationServer of the link, which is to be complemented from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$request.body#release-number}' + operation-name: type: string description: | - 'Future name of the application that has updated connection data from [$/v1/relay-server-replacement.body#future-application-name] ==[/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' - future-release-number: + 'Name of the operation, which is made available via the link from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-006/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + consuming-application-name: type: string description: | - 'Future release number of the application that has updated connection data from [$/v1/relay-server-replacement.body#future-release-number] ==[/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' - future-protocol: + 'Name of application that holds the OperationClient, which shall be connected via the link from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' + consuming-application-release-number: type: string description: | - 'Protocol to be used in future for addressing the application that has updated connection data from [$/v1/relay-server-replacement.body#future-protocol]' - future-address: - type: object - properties: - ip-address: - type: object - properties: - ipv-4-address: - type: string - description: | - 'Future IPv4 address of the application that has updated connection data from [$/v1/relay-server-replacement.body#future-address/ip-address/ipv-4-address]' - domain-name: - type: string - description: | - 'Future domain name of the application that has updated connection data from [$/v1/relay-server-replacement.body#future-address/domain-name]' - future-port: - type: integer - description: | - 'Future port of the application that has updated connection data from [$/v1/relay-server-replacement.body#future-port]' - example: - current-application-name: RegistryOffice - current-release-number: 1.0.0 - future-application-name: RegistryOffice - future-release-number: 2.0.1 - future-protocol: HTTP - future-address: - ip-address: - ipv-4-address: 1.1.3.8 - future-port: 3008 + 'Release of application that holds the OperationClient, which shall be connected via the link from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' required: true responses: - "204": - description: Will update connection information + "200": + description: OperationClient connected with OperationServer headers: x-correlator: description: UUID for the service execution flow that allows @@ -5275,6 +9042,15 @@ paths: - OBSOLETE - UNKNOWN - NOT_YET_DEFINED + content: + application/json: + schema: + type: object + properties: + client-successfully-added: + type: boolean + reason-of-failure: + type: string "400": description: Response in case of errored service requests headers: @@ -5298,15 +9074,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -5334,15 +9101,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -5370,15 +9128,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -5406,15 +9155,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -5442,15 +9182,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -5478,23 +9209,12 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: $ref: '#/components/schemas/errorDescription' - OperationUpdateBroadcast: + ApprovingApplicationCausesResponding: url: - description: Exclusively approved applications shall get information about - updated operations. post: parameters: - name: user @@ -5540,54 +9260,103 @@ paths: schema: pattern: "^([0-9]+)(\\.([0-9]+))*$" type: string - description: Empty string accepted from external applications. - example: 1.3.1 - - name: customer-journey - in: header - description: Holds information supporting customer’s journey to which - the execution applies - required: true - style: simple - explode: false - schema: - type: string - example: Unknown value - requestBody: - content: - application/json: - schema: - required: - - application-name - - new-operation-name - - old-operation-name - - release-number - type: object - properties: - application-name: - type: string - description: | - 'Name of the application that has an updated operation from [$/v1/relay-operation-update.body#application-name] ==[/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' - release-number: - type: string - description: | - 'Release number of the application that has an updated operation from [$/v1/relay-operation-update.body#release-number] ==[/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' - old-operation-name: - type: string - description: | - 'Name of the deprecated operation from [$/v1/relay-operation-update.body#old-operation-name]' - new-operation-name: - type: string - description: | - 'Name of the replacing operation from [$/v1/relay-operation-update.body#new-operation-name]' - example: - application-name: RegistryOffice - release-number: 2.0.1 - old-operation-name: /v1/register-application - new-operation-name: /v2/register-application + description: Empty string accepted from external applications. + example: 1.3.1 + - name: customer-journey + in: header + description: Holds information supporting customer’s journey to which + the execution applies + required: true + style: simple + explode: false + schema: + type: string + example: Unknown value + requestBody: + content: + application/json: + schema: + oneOf: + - type: object + properties: + process-id: + type: string + description: | + 'Unique identifier of the request that allows associating the responses that are sent to the receiver service at TAR from {$responses.body#process-id}' + successfully-embedded: + type: boolean + description: "true, if {$CreateLinkForDisposingRemainders.responses.code}==200" + description: "IF {$CreateLinkForDisposingRemainders.responses.code}==200\ + \ => successfully-embedded==true Request to be initiated\ + \ by receiving /v1/update-operation-key of {$request.body#application-name}://v1/dispose-remainders-of-deregistered-application\ + \ Process shall be terminated, if /v1/update-operation-key\ + \ is not received within time period defined in [/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-0-integer-p-000/integer-profile-1-0:integer-profile-pac/integer-profile-configuration/integer-value]" + - type: object + properties: + process-id: + type: string + description: | + 'Unique identifier of the request that allows associating the responses that are sent to the receiver service at TAR from {$responses.body#process-id}' + successfully-embedded: + type: boolean + description: "false, if {$ApprovingApplicationCausesConnectingWith.*.responses.body#successfully-connected}==false" + reason-of-failure: + type: string + description: | + 'Only exists, if successfully-embedded==false from [RO_.concat{$ApprovingApplicationCausesConnectingWith.*.responses.body#reason-of-failure}]' + description: "ELSE-IF {$ApprovingApplicationCausesConnectingWith.*.responses.body#successfully-connected}==false\ + \ => successfully-embedded==false" + - type: object + properties: + process-id: + type: string + description: | + 'Unique identifier of the request that allows associating the responses that are sent to the receiver service at TAR from {$responses.body#process-id}' + successfully-embedded: + type: boolean + description: "false, if {$*.CreateLink*.responses.body#client-successfully-added}==false" + reason-of-failure: + type: string + description: | + 'Only exists, if successfully-embedded==false from [RO_.concat{$*.CreateLink*.responses.body#reason-of-failure}]' + description: "ELSE-IF {$*.CreateLink*.responses.body#client-successfully-added}==false\ + \ => successfully-embedded==false" + - type: object + properties: + process-id: + type: string + description: | + 'Unique identifier of the request that allows associating the responses that are sent to the receiver service at TAR from {$responses.body#process-id}' + successfully-embedded: + type: boolean + description: "false, if {$*.*.responses.code}!=(200 or\ + \ 204)" + reason-of-failure: + type: string + description: | + 'Only exists, if successfully-embedded==false from [RO_.concat{$*.*.responses.code} or RO_REQUEST_UNANSWERED]' + description: "ELSE-IF {$*.*.responses.code}!=(200 or 204)\ + \ => successfully-embedded==false" + - type: object + properties: + process-id: + type: string + description: | + 'Unique identifier of the request that allows associating the responses that are sent to the receiver service at TAR from {$responses.body#process-id}' + successfully-embedded: + type: boolean + description: "false, if waiting > maximumWaitTimeToReceiveOperationKey" + reason-of-failure: + type: string + description: | + 'Only exists, if successfully-embedded==false' + enum: + - RO_MAXIMUM_WAIT_TIME_TO_RECEIVE_OPERATION_KEY_EXCEEDED + description: Waiting exceeds maximumWaitTimeToReceiveOperationKey required: true responses: "204": - description: Will broadcast operation update + description: Embedding status documented headers: x-correlator: description: UUID for the service execution flow that allows @@ -5654,15 +9423,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -5690,15 +9450,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -5726,15 +9477,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -5762,15 +9504,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -5798,15 +9531,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -5834,15 +9558,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -5950,7 +9665,7 @@ paths: example: 850 life-cycle-state: description: | - 'Life cycle state of the consumed service find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-s-is-004/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + 'Life cycle state of the consumed service find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-is-004/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' style: simple explode: false schema: @@ -5977,10 +9692,10 @@ paths: properties: application-name: type: string - description: "from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]" + description: "from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]" release-number: type: string - description: "from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]" + description: "from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]" additionalProperties: false description: "no requestBody, or no required-protocol provided" example: @@ -5995,18 +9710,18 @@ paths: properties: application-name: type: string - description: "from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]" + description: "from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]" release-number: type: string - description: "from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]" + description: "from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]" address: type: string description: | - 'find [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol] == {$request.body#required-protocol} from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address or /core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + 'find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol] == {$request.body#required-protocol} from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' port: type: integer description: | - 'find [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol] == {$request.body#required-protocol} from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + 'find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol] == {$request.body#required-protocol} from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' description: required-protocol has been provided in requestBody example: application-name: TypeApprovalRegister @@ -6037,15 +9752,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -6073,15 +9779,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -6109,15 +9806,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -6145,15 +9833,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -6181,15 +9860,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -6217,15 +9887,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -6328,7 +9989,7 @@ paths: example: 850 life-cycle-state: description: | - 'Life cycle state of the consumed service find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-s-is-005/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + 'Life cycle state of the consumed service find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-is-005/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' style: simple explode: false schema: @@ -6368,15 +10029,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -6404,15 +10056,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -6440,15 +10083,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -6476,15 +10110,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -6512,15 +10137,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -6627,7 +10243,7 @@ paths: example: 850 life-cycle-state: description: | - 'Life cycle state of the consumed service find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-s-is-006/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + 'Life cycle state of the consumed service find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-is-006/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' style: simple explode: false schema: @@ -6663,15 +10279,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -6699,15 +10306,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -6735,15 +10333,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -6771,15 +10360,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -6807,15 +10387,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -6835,23 +10406,14 @@ paths: example: 550e8400-e29b-11d4-a716-446655440000 exec-time: description: "Value written by the service provider, reporting the total\ - \ elapsed time for the execution, including all the additional processing\ - \ needed to retrieve the data from the backend service. Expressed\ - \ in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" + \ elapsed time for the execution, including all the additional processing\ + \ needed to retrieve the data from the backend service. Expressed\ + \ in milliseconds" style: simple explode: false schema: type: integer - example: 850 + example: 1100 content: application/json: schema: @@ -6928,11 +10490,11 @@ paths: application-name: type: string description: | - 'Name of application that registered from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + 'Name of application that registered from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' release-number: type: string description: | - 'Release of application that registered from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + 'Release of application that registered from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' example: application-name: Resolver release-number: 1.0.0 @@ -7006,15 +10568,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -7042,15 +10595,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -7078,15 +10622,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -7114,15 +10649,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -7150,15 +10676,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -7186,15 +10703,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -7203,6 +10711,8 @@ paths: - apiKeyAuth: [] x-swagger-router-controller: IndividualServices /v1/notify-deregistrations: + description: | + 'DEPRECATED Service shall be deleted with RO v3.0.0 Starting from RO v2.1.0, de-registration get notified to Basic service /v1/dispose-remainders-of-deregistered-application' post: tags: - IndividualServices @@ -7303,7 +10813,7 @@ paths: example: 850 life-cycle-state: description: | - 'Life cycle state of the consumed service find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-s-is-007/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + 'Life cycle state of the consumed service find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-is-007/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' style: simple explode: false schema: @@ -7339,15 +10849,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -7375,15 +10876,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -7411,15 +10903,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -7447,15 +10930,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -7483,15 +10957,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -7519,15 +10984,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -7535,6 +10991,8 @@ paths: callbacks: DeregistrationNotification: url: + description: | + 'DEPRECATED Callback shall be deleted with RO v3.0.0 Starting from RO v2.1.0, subscribing at /v1/notify-deregistrations has been substituded by broadcast to AP://v1/dispose-remainders-of-deregistered-application' post: parameters: - name: user @@ -7604,11 +11062,11 @@ paths: application-name: type: string description: | - 'Name of application that deregistered from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + 'Name of application that deregistered from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' release-number: type: string description: | - 'Release of application that deregistered from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + 'Release of application that deregistered from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' example: application-name: CurrentController release-number: 0.0.5 @@ -7682,15 +11140,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -7718,15 +11167,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -7754,15 +11194,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -7790,15 +11221,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -7826,15 +11248,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -7862,15 +11275,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -7878,12 +11282,295 @@ paths: security: - apiKeyAuth: [] x-swagger-router-controller: IndividualServices - /v1/notify-approvals: + /v1/notify-approvals: + description: | + 'DEPRECATED Service (incl. 3 requests) shall be deleted with RO v3.0.0 Starting from RO v2.1.0, sending notifications has been substituded by a concrete sequence for addressing the TAC components' + post: + tags: + - IndividualServices + summary: Offers subscribing to notifications about new approvals + operationId: notifyApprovals + parameters: + - name: user + in: header + description: User identifier from the system starting the service call + required: true + style: simple + explode: false + schema: + type: string + example: User Name + - name: originator + in: header + description: | + 'Identification for the system consuming the API, as defined in + [/core-model-1-4:control-construct/logical-termination-point={uuid}/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + required: true + style: simple + explode: false + schema: + minLength: 3 + type: string + example: Resolver + - name: x-correlator + in: header + description: UUID for the service execution flow that allows to correlate + requests and responses + required: true + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + description: Empty string accepted from external applications. + example: 550e8400-e29b-11d4-a716-446655440000 + - name: trace-indicator + in: header + description: Sequence of request numbers along the flow + required: true + style: simple + explode: false + schema: + pattern: "^([0-9]+)(\\.([0-9]+))*$" + type: string + description: Empty string accepted from external applications. + example: 1.3.1 + - name: customer-journey + in: header + description: Holds information supporting customer’s journey to which the + execution applies + required: true + style: simple + explode: false + schema: + type: string + example: Unknown value + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/v1_notifyapprovals_body' + required: true + responses: + "204": + description: Subscribed for notifications about new approvals + headers: + x-correlator: + description: UUID for the service execution flow that allows to correlate + requests and responses. Its value must be identical at the response + compared with its corresponding request + style: simple + explode: false + schema: + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting the total\ + \ elapsed time for the execution, including all the additional processing\ + \ needed to retrieve the data from the backend service. Expressed\ + \ in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + backend-time: + description: "Value written by the service provider, reporting the elapsed\ + \ time for data retrieval from the backend (service invocation, database\ + \ access…). Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 850 + life-cycle-state: + description: | + 'Life cycle state of the consumed service find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-is-008/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + style: simple + explode: false + schema: + type: string + example: EXPERIMENTAL + enum: + - EXPERIMENTAL + - OPERATIONAL + - DEPRECATED + - OBSOLETE + - UNKNOWN + - NOT_YET_DEFINED + "400": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows to correlate + requests and responses. Its value must be identical at the response + compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting the total\ + \ elapsed time for the execution, including all the additional processing\ + \ needed to retrieve the data from the backend service. Expressed\ + \ in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "401": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows to correlate + requests and responses. Its value must be identical at the response + compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting the total\ + \ elapsed time for the execution, including all the additional processing\ + \ needed to retrieve the data from the backend service. Expressed\ + \ in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "403": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows to correlate + requests and responses. Its value must be identical at the response + compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting the total\ + \ elapsed time for the execution, including all the additional processing\ + \ needed to retrieve the data from the backend service. Expressed\ + \ in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "404": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows to correlate + requests and responses. Its value must be identical at the response + compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting the total\ + \ elapsed time for the execution, including all the additional processing\ + \ needed to retrieve the data from the backend service. Expressed\ + \ in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "500": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows to correlate + requests and responses. Its value must be identical at the response + compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting the total\ + \ elapsed time for the execution, including all the additional processing\ + \ needed to retrieve the data from the backend service. Expressed\ + \ in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + default: + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows to correlate + requests and responses. Its value must be identical at the response + compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting the total\ + \ elapsed time for the execution, including all the additional processing\ + \ needed to retrieve the data from the backend service. Expressed\ + \ in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + security: + - apiKeyAuth: [] + x-swagger-router-controller: IndividualServices + /v1/notify-withdrawn-approvals: + description: | + 'DEPRECATED Service incl. callback shall be deleted with RO v3.0.0 Starting from RO v2.1.0, sending notifications has been substituded by a concrete sequence that includes a substituding broadcast' post: tags: - IndividualServices - summary: Offers subscribing to notifications about new approvals - operationId: notifyApprovals + summary: Offers subscribing to notifications about withdrawn approvals + operationId: notifyWithdrawnApprovals parameters: - name: user in: header @@ -7943,11 +11630,11 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/v1_notifyapprovals_body' + $ref: '#/components/schemas/v1_notifywithdrawnapprovals_body' required: true responses: "204": - description: Subscribed for notifications about new approvals + description: Subscribed for notifications about withdrawn approvals headers: x-correlator: description: UUID for the service execution flow that allows to correlate @@ -7979,7 +11666,7 @@ paths: example: 850 life-cycle-state: description: | - 'Life cycle state of the consumed service find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-s-is-008/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + 'Life cycle state of the consumed service find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-is-009/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' style: simple explode: false schema: @@ -8015,15 +11702,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -8051,15 +11729,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -8087,15 +11756,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -8123,15 +11783,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -8159,15 +11810,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -8195,24 +11837,15 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: $ref: '#/components/schemas/errorDescription' callbacks: - ApprovalNotification: + WithdrawnApprovalNotification: url: - description: "To be activated, if received /v1/regard-updated-approval-status::requestBody::approval-status\ - \ == APPROVED" + description: | + 'DEPRECATED Callback shall be deleted with RO v3.0.0 Starting from RO v2.1.0, subscribing at /v1/notify-withdrawn-approvals has been substituded by broadcast to AP://v1/dispose-remainders-of-deregistered-application To be activated, if received /v1/regard-updated-approval-status::requestBody::approval-status != APPROVED' post: parameters: - name: user @@ -8275,55 +11908,25 @@ paths: application/json: schema: required: - - address - application-name - - port - - protocol - release-number type: object properties: application-name: type: string description: | - 'Name of application that is approved from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + 'Name of application that has been withdrawn from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' release-number: type: string description: | - 'Release of application that is approved from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' - protocol: - type: string - description: | - 'Protocol to be used for addressing the application that is approved from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' - address: - type: object - properties: - ip-address: - type: object - properties: - ipv-4-address: - type: string - description: | - 'IPv4 address of application that is approved from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' - domain-name: - type: string - description: | - 'Domain name of application that is approved from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' - port: - type: integer - description: | - 'TCP port of application that is approved from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + 'Release of application that has been withdrawn from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' example: application-name: CurrentController - release-number: 1.0.0 - protocol: HTTP - address: - ip-address: - ipv-4-address: 1.1.4.1 - port: 4001 + release-number: 0.0.5 required: true responses: "204": - description: Application will be regarded + description: Application will be disregarded headers: x-correlator: description: UUID for the service execution flow that allows @@ -8390,15 +11993,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -8426,15 +12020,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -8462,15 +12047,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -8498,15 +12074,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -8534,15 +12101,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -8570,15 +12128,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -8586,12 +12135,12 @@ paths: security: - apiKeyAuth: [] x-swagger-router-controller: IndividualServices - /v1/notify-withdrawn-approvals: + /v1/relay-server-replacement: post: tags: - IndividualServices - summary: Offers subscribing to notifications about withdrawn approvals - operationId: notifyWithdrawnApprovals + summary: Offers broadcasting of information about updated serving application + operationId: relayServerReplacement parameters: - name: user in: header @@ -8651,11 +12200,11 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/v1_notifywithdrawnapprovals_body' + $ref: '#/components/schemas/v1_relayserverreplacement_body' required: true responses: "204": - description: Subscribed for notifications about withdrawn approvals + description: Will broadcast server replacement headers: x-correlator: description: UUID for the service execution flow that allows to correlate @@ -8687,7 +12236,7 @@ paths: example: 850 life-cycle-state: description: | - 'Life cycle state of the consumed service find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-s-is-009/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + 'Life cycle state of the consumed service find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-is-010/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' style: simple explode: false schema: @@ -8723,15 +12272,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -8759,15 +12299,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -8795,15 +12326,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -8831,15 +12353,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -8867,15 +12380,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -8903,24 +12407,13 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: $ref: '#/components/schemas/errorDescription' callbacks: - WithdrawnApprovalNotification: + ServerReplacementBroadcast: url: - description: "To be activated, if received /v1/regard-updated-approval-status::requestBody::approval-status\ - \ != APPROVED" post: parameters: - name: user @@ -8983,25 +12476,67 @@ paths: application/json: schema: required: - - application-name - - release-number + - current-application-name + - current-release-number + - future-address + - future-application-name + - future-port + - future-protocol + - future-release-number type: object properties: - application-name: + current-application-name: type: string description: | - 'Name of application that has been withdrawn from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' - release-number: + 'Current name of the application that has updated connection data from [$/v1/relay-server-replacement.body#current-application-name] ==[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + current-release-number: + type: string + description: | + 'Current release number of the application that has updated connection data from [$/v1/relay-server-replacement.body#current-release-number] ==[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + future-application-name: + type: string + description: | + 'Future name of the application that has updated connection data from [$/v1/relay-server-replacement.body#future-application-name] ==[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + future-release-number: + type: string + description: | + 'Future release number of the application that has updated connection data from [$/v1/relay-server-replacement.body#future-release-number] ==[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + future-protocol: type: string description: | - 'Release of application that has been withdrawn from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + 'Protocol to be used in future for addressing the application that has updated connection data from [$/v1/relay-server-replacement.body#future-protocol]' + future-address: + type: object + properties: + ip-address: + type: object + properties: + ipv-4-address: + type: string + description: | + 'Future IPv4 address of the application that has updated connection data from [$/v1/relay-server-replacement.body#future-address/ip-address/ipv-4-address]' + domain-name: + type: string + description: | + 'Future domain name of the application that has updated connection data from [$/v1/relay-server-replacement.body#future-address/domain-name]' + future-port: + type: integer + description: | + 'Future port of the application that has updated connection data from [$/v1/relay-server-replacement.body#future-port]' example: - application-name: CurrentController - release-number: 0.0.5 + current-application-name: RegistryOffice + current-release-number: 2.0.1 + future-application-name: RegistryOffice + future-release-number: 2.1.0 + future-protocol: HTTP + future-address: + ip-address: + ipv-4-address: 1.1.3.17 + future-port: 3017 required: true responses: "204": - description: Application will be disregarded + description: Will update connection information headers: x-correlator: description: UUID for the service execution flow that allows @@ -9068,15 +12603,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -9104,15 +12630,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -9140,15 +12657,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -9176,15 +12684,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -9212,15 +12711,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -9240,23 +12730,14 @@ paths: example: 550e8400-e29b-11d4-a716-446655440000 exec-time: description: "Value written by the service provider, reporting\ - \ the total elapsed time for the execution, including all\ - \ the additional processing needed to retrieve the data from\ - \ the backend service. Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" style: simple explode: false schema: type: integer - example: 850 + example: 1100 content: application/json: schema: @@ -9264,12 +12745,12 @@ paths: security: - apiKeyAuth: [] x-swagger-router-controller: IndividualServices - /v1/relay-server-replacement: + /v1/relay-operation-update: post: tags: - IndividualServices - summary: Offers broadcasting of information about updated serving application - operationId: relayServerReplacement + summary: Offers broadcasting of information about backward compatible operations + operationId: relayOperationUpdate parameters: - name: user in: header @@ -9329,11 +12810,11 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/v1_relayserverreplacement_body' + $ref: '#/components/schemas/v1_relayoperationupdate_body' required: true responses: "204": - description: Will broadcast server replacement + description: Will broadcast operation update headers: x-correlator: description: UUID for the service execution flow that allows to correlate @@ -9365,7 +12846,7 @@ paths: example: 850 life-cycle-state: description: | - 'Life cycle state of the consumed service find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-s-is-010/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + 'Life cycle state of the consumed service find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-is-011/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' style: simple explode: false schema: @@ -9401,15 +12882,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -9437,15 +12909,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -9473,15 +12936,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -9509,15 +12963,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -9545,15 +12990,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -9581,28 +13017,321 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: $ref: '#/components/schemas/errorDescription' + callbacks: + OperationUpdateBroadcast: + url: + post: + parameters: + - name: user + in: header + description: User identifier from the system starting the service + call + required: true + style: simple + explode: false + schema: + type: string + example: User Name + - name: originator + in: header + description: | + 'Identification for the system consuming the API, as defined in + [/core-model-1-4:control-construct/logical-termination-point={uuid}/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + required: true + style: simple + explode: false + schema: + minLength: 3 + type: string + example: Resolver + - name: x-correlator + in: header + description: UUID for the service execution flow that allows to correlate + requests and responses + required: true + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + description: Empty string accepted from external applications. + example: 550e8400-e29b-11d4-a716-446655440000 + - name: trace-indicator + in: header + description: Sequence of request numbers along the flow + required: true + style: simple + explode: false + schema: + pattern: "^([0-9]+)(\\.([0-9]+))*$" + type: string + description: Empty string accepted from external applications. + example: 1.3.1 + - name: customer-journey + in: header + description: Holds information supporting customer’s journey to which + the execution applies + required: true + style: simple + explode: false + schema: + type: string + example: Unknown value + requestBody: + content: + application/json: + schema: + required: + - application-name + - new-operation-name + - old-operation-name + - release-number + type: object + properties: + application-name: + type: string + description: | + 'Name of the application that has an updated operation from [$/v1/relay-operation-update.body#application-name] ==[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + release-number: + type: string + description: | + 'Release number of the application that has an updated operation from [$/v1/relay-operation-update.body#release-number] ==[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + old-operation-name: + type: string + description: | + 'Name of the deprecated operation from [$/v1/relay-operation-update.body#old-operation-name]' + new-operation-name: + type: string + description: | + 'Name of the replacing operation from [$/v1/relay-operation-update.body#new-operation-name]' + example: + application-name: RegistryOffice + release-number: 2.1.0 + old-operation-name: /v1/register-application + new-operation-name: /v2/register-application + required: true + responses: + "204": + description: Will broadcast operation update + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + backend-time: + description: "Value written by the service provider, reporting\ + \ the elapsed time for data retrieval from the backend (service\ + \ invocation, database access…). Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 850 + life-cycle-state: + description: Life cycle state of the consumed service + style: simple + explode: false + schema: + type: string + example: EXPERIMENTAL + enum: + - EXPERIMENTAL + - OPERATIONAL + - DEPRECATED + - OBSOLETE + - UNKNOWN + - NOT_YET_DEFINED + "400": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "401": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "403": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "404": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "500": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + default: + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' security: - apiKeyAuth: [] x-swagger-router-controller: IndividualServices - /v1/relay-operation-update: + /v1/notify-embedding-status-changes: post: tags: - IndividualServices - summary: Offers broadcasting of information about backward compatible operations - operationId: relayOperationUpdate + summary: Offers subscribing to notifications about changes of the embedding + status + operationId: notifyEmbeddingStatusChanges parameters: - name: user in: header @@ -9662,11 +13391,12 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/v1_relayoperationupdate_body' + $ref: '#/components/schemas/v1_notifyembeddingstatuschanges_body' required: true responses: "204": - description: Will broadcast operation update + description: Subscribed for notifications about changes of the embedding + status headers: x-correlator: description: UUID for the service execution flow that allows to correlate @@ -9698,7 +13428,7 @@ paths: example: 850 life-cycle-state: description: | - 'Life cycle state of the consumed service find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-s-is-011/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + 'Life cycle state of the consumed service find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-is-013/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' style: simple explode: false schema: @@ -9734,15 +13464,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -9770,15 +13491,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -9806,15 +13518,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -9842,15 +13545,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -9878,15 +13572,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -9914,19 +13599,330 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: $ref: '#/components/schemas/errorDescription' + callbacks: + EmbeddingStatusNotification: + url: + post: + parameters: + - name: user + in: header + description: User identifier from the system starting the service + call + required: true + style: simple + explode: false + schema: + type: string + example: User Name + - name: originator + in: header + description: | + 'Identification for the system consuming the API, as defined in + [/core-model-1-4:control-construct/logical-termination-point={uuid}/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + required: true + style: simple + explode: false + schema: + minLength: 3 + type: string + example: Resolver + - name: x-correlator + in: header + description: UUID for the service execution flow that allows to correlate + requests and responses + required: true + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + description: Empty string accepted from external applications. + example: 550e8400-e29b-11d4-a716-446655440000 + - name: trace-indicator + in: header + description: Sequence of request numbers along the flow + required: true + style: simple + explode: false + schema: + pattern: "^([0-9]+)(\\.([0-9]+))*$" + type: string + description: Empty string accepted from external applications. + example: 1.3.1 + - name: customer-journey + in: header + description: Holds information supporting customer’s journey to which + the execution applies + required: true + style: simple + explode: false + schema: + type: string + example: Unknown value + requestBody: + content: + application/json: + schema: + oneOf: + - required: + - application-name + - release-number + - successfully-embedded + type: object + properties: + application-name: + type: string + description: | + 'Name of application that shall be subject to the status record from' + release-number: + pattern: "^([0-9]{1,2})\\.([0-9]{1,2})\\.([0-9]{1,2})$" + type: string + description: | + 'Release of application that shall be subject to the status record from' + successfully-embedded: + type: boolean + description: | + 'If true, the application successfully connected with the TinyApplicationController from' + additionalProperties: false + description: IF successfully-embedded == true + - required: + - application-name + - reason-of-failure + - release-number + - successfully-embedded + type: object + properties: + application-name: + type: string + description: | + 'Name of application that shall be subject to the status record from' + release-number: + pattern: "^([0-9]{1,2})\\.([0-9]{1,2})\\.([0-9]{1,2})$" + type: string + description: | + 'Release of application that shall be subject to the status record from' + successfully-embedded: + type: boolean + description: | + 'If false, the application did not successfully connect with the TinyApplicationController from' + reason-of-failure: + type: string + description: | + 'Only exists, if successfully-embedded==false from' + description: IF successfully-embedded == false + required: true + responses: + "204": + description: Embedding status documented + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + backend-time: + description: "Value written by the service provider, reporting\ + \ the elapsed time for data retrieval from the backend (service\ + \ invocation, database access…). Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 850 + life-cycle-state: + description: Life cycle state of the consumed service + style: simple + explode: false + schema: + type: string + example: EXPERIMENTAL + enum: + - EXPERIMENTAL + - OPERATIONAL + - DEPRECATED + - OBSOLETE + - UNKNOWN + - NOT_YET_DEFINED + "400": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "401": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "403": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "404": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "500": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + default: + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' security: - apiKeyAuth: [] x-swagger-router-controller: IndividualServices @@ -9999,20 +13995,20 @@ paths: schema: $ref: '#/components/schemas/v1_registeryourself_body' example: - registry-office-application: RegistryOffice - registry-office-application-release-number: 2.0.1 - registration-operation: /v1/register-application + registry-office-application: ApplicationForRegistering + registry-office-application-release-number: 43.3.4 + registration-operation: /v2/register-application registry-office-protocol: HTTP registry-office-address: ip-address: - ipv-4-address: 1.1.3.8 - registry-office-port: 3008 + ipv-4-address: 1.1.3.1 + registry-office-port: 3001 http-address: ip-address: - ipv-4-address: 1.1.3.9 - http-port: 3009 - preceding-application-name: TypeApprovalRegister - preceding-release-number: 1.0.0 + ipv-4-address: 1.1.3.1 + http-port: 3001 + preceding-application-name: OldApplicationName + preceding-release-number: 54.3.3 required: true responses: "204": @@ -10048,7 +14044,7 @@ paths: example: 850 life-cycle-state: description: | - 'Life cycle state of the consumed service find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-s-bm-000/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + 'Life cycle state of the consumed service from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bm-000/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' style: simple explode: false schema: @@ -10084,15 +14080,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -10120,15 +14107,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -10156,15 +14134,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -10192,15 +14161,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -10218,25 +14178,16 @@ paths: pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" type: string example: 550e8400-e29b-11d4-a716-446655440000 - exec-time: - description: "Value written by the service provider, reporting the total\ - \ elapsed time for the execution, including all the additional processing\ - \ needed to retrieve the data from the backend service. Expressed\ - \ in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" + exec-time: + description: "Value written by the service provider, reporting the total\ + \ elapsed time for the execution, including all the additional processing\ + \ needed to retrieve the data from the backend service. Expressed\ + \ in milliseconds" style: simple explode: false schema: type: integer - example: 850 + example: 1100 content: application/json: schema: @@ -10264,21 +14215,327 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: $ref: '#/components/schemas/errorDescription' callbacks: PromptForRegisteringCausesRegistrationRequest: + url: + description: | + 'DEPRECATED Callback shall be deleted with RO v3.0.0 Starting from RO v2.1.0, PromptForRegisteringCausesRegistrationRequest shall be executed first and PromptForRegisteringCausesRegistrationRequest2 second. Sequence shall be kept regardless of the respective HTTP response codes.' + post: + parameters: + - name: user + in: header + description: User identifier from the system starting the service + call + required: true + style: simple + explode: false + schema: + type: string + example: User Name + - name: originator + in: header + description: | + 'Identification for the system consuming the API, as defined in + [/core-model-1-4:control-construct/logical-termination-point={uuid}/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + required: true + style: simple + explode: false + schema: + minLength: 3 + type: string + example: Resolver + - name: x-correlator + in: header + description: UUID for the service execution flow that allows to correlate + requests and responses + required: true + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + description: Empty string accepted from external applications. + example: 550e8400-e29b-11d4-a716-446655440000 + - name: trace-indicator + in: header + description: Sequence of request numbers along the flow + required: true + style: simple + explode: false + schema: + pattern: "^([0-9]+)(\\.([0-9]+))*$" + type: string + description: Empty string accepted from external applications. + example: 1.3.1 + - name: customer-journey + in: header + description: Holds information supporting customer’s journey to which + the execution applies + required: true + style: simple + explode: false + schema: + type: string + example: Unknown value + requestBody: + content: + application/json: + schema: + required: + - application-name + - client-update-operation + - embedding-operation + - operation-client-update-operation + - release-number + - tcp-server-list + type: object + properties: + application-name: + type: string + description: | + 'Own application name from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' + release-number: + type: string + description: | + 'Own release number from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' + preceding-application-name: + type: string + description: | + 'To be providede if application-name in *-http-c-or-* different from OldRelease for preparing RO for the new application addressing /v1/bequeath-your-data-and-die at the preceding application after receiving /v1/embed-yourself from [/core-model-1-4:control-construct/logical-termination-point=*-http-c-or-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + preceding-release-number: + type: string + description: | + 'To be providede if application-name in *-http-c-or-* different from OldRelease for preparing RO for the new application addressing /v1/bequeath-your-data-and-die at the preceding application after receiving /v1/embed-yourself from [/core-model-1-4:control-construct/logical-termination-point=*-http-c-or-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + embedding-operation: + type: string + description: | + 'Name of service for initiating embedding process from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bm-001/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' + client-update-operation: + type: string + description: | + 'Name of service for broadcasting server changes from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bm-007/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' + operation-client-update-operation: + type: string + description: | + 'Name of service for broadcasting replacements of operations by backward compatible substitutes from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bm-011/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' + tcp-server-list: + type: array + items: + required: + - address + - port + - protocol + type: object + properties: + protocol: + type: string + description: | + 'Own protocol (shall be taken (if available) from the stored data, but not from the initiating request body, because attribute is not mandatory in the request body definition) from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-protocol]' + address: + type: object + properties: + ip-address: + type: object + properties: + ipv-4-address: + type: string + description: | + 'Own IPv4 address (shall be taken (if available) from the stored data, but not from the initiating request body, because attribute is not mandatory in the request body definition) from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/ipv-4-address]' + domain-name: + type: string + description: | + 'Own domain name (shall be taken (if available) from the stored data, but not from the initiating request body, because attribute is not mandatory in the request body definition) from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/domain-name]' + port: + type: integer + description: | + 'Own TCP port (shall be taken from the stored data, but not from the initiating request body, because attribute is not mandatory in the request body definition) from[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-port]' + required: true + responses: + "204": + description: Application registered + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + backend-time: + description: "Value written by the service provider, reporting\ + \ the elapsed time for data retrieval from the backend (service\ + \ invocation, database access…). Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 850 + life-cycle-state: + description: Life cycle state of the consumed service + style: simple + explode: false + schema: + type: string + example: EXPERIMENTAL + enum: + - EXPERIMENTAL + - OPERATIONAL + - DEPRECATED + - OBSOLETE + - UNKNOWN + - NOT_YET_DEFINED + "400": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "403": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "404": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "500": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + default: + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + PromptForRegisteringCausesRegistrationRequest2: url: post: parameters: @@ -10344,20 +14601,23 @@ paths: required: - application-name - client-update-operation + - dispose-remainders-operation - embedding-operation - operation-client-update-operation + - preceding-release-operation - release-number - - tcp-server-list + - subsequent-release-operation + - tcp-server type: object properties: application-name: type: string description: | - 'Own application name from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' + 'Own application name from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' release-number: type: string description: | - 'Own release number from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' + 'Own release number from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' preceding-application-name: type: string description: | @@ -10369,65 +14629,52 @@ paths: embedding-operation: type: string description: | - 'Name of service for initiating embedding process from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-s-bm-001/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' + 'Name of service for initiating embedding process from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bm-001/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' client-update-operation: type: string description: | - 'Name of service for broadcasting server changes from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-s-bm-007/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' + 'Name of service for broadcasting server changes from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bm-007/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' operation-client-update-operation: type: string description: | - 'Name of service for broadcasting replacements of operations by backward compatible substitutes from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-s-bm-011/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' - tcp-server-list: - type: array - items: - required: - - address - - port - - protocol - type: object - properties: - protocol: - type: string - description: | - 'Own protocol (shall be taken (if available) from the stored data, but not from the initiating request body, because attribute is not mandatory in the request body definition) from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-protocol]' - address: - type: object - properties: - ip-address: - type: object - properties: - ipv-4-address: - type: string - description: | - 'Own IPv4 address (shall be taken (if available) from the stored data, but not from the initiating request body, because attribute is not mandatory in the request body definition) from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/ipv-4-address]' - domain-name: - type: string - description: | - 'Own domain name (shall be taken (if available) from the stored data, but not from the initiating request body, because attribute is not mandatory in the request body definition) from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/domain-name]' - port: - type: integer - description: | - 'Own TCP port (shall be taken from the stored data, but not from the initiating request body, because attribute is not mandatory in the request body definition) from[/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-port]' - example: - application-name: TypeApprovalRegister - release-number: 2.0.1 - preceding-application-name: TypeApprovalRegister - preceding-release-number: 1.0.0 - embedding-operation: /v1/embed-yourself - client-update-operation: /v1/update-client - operation-client-update-operation: /v1/update-operation-client - tcp-server-list: - - protocol: HTTP - address: - ip-address: - ipv-4-address: 1.1.3.9 - port: 3009 - - protocol: HTTPS - address: - ip-address: - ipv-4-address: 1.2.3.9 - port: 3209 + 'Name of service for broadcasting replacements of operations by backward compatible substitutes from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bm-011/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' + dispose-remainders-operation: + type: string + description: | + 'Name of service for broadcasting de-registrations of applications from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bm-013/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' + preceding-release-operation: + type: string + description: | + 'Name of service for broadcasting de-registrations of applications from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bm-014/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' + subsequent-release-operation: + type: string + description: | + 'Name of service for broadcasting de-registrations of applications from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bm-015/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' + tcp-server: + type: object + properties: + protocol: + type: string + description: | + 'Own protocol (shall be taken (if available) from the stored data, but not from the initiating request body, because attribute is not mandatory in the request body definition) from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-protocol]' + address: + type: object + properties: + ip-address: + type: object + properties: + ipv-4-address: + type: string + description: | + 'Own IPv4 address (shall be taken (if available) from the stored data, but not from the initiating request body, because attribute is not mandatory in the request body definition) from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/ipv-4-address]' + domain-name: + type: string + description: | + 'Own domain name (shall be taken (if available) from the stored data, but not from the initiating request body, because attribute is not mandatory in the request body definition) from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/domain-name]' + port: + type: integer + description: | + 'Own TCP port (shall be taken from the stored data, but not from the initiating request body, because attribute is not mandatory in the request body definition) from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-port]' required: true responses: "204": @@ -10498,15 +14745,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -10534,15 +14772,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -10570,15 +14799,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -10606,15 +14826,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -10642,15 +14853,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -10759,7 +14961,7 @@ paths: example: 850 life-cycle-state: description: | - 'Life cycle state of the consumed service find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-s-bm-001/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + 'Life cycle state of the consumed service from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bm-001/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' style: simple explode: false schema: @@ -10795,15 +14997,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -10831,15 +15024,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -10867,15 +15051,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -10903,15 +15078,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -10939,15 +15105,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -10975,15 +15132,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -11063,15 +15211,15 @@ paths: new-application-name: type: string description: | - 'Own application name from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' + 'Own application name from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' new-application-release: type: string description: | - 'Own release number from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' + 'Own release number from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' new-application-protocol: type: string description: | - 'Protocol expected by this application from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-protocol]' + 'Protocol expected by this application from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-protocol]' new-application-address: type: object properties: @@ -11081,23 +15229,15 @@ paths: ipv-4-address: type: string description: | - 'Own IPv4 address from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/ipv-4-address]' + 'Own IPv4 address from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/ipv-4-address]' domain-name: type: string description: | - 'Own domain-name from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/domain-name]' + 'Own domain-name from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/domain-name]' new-application-port: type: integer description: | - 'Own TCP port from[/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-port]' - example: - new-application-name: OwnApplicationName - new-application-release: 2.0.1 - new-application-protocol: HTTP - new-application-address: - ip-address: - ipv-4-address: 1.1.4.1 - new-application-port: 4001 + 'Own TCP port from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-port]' required: true responses: "204": @@ -11169,15 +15309,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -11205,15 +15336,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -11241,15 +15363,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -11269,23 +15382,14 @@ paths: example: 550e8400-e29b-11d4-a716-446655440000 exec-time: description: "Value written by the service provider, reporting\ - \ the total elapsed time for the execution, including all\ - \ the additional processing needed to retrieve the data from\ - \ the backend service. Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" style: simple explode: false schema: type: integer - example: 850 + example: 1100 content: application/json: schema: @@ -11313,15 +15417,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -11349,15 +15444,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -11467,7 +15553,7 @@ paths: example: 850 life-cycle-state: description: | - 'Life cycle state of the consumed service find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-s-bm-002/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + 'Life cycle state of the consumed service from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bm-002/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' style: simple explode: false schema: @@ -11503,15 +15589,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -11539,15 +15616,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -11575,15 +15643,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -11611,15 +15670,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -11647,15 +15697,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -11683,15 +15724,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -11790,13 +15822,13 @@ paths: \ in all service headers [originator]" application-name: type: string - description: "[/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]" + description: "[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]" release-number: type: string - description: "[/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]" + description: "[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]" operation-name: type: string - description: "[/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-s-*/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]" + description: "[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-*/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]" response-code: type: integer description: "Response code sent to [originator] after invoking\ @@ -11804,31 +15836,31 @@ paths: timestamp: type: string description: "Date and time when [application-name] sent\ - \ response to [originator]; only to be provided, if [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-c-bs-eatl-2-0-1-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/detailed-logging-is-on]\ + \ response to [originator]; only to be provided, if [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bs-eatl-2-0-1-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/detailed-logging-is-on]\ \ == true" stringified-body: type: string description: "Stringified body of the request addressed\ \ from [originator] to [application-name]; only to be\ - \ provided, if [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-c-bs-eatl-2-0-1-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/detailed-logging-is-on]\ + \ provided, if [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bs-eatl-2-0-1-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/detailed-logging-is-on]\ \ == true" stringified-response: type: string description: "Stringified response sent from [application-name]\ - \ to [originator]; only to be provided, if [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-c-bs-eatl-2-0-1-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/detailed-logging-is-on]\ + \ to [originator]; only to be provided, if [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bs-eatl-2-0-1-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/detailed-logging-is-on]\ \ == true" - example: - x-correlator: 550e8400-e29b-11d4-a716-446655440000 - trace-indicator: "1.1" - user: User Name - originator: RegistryOffice - application-name: OwnApplicationName - release-number: 1.0.0 - operation-name: /v1/embed-yourself - response-code: 500 - timestamp: 2010-11-20T14:00:00+01:00 - stringified-body: "" - stringified-response: "" + url: + type: string + description: "Complete URL that has been addressed by the\ + \ request; only to be provided, if the client is sending\ + \ the record to EaTL, because the server could not be\ + \ reached" + exec-time: + type: integer + description: "Total elapsed time for the execution of the\ + \ request; value identical with responseHeaders.exec-time;\ + \ only to be provided, if the server is sending the record\ + \ to EaTL after processing the request" required: true responses: "204": @@ -11899,15 +15931,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -11935,15 +15958,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -11971,15 +15985,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -12007,15 +16012,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -12043,15 +16039,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -12079,15 +16066,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -12196,7 +16174,7 @@ paths: example: 850 life-cycle-state: description: | - 'Life cycle state of the consumed service find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-s-bm-003/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + 'Life cycle state of the consumed service from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bm-003/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' style: simple explode: false schema: @@ -12232,15 +16210,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -12268,15 +16237,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -12304,15 +16264,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -12340,15 +16291,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -12376,15 +16318,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -12412,15 +16345,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -12503,11 +16427,11 @@ paths: application-name: type: string description: | - 'Own application name from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' + 'Own application name from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' release-number: type: string description: | - 'Own release number from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' + 'Own release number from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' method: type: string description: "Method applied in the OaM request, which is\ @@ -12532,16 +16456,6 @@ paths: type: string description: "Date and time when the response to the OaM\ \ request, which is to be recorded, has been sent" - example: - application-name: OwnApplicationName - release-number: 1.0.0 - method: PUT - resource: /core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-port - stringified-body: "{\"tcp-server-interface-1-0:local-port\"\ - :\"1000\"}" - response-code: 204 - user-name: Max Mustermann - timestamp: 2010-11-20T14:00:00+01:02 required: true responses: "204": @@ -12612,15 +16526,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -12648,15 +16553,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -12684,15 +16580,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -12720,15 +16607,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -12756,15 +16634,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -12792,15 +16661,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -12909,7 +16769,7 @@ paths: example: 850 life-cycle-state: description: | - 'Life cycle state of the consumed service find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-s-bm-004/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + 'Life cycle state of the consumed service from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bm-004/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' style: simple explode: false schema: @@ -12938,22 +16798,13 @@ paths: exec-time: description: "Value written by the service provider, reporting the total\ \ elapsed time for the execution, including all the additional processing\ - \ needed to retrieve the data from the backend service. Expressed\ - \ in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" + \ needed to retrieve the data from the backend service. Expressed\ + \ in milliseconds" style: simple explode: false schema: type: integer - example: 850 + example: 1100 content: application/json: schema: @@ -12981,15 +16832,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -13017,15 +16859,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -13053,15 +16886,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -13089,15 +16913,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -13125,15 +16940,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -13142,6 +16948,8 @@ paths: - apiKeyAuth: [] x-swagger-router-controller: BasicServices /v1/inquire-oam-request-approvals: + description: | + 'DEPRECATED Service shall be deleted with AP v3.0.0 Starting from AP v2.1.0, /v1/inquire-basic-auth-approvals shall be applied as a backward compatible update' post: tags: - BasicServices @@ -13242,7 +17050,7 @@ paths: example: 850 life-cycle-state: description: | - 'Life cycle state of the consumed service find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-s-bm-005/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + 'Life cycle state of the consumed service from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bm-005/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' style: simple explode: false schema: @@ -13278,15 +17086,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -13314,15 +17113,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -13350,15 +17140,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -13386,15 +17167,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -13422,15 +17194,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -13458,21 +17221,12 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: $ref: '#/components/schemas/errorDescription' callbacks: - OamRequestCausesInquiryForAuthentication: + BasicAuthRequestCausesInquiryForAuthentication: url: post: parameters: @@ -13539,34 +17293,34 @@ paths: - Authorization - application-name - method + - operation-name - release-number type: object properties: + Authorization: + type: string + description: | + 'Authorization code from {$request.parameters#Authorization} of the BasicAuth request that initiates the inquiry for approval' application-name: type: string description: | - 'Own application name for the AdministratorAdministration to check, whether this application is part of the SDN at all from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' + 'Own application name from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' release-number: type: string description: | - 'Own application release number for the AdministratorAdministration to check, whether this application is part of the SDN at all from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' - Authorization: + 'Own application release number from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' + operation-name: type: string description: | - 'Authorization code of the administrator addressing the OaM request to this application from [parameters::Authorization]' + 'Path (could be service, could be OaM path) that has been addressed by the BasicAuth request in path parameter values to be replaced by original parameter names in curly brackets filters to be removed from {$request.path} of the BasicAuth request that initiates the inquiry for approval' method: type: string - description: "Method applied in the OaM request, which is\ - \ to be recorded" - example: - application-name: OwnApplicationName - release-number: 1.0.0 - Authorization: Basic PEJhc2ljIEF1dGggVXNlcm5hbWU+OjxCYHduEdBBdXRoIFBhc3N3b3JkPg== - method: PUT + description: | + 'Method applied in the BasicAuth request from {$request.method} of the BasicAuth request that initiates the inquiry for approval' required: true responses: "200": - description: Response on inquiry for approval of an OaM request + description: Response on inquiry for approval of a BasicAuth request provided headers: x-correlator: @@ -13614,30 +17368,26 @@ paths: content: application/json: schema: - required: - - oam-request-is-approved - type: object - properties: - oam-request-is-approved: - type: boolean - reason-of-objection: - type: string - description: | - 'This attribute to be represented, if response::oam-request-is-approved==false. Reasons to be checked and indicated according to the sequence defined in the enumeration.' - enum: - - APPLICATION_NAME_UNKNOWN - - RELEASE_NUMBER_UNKNOWN - - AUTHORIZATION_CODE_UNKNOWN - - METHOD_NOT_ALLOWED - - UNKNOWN - examples: - "true": - value: - oam-request-is-approved: true - "false": - value: - oam-request-is-approved: false - reason-of-objection: AUTHORIZATION_CODE_UNKNOWN + oneOf: + - type: object + properties: + oam-request-is-approved: + type: boolean + reason-of-objection: + type: string + description: | + 'This attribute to be represented, if response::oam-request-is-approved==false. Reasons to be checked and indicated according to the sequence defined in the enumeration.' + description: AdministratorAdministration is responding + - type: object + properties: + basic-auth-request-is-approved: + type: boolean + description: "If true, BasicAuth request can be executed" + reason-of-objection: + type: string + description: | + 'if AUTHORIZATION_CODE_UNKNOWN BasicAuth request to be aborted and 401 to be sent else BasicAuth request to be aborted and 403 to be sent' + description: AccessAdministration is responding "400": description: Response in case of errored service requests headers: @@ -13661,15 +17411,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -13697,15 +17438,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -13733,15 +17465,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -13769,15 +17492,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -13805,15 +17519,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -13841,15 +17546,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -13863,7 +17559,7 @@ paths: - BasicServices summary: Allows updating connection data of a serving application description: | - 'Initiates update of release number and TCP/IP address at existing HttpClients and TcpClients. If combination of {future-application-name, future-release-number} is different from combination {current-application-name, current-release-number} and if HttpClient with combination of {future-application-name, future-release-number} already exists, HttpClient with combination {current-application-name, current-release-number} shall not be updated, but OperationClients shall be transferred to the HttpClient with combination of {future-application-name, future-release-number}.' + 'Initiates update of release number and TCP/IP address at existing HttpClients and TcpClients, but not at OldRelease or NewRelease. If combination of {future-application-name, future-release-number} is different from combination {current-application-name, current-release-number} and if HttpClient with combination of {future-application-name, future-release-number} already exists, HttpClient with combination {current-application-name, current-release-number} shall not be updated, but OperationClients shall be transferred to the HttpClient with combination of {future-application-name, future-release-number}.' operationId: updateClient parameters: - name: user @@ -13960,7 +17656,7 @@ paths: example: 850 life-cycle-state: description: | - 'Life cycle state of the consumed service find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-s-bm-007/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + 'Life cycle state of the consumed service from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bm-007/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' style: simple explode: false schema: @@ -13996,15 +17692,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -14032,15 +17719,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -14068,15 +17746,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -14104,15 +17773,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -14140,15 +17800,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -14176,15 +17827,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -14287,7 +17929,7 @@ paths: example: 850 life-cycle-state: description: | - 'Life cycle state of the consumed service find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-s-bm-008/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + 'Life cycle state of the consumed service from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bm-008/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' style: simple explode: false schema: @@ -14303,7 +17945,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/inline_response_200' + $ref: '#/components/schemas/inline_response_200_1' "400": description: Response in case of errored service requests headers: @@ -14327,15 +17969,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -14362,16 +17995,7 @@ paths: explode: false schema: type: integer - example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 + example: 1100 content: application/json: schema: @@ -14399,15 +18023,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -14435,15 +18050,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -14471,15 +18077,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -14507,15 +18104,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -14626,7 +18214,7 @@ paths: example: 850 life-cycle-state: description: | - 'Life cycle state of the consumed service find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-s-bm-009/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + 'Life cycle state of the consumed service from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bm-009/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' style: simple explode: false schema: @@ -14642,7 +18230,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/inline_response_200_1' + $ref: '#/components/schemas/inline_response_200_2' "400": description: Response in case of errored service requests headers: @@ -14666,15 +18254,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -14702,15 +18281,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -14738,15 +18308,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -14774,15 +18335,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -14810,15 +18362,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -14846,15 +18389,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -14862,8 +18396,283 @@ paths: callbacks: ServiceRequestCausesLtpUpdateRequest: url: - description: To be activated whenever a service request causes the creation - or change of an LTP + description: To be activated whenever a service request causes the creation + or change of an LTP + post: + parameters: + - name: user + in: header + description: User identifier from the system starting the service + call + required: true + style: simple + explode: false + schema: + type: string + example: User Name + - name: originator + in: header + description: | + 'Identification for the system consuming the API, as defined in + [/core-model-1-4:control-construct/logical-termination-point={uuid}/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + required: true + style: simple + explode: false + schema: + minLength: 3 + type: string + example: Resolver + - name: x-correlator + in: header + description: UUID for the service execution flow that allows to correlate + requests and responses + required: true + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + description: Empty string accepted from external applications. + example: 550e8400-e29b-11d4-a716-446655440000 + - name: trace-indicator + in: header + description: Sequence of request numbers along the flow + required: true + style: simple + explode: false + schema: + pattern: "^([0-9]+)(\\.([0-9]+))*$" + type: string + description: Empty string accepted from external applications. + example: 1.3.1 + - name: customer-journey + in: header + description: Holds information supporting customer’s journey to which + the execution applies + required: true + style: simple + explode: false + schema: + type: string + example: Unknown value + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/logicalTerminationPoint' + required: true + responses: + "204": + description: LTP will be updated + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + backend-time: + description: "Value written by the service provider, reporting\ + \ the elapsed time for data retrieval from the backend (service\ + \ invocation, database access…). Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 850 + life-cycle-state: + description: Life cycle state of the consumed service + style: simple + explode: false + schema: + type: string + example: EXPERIMENTAL + enum: + - EXPERIMENTAL + - OPERATIONAL + - DEPRECATED + - OBSOLETE + - UNKNOWN + - NOT_YET_DEFINED + "400": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "401": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "403": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "404": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "500": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + default: + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows + to correlate requests and responses. Its value must be identical + at the response compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting\ + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + ServiceRequestCausesLtpDeletionRequest: + url: + description: To be activated whenever a service request causes an LTP + being deleted post: parameters: - name: user @@ -14925,11 +18734,16 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/logicalTerminationPoint' + required: + - uuid + type: object + properties: + uuid: + type: string required: true responses: "204": - description: LTP will be updated + description: LTP and its dependents will be deleted headers: x-correlator: description: UUID for the service execution flow that allows @@ -14996,15 +18810,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -15032,15 +18837,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -15068,15 +18864,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -15104,15 +18891,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -15140,15 +18918,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -15176,23 +18945,14 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: $ref: '#/components/schemas/errorDescription' - ServiceRequestCausesLtpDeletionRequest: + ServiceRequestCausesFcUpdateRequest: url: - description: To be activated whenever a service request causes an LTP - being deleted + description: To be activated whenever a service request causes the creation + or change of an FC port post: parameters: - name: user @@ -15255,17 +19015,44 @@ paths: application/json: schema: required: + - fc-port + - name - uuid type: object properties: uuid: type: string - example: - uuid: ro-2-0-1-op-s-bm-002 + name: + type: array + items: + required: + - value + - value-name + type: object + properties: + value-name: + type: string + value: + type: string + fc-port: + type: array + items: + required: + - local-id + - logical-termination-point + - port-direction + type: object + properties: + local-id: + type: string + port-direction: + type: string + logical-termination-point: + type: string required: true responses: "204": - description: LTP and its dependents will be deleted + description: FC will be updated headers: x-correlator: description: UUID for the service execution flow that allows @@ -15332,15 +19119,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -15368,15 +19146,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -15404,15 +19173,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -15432,23 +19192,14 @@ paths: example: 550e8400-e29b-11d4-a716-446655440000 exec-time: description: "Value written by the service provider, reporting\ - \ the total elapsed time for the execution, including all\ - \ the additional processing needed to retrieve the data from\ - \ the backend service. Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" style: simple explode: false schema: type: integer - example: 850 + example: 1100 content: application/json: schema: @@ -15476,15 +19227,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -15512,23 +19254,14 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: $ref: '#/components/schemas/errorDescription' - ServiceRequestCausesFcUpdateRequest: + ServiceRequestCausesFcPortUpdateRequest: url: - description: To be activated whenever a service request causes the creation - or change of an FC port + description: To be activated whenever a service request causes an FC port + being updated post: parameters: - name: user @@ -15592,57 +19325,28 @@ paths: schema: required: - fc-port - - name - - uuid + - fc-uuid type: object properties: - uuid: + fc-uuid: type: string - name: - type: array - items: - required: - - value - - value-name - type: object - properties: - value-name: - type: string - value: - type: string - fc-port: - type: array - items: - required: - - local-id - - logical-termination-point - - port-direction - type: object - properties: - local-id: - type: string - port-direction: - type: string - logical-termination-point: - type: string - example: - uuid: ro-2-0-1-op-fc-bm-003 - name: - - value-name: ForwardingKind - value: core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET - - value-name: ForwardingName - value: OamRequestCausesLoggingRequest fc-port: - - local-id: "000" - port-direction: core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT - logical-termination-point: ro-2-0-1-op-s-bm-003 - - local-id: "200" - port-direction: core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT - logical-termination-point: ro-2-0-1-op-c-bs-ol-2-0-1-000 + required: + - local-id + - logical-termination-point + - port-direction + type: object + properties: + local-id: + type: string + port-direction: + type: string + logical-termination-point: + type: string required: true responses: "204": - description: FC will be updated + description: FC port will be updated headers: x-correlator: description: UUID for the service execution flow that allows @@ -15709,15 +19413,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -15745,15 +19440,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -15781,15 +19467,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -15817,15 +19494,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -15853,15 +19521,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -15889,23 +19548,14 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: $ref: '#/components/schemas/errorDescription' - ServiceRequestCausesFcPortUpdateRequest: + ServiceRequestCausesFcPortDeletionRequest: url: description: To be activated whenever a service request causes an FC port - being updated + being deleted post: parameters: - name: user @@ -15968,35 +19618,18 @@ paths: application/json: schema: required: - - fc-port + - fc-port-local-id - fc-uuid type: object properties: fc-uuid: type: string - fc-port: - required: - - local-id - - logical-termination-point - - port-direction - type: object - properties: - local-id: - type: string - port-direction: - type: string - logical-termination-point: - type: string - example: - fc-uuid: ro-2-0-1-op-fc-bm-003 - fc-port: - local-id: "000" - port-direction: core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT - logical-termination-point: ro-2-0-1-op-s-bm-003 + fc-port-local-id: + type: string required: true responses: "204": - description: FC port will be updated + description: FC port will be deleted headers: x-correlator: description: UUID for the service execution flow that allows @@ -16063,15 +19696,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -16099,15 +19723,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -16135,15 +19750,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -16171,15 +19777,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -16207,15 +19804,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -16243,23 +19831,14 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: $ref: '#/components/schemas/errorDescription' - ServiceRequestCausesFcPortDeletionRequest: + OamRequestCausesLtpUpdateRequest: url: - description: To be activated whenever a service request causes an FC port - being deleted + description: To be activated whenever an OaM request causes the creation + or change of an LTP post: parameters: - name: user @@ -16321,22 +19900,11 @@ paths: content: application/json: schema: - required: - - fc-port-local-id - - fc-uuid - type: object - properties: - fc-uuid: - type: string - fc-port-local-id: - type: string - example: - fc-uuid: ro-2-0-1-op-fc-bm-003 - fc-port-local-id: "202" + $ref: '#/components/schemas/logicalTerminationPoint' required: true responses: "204": - description: FC port will be deleted + description: LTP will be updated headers: x-correlator: description: UUID for the service execution flow that allows @@ -16403,15 +19971,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -16439,15 +19998,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -16474,16 +20024,7 @@ paths: explode: false schema: type: integer - example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 + example: 1100 content: application/json: schema: @@ -16511,15 +20052,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -16547,15 +20079,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -16583,23 +20106,14 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: $ref: '#/components/schemas/errorDescription' - OamRequestCausesLtpUpdateRequest: + OamRequestCausesLtpDeletionRequest: url: - description: To be activated whenever an OaM request causes the creation - or change of an LTP + description: To be activated whenever an OaM request causes an LTP being + deleted post: parameters: - name: user @@ -16661,11 +20175,16 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/logicalTerminationPoint' + required: + - uuid + type: object + properties: + uuid: + type: string required: true responses: "204": - description: LTP will be updated + description: LTP will be deleted headers: x-correlator: description: UUID for the service execution flow that allows @@ -16732,15 +20251,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -16768,15 +20278,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -16804,15 +20305,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -16840,15 +20332,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -16876,15 +20359,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -16912,23 +20386,14 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: $ref: '#/components/schemas/errorDescription' - OamRequestCausesLtpDeletionRequest: + OamRequestCausesFcUpdateRequest: url: - description: To be activated whenever an OaM request causes an LTP being - deleted + description: To be activated whenever an OaM request causes the creation + or change of an FC port post: parameters: - name: user @@ -16991,17 +20456,44 @@ paths: application/json: schema: required: + - fc-port + - name - uuid type: object properties: uuid: type: string - example: - uuid: ro-2-0-1-op-s-bm-002 + name: + type: array + items: + required: + - value + - value-name + type: object + properties: + value-name: + type: string + value: + type: string + fc-port: + type: array + items: + required: + - local-id + - logical-termination-point + - port-direction + type: object + properties: + local-id: + type: string + port-direction: + type: string + logical-termination-point: + type: string required: true responses: "204": - description: LTP will be deleted + description: FC port will be updated headers: x-correlator: description: UUID for the service execution flow that allows @@ -17068,15 +20560,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -17104,15 +20587,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -17140,15 +20614,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -17176,15 +20641,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -17212,15 +20668,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -17248,23 +20695,14 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: $ref: '#/components/schemas/errorDescription' - OamRequestCausesFcUpdateRequest: + OamRequestCausesFcPortUpdateRequest: url: - description: To be activated whenever an OaM request causes the creation - or change of an FC port + description: To be activated whenever an OaM request causes an FC port + being updated post: parameters: - name: user @@ -17328,53 +20766,28 @@ paths: schema: required: - fc-port - - name - - uuid + - fc-uuid type: object properties: - uuid: + fc-uuid: type: string - name: - type: array - items: - required: - - value - - value-name - type: object - properties: - value-name: - type: string - value: - type: string - fc-port: - type: array - items: - required: - - local-id - - logical-termination-point - - port-direction - type: object - properties: - local-id: - type: string - port-direction: - type: string - logical-termination-point: - type: string - example: - uuid: ro-2-0-1-op-fc-bm-003 - name: - - value-name: ForwardingKind - value: core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET - - value-name: ForwardingName - value: OamRequestCausesLoggingRequest fc-port: - - local-id: "000" - port-direction: core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT - logical-termination-point: ro-2-0-1-op-s-bm-003 - - local-id: "200" - port-direction: core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT - logical-termination-point: ro-2-0-1-op-c-bs-ol-2-0-1-000 + required: + - local-id + - logical-termination-point + - port-direction + type: object + properties: + local-id: + type: string + port-direction: + type: string + enum: + - core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT + - core-model-1-4:PORT_DIRECTION_TYPE_INPUT + - core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT + logical-termination-point: + type: string required: true responses: "204": @@ -17437,23 +20850,14 @@ paths: example: 550e8400-e29b-11d4-a716-446655440000 exec-time: description: "Value written by the service provider, reporting\ - \ the total elapsed time for the execution, including all\ - \ the additional processing needed to retrieve the data from\ - \ the backend service. Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" style: simple explode: false schema: type: integer - example: 850 + example: 1100 content: application/json: schema: @@ -17481,15 +20885,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -17517,15 +20912,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -17553,15 +20939,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -17589,15 +20966,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -17625,23 +20993,14 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: $ref: '#/components/schemas/errorDescription' - OamRequestCausesFcPortUpdateRequest: + OamRequestCausesFcPortDeletionRequest: url: description: To be activated whenever an OaM request causes an FC port - being updated + being deleted post: parameters: - name: user @@ -17704,39 +21063,18 @@ paths: application/json: schema: required: - - fc-port + - fc-port-local-id - fc-uuid type: object properties: fc-uuid: type: string - fc-port: - required: - - local-id - - logical-termination-point - - port-direction - type: object - properties: - local-id: - type: string - port-direction: - type: string - enum: - - core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT - - core-model-1-4:PORT_DIRECTION_TYPE_INPUT - - core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT - logical-termination-point: - type: string - example: - fc-uuid: ro-2-0-1-op-fc-bm-003 - fc-port: - local-id: "000" - port-direction: core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT - logical-termination-point: ro-2-0-1-op-s-bm-003 + fc-port-local-id: + type: string required: true responses: "204": - description: FC port will be updated + description: FC port will be deleted headers: x-correlator: description: UUID for the service execution flow that allows @@ -17803,15 +21141,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -17839,15 +21168,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -17875,15 +21195,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -17911,15 +21222,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -17947,15 +21249,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -17983,23 +21276,851 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: $ref: '#/components/schemas/errorDescription' - OamRequestCausesFcPortDeletionRequest: + security: + - apiKeyAuth: [] + x-swagger-router-controller: BasicServices + /v1/update-operation-key: + post: + tags: + - BasicServices + summary: Allows updating operation key at a server or client + operationId: updateOperationKey + parameters: + - name: user + in: header + description: User identifier from the system starting the service call + required: true + style: simple + explode: false + schema: + type: string + example: User Name + - name: originator + in: header + description: | + 'Identification for the system consuming the API, as defined in + [/core-model-1-4:control-construct/logical-termination-point={uuid}/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + required: true + style: simple + explode: false + schema: + minLength: 3 + type: string + example: Resolver + - name: x-correlator + in: header + description: UUID for the service execution flow that allows to correlate + requests and responses + required: true + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + description: Empty string accepted from external applications. + example: 550e8400-e29b-11d4-a716-446655440000 + - name: trace-indicator + in: header + description: Sequence of request numbers along the flow + required: true + style: simple + explode: false + schema: + pattern: "^([0-9]+)(\\.([0-9]+))*$" + type: string + description: Empty string accepted from external applications. + example: 1.3.1 + - name: customer-journey + in: header + description: Holds information supporting customer’s journey to which the + execution applies + required: true + style: simple + explode: false + schema: + type: string + example: Unknown value + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/v1_updateoperationkey_body' + required: true + responses: + "204": + description: Operation key has been updated + headers: + x-correlator: + description: UUID for the service execution flow that allows to correlate + requests and responses. Its value must be identical at the response + compared with its corresponding request + style: simple + explode: false + schema: + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting the total\ + \ elapsed time for the execution, including all the additional processing\ + \ needed to retrieve the data from the backend service. Expressed\ + \ in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + backend-time: + description: "Value written by the service provider, reporting the elapsed\ + \ time for data retrieval from the backend (service invocation, database\ + \ access…). Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 850 + life-cycle-state: + description: | + 'Life cycle state of the consumed service from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bm-010/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + style: simple + explode: false + schema: + type: string + example: EXPERIMENTAL + enum: + - EXPERIMENTAL + - OPERATIONAL + - DEPRECATED + - OBSOLETE + - UNKNOWN + - NOT_YET_DEFINED + "400": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows to correlate + requests and responses. Its value must be identical at the response + compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting the total\ + \ elapsed time for the execution, including all the additional processing\ + \ needed to retrieve the data from the backend service. Expressed\ + \ in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "401": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows to correlate + requests and responses. Its value must be identical at the response + compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting the total\ + \ elapsed time for the execution, including all the additional processing\ + \ needed to retrieve the data from the backend service. Expressed\ + \ in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "403": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows to correlate + requests and responses. Its value must be identical at the response + compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting the total\ + \ elapsed time for the execution, including all the additional processing\ + \ needed to retrieve the data from the backend service. Expressed\ + \ in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "404": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows to correlate + requests and responses. Its value must be identical at the response + compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting the total\ + \ elapsed time for the execution, including all the additional processing\ + \ needed to retrieve the data from the backend service. Expressed\ + \ in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "500": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows to correlate + requests and responses. Its value must be identical at the response + compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting the total\ + \ elapsed time for the execution, including all the additional processing\ + \ needed to retrieve the data from the backend service. Expressed\ + \ in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + default: + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows to correlate + requests and responses. Its value must be identical at the response + compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting the total\ + \ elapsed time for the execution, including all the additional processing\ + \ needed to retrieve the data from the backend service. Expressed\ + \ in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + security: + - apiKeyAuth: [] + x-swagger-router-controller: BasicServices + /v1/update-operation-client: + post: + tags: + - BasicServices + summary: Allows updating operation clients to redirect to backward compatible + services + operationId: updateOperationClient + parameters: + - name: user + in: header + description: User identifier from the system starting the service call + required: true + style: simple + explode: false + schema: + type: string + example: User Name + - name: originator + in: header + description: | + 'Identification for the system consuming the API, as defined in + [/core-model-1-4:control-construct/logical-termination-point={uuid}/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + required: true + style: simple + explode: false + schema: + minLength: 3 + type: string + example: Resolver + - name: x-correlator + in: header + description: UUID for the service execution flow that allows to correlate + requests and responses + required: true + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + description: Empty string accepted from external applications. + example: 550e8400-e29b-11d4-a716-446655440000 + - name: trace-indicator + in: header + description: Sequence of request numbers along the flow + required: true + style: simple + explode: false + schema: + pattern: "^([0-9]+)(\\.([0-9]+))*$" + type: string + description: Empty string accepted from external applications. + example: 1.3.1 + - name: customer-journey + in: header + description: Holds information supporting customer’s journey to which the + execution applies + required: true + style: simple + explode: false + schema: + type: string + example: Unknown value + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/v1_updateoperationclient_body' + required: true + responses: + "204": + description: "Operation clients will be updated, if existing" + headers: + x-correlator: + description: UUID for the service execution flow that allows to correlate + requests and responses. Its value must be identical at the response + compared with its corresponding request + style: simple + explode: false + schema: + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting the total\ + \ elapsed time for the execution, including all the additional processing\ + \ needed to retrieve the data from the backend service. Expressed\ + \ in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + backend-time: + description: "Value written by the service provider, reporting the elapsed\ + \ time for data retrieval from the backend (service invocation, database\ + \ access…). Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 850 + life-cycle-state: + description: | + 'Life cycle state of the consumed service from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bm-011/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + style: simple + explode: false + schema: + type: string + example: EXPERIMENTAL + enum: + - EXPERIMENTAL + - OPERATIONAL + - DEPRECATED + - OBSOLETE + - UNKNOWN + - NOT_YET_DEFINED + "400": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows to correlate + requests and responses. Its value must be identical at the response + compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting the total\ + \ elapsed time for the execution, including all the additional processing\ + \ needed to retrieve the data from the backend service. Expressed\ + \ in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "401": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows to correlate + requests and responses. Its value must be identical at the response + compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting the total\ + \ elapsed time for the execution, including all the additional processing\ + \ needed to retrieve the data from the backend service. Expressed\ + \ in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "403": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows to correlate + requests and responses. Its value must be identical at the response + compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting the total\ + \ elapsed time for the execution, including all the additional processing\ + \ needed to retrieve the data from the backend service. Expressed\ + \ in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "404": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows to correlate + requests and responses. Its value must be identical at the response + compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting the total\ + \ elapsed time for the execution, including all the additional processing\ + \ needed to retrieve the data from the backend service. Expressed\ + \ in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "500": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows to correlate + requests and responses. Its value must be identical at the response + compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting the total\ + \ elapsed time for the execution, including all the additional processing\ + \ needed to retrieve the data from the backend service. Expressed\ + \ in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + default: + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows to correlate + requests and responses. Its value must be identical at the response + compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting the total\ + \ elapsed time for the execution, including all the additional processing\ + \ needed to retrieve the data from the backend service. Expressed\ + \ in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + security: + - apiKeyAuth: [] + x-swagger-router-controller: BasicServices + /v1/inquire-basic-auth-approvals: + post: + tags: + - BasicServices + summary: Receives information about where to ask for approval of BasicAuth requests + operationId: inquireBasicAuthRequestApprovals + parameters: + - name: user + in: header + description: User identifier from the system starting the service call + required: true + style: simple + explode: false + schema: + type: string + example: User Name + - name: originator + in: header + description: | + 'Identification for the system consuming the API, as defined in + [/core-model-1-4:control-construct/logical-termination-point={uuid}/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + required: true + style: simple + explode: false + schema: + minLength: 3 + type: string + example: Resolver + - name: x-correlator + in: header + description: UUID for the service execution flow that allows to correlate + requests and responses + required: true + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + description: Empty string accepted from external applications. + example: 550e8400-e29b-11d4-a716-446655440000 + - name: trace-indicator + in: header + description: Sequence of request numbers along the flow + required: true + style: simple + explode: false + schema: + pattern: "^([0-9]+)(\\.([0-9]+))*$" + type: string + description: Empty string accepted from external applications. + example: 1.3.1 + - name: customer-journey + in: header + description: Holds information supporting customer’s journey to which the + execution applies + required: true + style: simple + explode: false + schema: + type: string + example: Unknown value + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/v1_inquirebasicauthapprovals_body' + required: true + responses: + "204": + description: Informed about where to inquire for approval of BasicAuth requests + headers: + x-correlator: + description: UUID for the service execution flow that allows to correlate + requests and responses. Its value must be identical at the response + compared with its corresponding request + style: simple + explode: false + schema: + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting the total\ + \ elapsed time for the execution, including all the additional processing\ + \ needed to retrieve the data from the backend service. Expressed\ + \ in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + backend-time: + description: "Value written by the service provider, reporting the elapsed\ + \ time for data retrieval from the backend (service invocation, database\ + \ access…). Expressed in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 850 + life-cycle-state: + description: | + 'Life cycle state of the consumed service find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bm-005/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + style: simple + explode: false + schema: + type: string + example: EXPERIMENTAL + enum: + - EXPERIMENTAL + - OPERATIONAL + - DEPRECATED + - OBSOLETE + - UNKNOWN + - NOT_YET_DEFINED + "400": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows to correlate + requests and responses. Its value must be identical at the response + compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting the total\ + \ elapsed time for the execution, including all the additional processing\ + \ needed to retrieve the data from the backend service. Expressed\ + \ in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "401": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows to correlate + requests and responses. Its value must be identical at the response + compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting the total\ + \ elapsed time for the execution, including all the additional processing\ + \ needed to retrieve the data from the backend service. Expressed\ + \ in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "403": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows to correlate + requests and responses. Its value must be identical at the response + compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting the total\ + \ elapsed time for the execution, including all the additional processing\ + \ needed to retrieve the data from the backend service. Expressed\ + \ in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "404": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows to correlate + requests and responses. Its value must be identical at the response + compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting the total\ + \ elapsed time for the execution, including all the additional processing\ + \ needed to retrieve the data from the backend service. Expressed\ + \ in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "500": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows to correlate + requests and responses. Its value must be identical at the response + compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting the total\ + \ elapsed time for the execution, including all the additional processing\ + \ needed to retrieve the data from the backend service. Expressed\ + \ in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + default: + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows to correlate + requests and responses. Its value must be identical at the response + compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting the total\ + \ elapsed time for the execution, including all the additional processing\ + \ needed to retrieve the data from the backend service. Expressed\ + \ in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + callbacks: + BasicAuthRequestCausesInquiryForAuthentication: url: - description: To be activated whenever an OaM request causes an FC port - being deleted post: parameters: - name: user @@ -18062,21 +22183,38 @@ paths: application/json: schema: required: - - fc-port-local-id - - fc-uuid + - Authorization + - application-name + - method + - operation-name + - release-number type: object properties: - fc-uuid: + Authorization: type: string - fc-port-local-id: + description: | + 'Authorization code from {$request.parameters#Authorization} of the BasicAuth request that initiates the inquiry for approval' + application-name: type: string - example: - fc-uuid: ro-2-0-1-op-fc-is-000 - fc-port-local-id: "202" + description: | + 'Own application name from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' + release-number: + type: string + description: | + 'Own application release number from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' + operation-name: + type: string + description: | + 'Path (could be service, could be OaM path) that has been addressed by the BasicAuth request in path parameter values to be replaced by original parameter names in curly brackets filters to be removed from {$request.path} of the BasicAuth request that initiates the inquiry for approval' + method: + type: string + description: | + 'Method applied in the BasicAuth request from {$request.method} of the BasicAuth request that initiates the inquiry for approval' required: true responses: - "204": - description: FC port will be deleted + "200": + description: Response on inquiry for approval of a BasicAuth request + provided headers: x-correlator: description: UUID for the service execution flow that allows @@ -18120,6 +22258,18 @@ paths: - OBSOLETE - UNKNOWN - NOT_YET_DEFINED + content: + application/json: + schema: + type: object + properties: + basic-auth-request-is-approved: + type: boolean + description: "If true, BasicAuth request can be executed" + reason-of-objection: + type: string + description: | + 'if AUTHORIZATION_CODE_UNKNOWN BasicAuth request to be aborted and 401 to be sent else BasicAuth request to be aborted and 403 to be sent' "400": description: Response in case of errored service requests headers: @@ -18143,15 +22293,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -18171,23 +22312,14 @@ paths: example: 550e8400-e29b-11d4-a716-446655440000 exec-time: description: "Value written by the service provider, reporting\ - \ the total elapsed time for the execution, including all\ - \ the additional processing needed to retrieve the data from\ - \ the backend service. Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" + \ the total elapsed time for the execution, including all\ + \ the additional processing needed to retrieve the data from\ + \ the backend service. Expressed in milliseconds" style: simple explode: false schema: type: integer - example: 850 + example: 1100 content: application/json: schema: @@ -18215,15 +22347,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -18251,15 +22374,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -18287,15 +22401,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -18323,15 +22428,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting\ - \ the elapsed time for data retrieval from the backend (service\ - \ invocation, database access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -18339,12 +22435,12 @@ paths: security: - apiKeyAuth: [] x-swagger-router-controller: BasicServices - /v1/update-operation-key: + /v1/dispose-remainders-of-deregistered-application: post: tags: - BasicServices - summary: Allows updating operation key at a server or client - operationId: updateOperationKey + summary: Removes application from configuration and application data + operationId: disposeRemaindersOfDeregisteredApplication parameters: - name: user in: header @@ -18404,11 +22500,11 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/v1_updateoperationkey_body' + $ref: '#/components/schemas/v1_disposeremaindersofderegisteredapplication_body' required: true responses: "204": - description: Operation key has been updated + description: Application removed from configuration and application data headers: x-correlator: description: UUID for the service execution flow that allows to correlate @@ -18440,7 +22536,7 @@ paths: example: 850 life-cycle-state: description: | - 'Life cycle state of the consumed service find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-s-bm-010/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + 'Life cycle state of the consumed service find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bm-013/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' style: simple explode: false schema: @@ -18476,15 +22572,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -18512,15 +22599,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -18548,15 +22626,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -18584,15 +22653,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -18620,15 +22680,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -18656,15 +22707,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -18672,13 +22714,12 @@ paths: security: - apiKeyAuth: [] x-swagger-router-controller: BasicServices - /v1/update-operation-client: + /v1/inform-about-preceding-release: post: tags: - BasicServices - summary: Allows updating operation clients to redirect to backward compatible - services - operationId: updateOperationClient + summary: Provides name and number of the preceding release + operationId: informAboutPrecedingRelease parameters: - name: user in: header @@ -18734,15 +22775,9 @@ paths: schema: type: string example: Unknown value - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/v1_updateoperationclient_body' - required: true responses: - "204": - description: "Operation clients will be updated, if existing" + "200": + description: Name and number of the preceding release provided headers: x-correlator: description: UUID for the service execution flow that allows to correlate @@ -18774,7 +22809,7 @@ paths: example: 850 life-cycle-state: description: | - 'Life cycle state of the consumed service find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-s-bm-011/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + 'Life cycle state of the consumed service from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bm-014/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' style: simple explode: false schema: @@ -18787,6 +22822,10 @@ paths: - OBSOLETE - UNKNOWN - NOT_YET_DEFINED + content: + application/json: + schema: + $ref: '#/components/schemas/inline_response_200_3' "400": description: Response in case of errored service requests headers: @@ -18810,20 +22849,65 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "404": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows to correlate + requests and responses. Its value must be identical at the response + compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting the total\ + \ elapsed time for the execution, including all the additional processing\ + \ needed to retrieve the data from the backend service. Expressed\ + \ in milliseconds" style: simple explode: false schema: type: integer - example: 850 + example: 1100 content: application/json: schema: $ref: '#/components/schemas/errorDescription' - "401": + "500": + description: Response in case of errored service requests + headers: + x-correlator: + description: UUID for the service execution flow that allows to correlate + requests and responses. Its value must be identical at the response + compared with its corresponding request + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting the total\ + \ elapsed time for the execution, including all the additional processing\ + \ needed to retrieve the data from the backend service. Expressed\ + \ in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + default: description: Response in case of errored service requests headers: x-correlator: @@ -18833,7 +22917,102 @@ paths: style: simple explode: false schema: - pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + example: 550e8400-e29b-11d4-a716-446655440000 + exec-time: + description: "Value written by the service provider, reporting the total\ + \ elapsed time for the execution, including all the additional processing\ + \ needed to retrieve the data from the backend service. Expressed\ + \ in milliseconds" + style: simple + explode: false + schema: + type: integer + example: 1100 + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + x-swagger-router-controller: BasicServices + /v1/update-client-of-subsequent-release: + post: + tags: + - BasicServices + summary: Configures Http and TcpClient of the NewRelease + operationId: UpdateClientOfSubsequentRelease + parameters: + - name: user + in: header + description: User identifier from the system starting the service call + required: true + style: simple + explode: false + schema: + type: string + example: User Name + - name: originator + in: header + description: | + 'Identification for the system consuming the API, as defined in + [/core-model-1-4:control-construct/logical-termination-point={uuid}/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + required: true + style: simple + explode: false + schema: + minLength: 3 + type: string + example: Resolver + - name: x-correlator + in: header + description: UUID for the service execution flow that allows to correlate + requests and responses + required: true + style: simple + explode: false + schema: + pattern: "^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$" + type: string + description: Empty string accepted from external applications. + example: 550e8400-e29b-11d4-a716-446655440000 + - name: trace-indicator + in: header + description: Sequence of request numbers along the flow + required: true + style: simple + explode: false + schema: + pattern: "^([0-9]+)(\\.([0-9]+))*$" + type: string + description: Empty string accepted from external applications. + example: 1.3.1 + - name: customer-journey + in: header + description: Holds information supporting customer’s journey to which the + execution applies + required: true + style: simple + explode: false + schema: + type: string + example: Unknown value + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/v1_updateclientofsubsequentrelease_body' + required: true + responses: + "200": + description: Operations required for transferring data provided + headers: + x-correlator: + description: UUID for the service execution flow that allows to correlate + requests and responses. Its value must be identical at the response + compared with its corresponding request + style: simple + explode: false + schema: type: string example: 550e8400-e29b-11d4-a716-446655440000 exec-time: @@ -18855,11 +23034,26 @@ paths: schema: type: integer example: 850 + life-cycle-state: + description: | + 'Life cycle state of the consumed service from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bm-015/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + style: simple + explode: false + schema: + type: string + example: EXPERIMENTAL + enum: + - EXPERIMENTAL + - OPERATIONAL + - DEPRECATED + - OBSOLETE + - UNKNOWN + - NOT_YET_DEFINED content: application/json: schema: - $ref: '#/components/schemas/errorDescription' - "403": + $ref: '#/components/schemas/inline_response_200_4' + "400": description: Response in case of errored service requests headers: x-correlator: @@ -18882,15 +23076,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -18918,15 +23103,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -18954,15 +23130,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -18990,15 +23157,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -19101,7 +23259,7 @@ paths: example: 850 life-cycle-state: description: | - 'Life cycle state of the consumed service find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-s-bs-000/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + 'Life cycle state of the consumed service from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bs-000/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' style: simple explode: false schema: @@ -19141,15 +23299,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -19177,15 +23326,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -19213,15 +23353,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -19249,15 +23380,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -19285,15 +23407,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -19394,7 +23507,7 @@ paths: example: 850 life-cycle-state: description: | - 'Life cycle state of the consumed service find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-s-bs-001/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + 'Life cycle state of the consumed service from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bs-001/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' style: simple explode: false schema: @@ -19410,7 +23523,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/inline_response_200_2' + $ref: '#/components/schemas/inline_response_200_5' "400": description: Response in case of errored service requests headers: @@ -19434,15 +23547,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -19470,15 +23574,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -19506,15 +23601,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -19542,15 +23628,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -19651,7 +23728,7 @@ paths: example: 850 life-cycle-state: description: | - 'Life cycle state of the consumed service find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-s-bs-002/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + 'Life cycle state of the consumed service from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bs-002/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' style: simple explode: false schema: @@ -19691,15 +23768,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -19727,15 +23795,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -19763,15 +23822,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -19799,15 +23849,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -19908,7 +23949,7 @@ paths: example: 850 life-cycle-state: description: | - 'Life cycle state of the consumed service find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-s-bs-003/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + 'Life cycle state of the consumed service from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bs-003/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' style: simple explode: false schema: @@ -19927,11 +23968,11 @@ paths: uniqueItems: true type: array example: - - release-number: 1.0.0 + - release-number: 34.5.6 release-date: 20.11.2010 changes: Initial version. items: - $ref: '#/components/schemas/inline_response_200_3' + $ref: '#/components/schemas/inline_response_200_6' x-content-type: application/json "400": description: Response in case of errored service requests @@ -19956,15 +23997,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -19992,15 +24024,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -20028,15 +24051,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -20064,15 +24078,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -20173,7 +24178,7 @@ paths: example: 850 life-cycle-state: description: | - 'Life cycle state of the consumed service find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-s-bs-004/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + 'Life cycle state of the consumed service from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bs-004/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' style: simple explode: false schema: @@ -20213,15 +24218,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -20249,15 +24245,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -20285,15 +24272,6 @@ paths: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -20320,16 +24298,7 @@ paths: explode: false schema: type: integer - example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 + example: 1100 content: application/json: schema: @@ -20347,7 +24316,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/inline_response_200_4' + $ref: '#/components/schemas/inline_response_200_7' "400": description: Response in case of errored OaM requests content: @@ -20402,17 +24371,17 @@ paths: schema: pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-([a-z]+)-p-([0-9,a-f]{3})$" type: string - example: ro-2-0-1-action-p-000 + example: xy-15-3-2-action-p-000 responses: "200": description: Instance of Profile provided content: application/json: schema: - $ref: '#/components/schemas/inline_response_200_5' + $ref: '#/components/schemas/inline_response_200_8' example: core-model-1-4:profile: - uuid: ro-2-0-1-action-p-000 + uuid: xy-15-3-2-action-p-000 profile-name: action-profile-1-0:PROFILE_NAME_TYPE_ACTION_PROFILE action-profile-1-0:action-profile-pac: action-profile-capability: @@ -20423,7 +24392,7 @@ paths: unit: Unit at input field display-in-new-browser-window: false action-profile-configuration: - consequent-operation-reference: /core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-s-bs-002/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name + consequent-operation-reference: /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bs-002/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name "400": description: Response in case of errored OaM requests content: @@ -20478,14 +24447,14 @@ paths: schema: pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-action-p-([0-9]{3})$" type: string - example: ro-2-0-1-action-p-000 + example: xy-15-3-2-action-p-000 responses: "200": description: Operation name provided content: application/json: schema: - $ref: '#/components/schemas/inline_response_200_6' + $ref: '#/components/schemas/inline_response_200_9' "400": description: Response in case of errored OaM requests content: @@ -20540,14 +24509,14 @@ paths: schema: pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-action-p-([0-9]{3})$" type: string - example: ro-2-0-1-action-p-000 + example: xy-15-3-2-action-p-000 responses: "200": description: Label provided content: application/json: schema: - $ref: '#/components/schemas/inline_response_200_7' + $ref: '#/components/schemas/inline_response_200_10' "400": description: Response in case of errored OaM requests content: @@ -20602,14 +24571,14 @@ paths: schema: pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-action-p-([0-9]{3})$" type: string - example: ro-2-0-1-action-p-000 + example: xy-15-3-2-action-p-000 responses: "200": description: Input values provided content: application/json: schema: - $ref: '#/components/schemas/inline_response_200_8' + $ref: '#/components/schemas/inline_response_200_11' "400": description: Response in case of errored OaM requests content: @@ -20662,261 +24631,12 @@ paths: style: simple explode: false schema: - pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-action-p-([0-9]{3})$" - type: string - example: ro-2-0-1-action-p-000 - responses: - "200": - description: Whether to be presented in new browser window provided - content: - application/json: - schema: - $ref: '#/components/schemas/inline_response_200_9' - "400": - description: Response in case of errored OaM requests - content: - application/json: - schema: - $ref: '#/components/schemas/errorDescription' - "401": - description: Response in case of errored OaM requests - content: - application/json: - schema: - $ref: '#/components/schemas/errorDescription' - "403": - description: Response in case of errored OaM requests - content: - application/json: - schema: - $ref: '#/components/schemas/errorDescription' - "404": - description: Response in case of errored OaM requests - content: - application/json: - schema: - $ref: '#/components/schemas/errorDescription' - "500": - description: Response in case of errored OaM requests - content: - application/json: - schema: - $ref: '#/components/schemas/errorDescription' - default: - description: Response in case of errored OaM requests - content: - application/json: - schema: - $ref: '#/components/schemas/errorDescription' - security: - - basicAuth: [] - x-swagger-router-controller: ActionProfile - ? /core-model-1-4:control-construct/profile-collection/profile={uuid}/action-profile-1-0:action-profile-pac/action-profile-configuration/consequent-operation-reference - : get: - tags: - - ActionProfile - summary: Returns the reference on the consequent operation - operationId: getActionProfileConsequentOperationReference - parameters: - - name: uuid - in: path - required: true - style: simple - explode: false - schema: - pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-action-p-([0-9]{3})$" - type: string - example: ro-2-0-1-action-p-000 - responses: - "200": - description: Reference on the consequent operation provided - content: - application/json: - schema: - $ref: '#/components/schemas/inline_response_200_10' - "400": - description: Response in case of errored OaM requests - content: - application/json: - schema: - $ref: '#/components/schemas/errorDescription' - "401": - description: Response in case of errored OaM requests - content: - application/json: - schema: - $ref: '#/components/schemas/errorDescription' - "403": - description: Response in case of errored OaM requests - content: - application/json: - schema: - $ref: '#/components/schemas/errorDescription' - "404": - description: Response in case of errored OaM requests - content: - application/json: - schema: - $ref: '#/components/schemas/errorDescription' - "500": - description: Response in case of errored OaM requests - content: - application/json: - schema: - $ref: '#/components/schemas/errorDescription' - default: - description: Response in case of errored OaM requests - content: - application/json: - schema: - $ref: '#/components/schemas/errorDescription' - security: - - basicAuth: [] - x-swagger-router-controller: ActionProfile - put: - tags: - - ActionProfile - summary: Configures the reference on the consequent operation - operationId: putActionProfileConsequentOperationReference - parameters: - - name: uuid - in: path - required: true - style: simple - explode: false - schema: - pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-action-p-([0-9]{3})$" - type: string - example: ro-2-0-1-action-p-000 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/actionprofileconfiguration_consequentoperationreference_body' - required: true - responses: - "204": - description: Reference on the consequent operation configured - "400": - description: Response in case of errored OaM requests - content: - application/json: - schema: - $ref: '#/components/schemas/errorDescription' - "401": - description: Response in case of errored OaM requests - content: - application/json: - schema: - $ref: '#/components/schemas/errorDescription' - "403": - description: Response in case of errored OaM requests - content: - application/json: - schema: - $ref: '#/components/schemas/errorDescription' - "404": - description: Response in case of errored OaM requests - content: - application/json: - schema: - $ref: '#/components/schemas/errorDescription' - "500": - description: Response in case of errored OaM requests - content: - application/json: - schema: - $ref: '#/components/schemas/errorDescription' - default: - description: Response in case of errored OaM requests - content: - application/json: - schema: - $ref: '#/components/schemas/errorDescription' - security: - - basicAuth: [] - x-swagger-router-controller: ActionProfile - ? /core-model-1-4:control-construct/profile-collection/profile={uuid}/response-profile-1-0:response-profile-pac/response-profile-capability/operation-name - : get: - tags: - - GenericResponseProfile - summary: Returns the name of the Operation - operationId: getGenericResponseProfileOperationName - parameters: - - name: uuid - in: path - required: true - style: simple - explode: false - schema: - pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-response-p-([0-9]{3})$" - type: string - example: ro-2-0-1-response-p-000 - responses: - "200": - description: Operation name provided - content: - application/json: - schema: - $ref: '#/components/schemas/inline_response_200_11' - "400": - description: Response in case of errored OaM requests - content: - application/json: - schema: - $ref: '#/components/schemas/errorDescription' - "401": - description: Response in case of errored OaM requests - content: - application/json: - schema: - $ref: '#/components/schemas/errorDescription' - "403": - description: Response in case of errored OaM requests - content: - application/json: - schema: - $ref: '#/components/schemas/errorDescription' - "404": - description: Response in case of errored OaM requests - content: - application/json: - schema: - $ref: '#/components/schemas/errorDescription' - "500": - description: Response in case of errored OaM requests - content: - application/json: - schema: - $ref: '#/components/schemas/errorDescription' - default: - description: Response in case of errored OaM requests - content: - application/json: - schema: - $ref: '#/components/schemas/errorDescription' - security: - - basicAuth: [] - x-swagger-router-controller: GenericResponseProfile - ? /core-model-1-4:control-construct/profile-collection/profile={uuid}/response-profile-1-0:response-profile-pac/response-profile-capability/field-name - : get: - tags: - - GenericResponseProfile - summary: Returns the name of the Field - operationId: getGenericResponseProfileFieldName - parameters: - - name: uuid - in: path - required: true - style: simple - explode: false - schema: - pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-response-p-([0-9]{3})$" + pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-action-p-([0-9]{3})$" type: string - example: ro-2-0-1-response-p-000 + example: xy-15-3-2-action-p-000 responses: "200": - description: Field name provided + description: Whether to be presented in new browser window provided content: application/json: schema: @@ -20959,13 +24679,13 @@ paths: $ref: '#/components/schemas/errorDescription' security: - basicAuth: [] - x-swagger-router-controller: GenericResponseProfile - ? /core-model-1-4:control-construct/profile-collection/profile={uuid}/response-profile-1-0:response-profile-pac/response-profile-capability/description + x-swagger-router-controller: ActionProfile + ? /core-model-1-4:control-construct/profile-collection/profile={uuid}/action-profile-1-0:action-profile-pac/action-profile-configuration/consequent-operation-reference : get: tags: - - GenericResponseProfile - summary: Returns the Description of the Field - operationId: getGenericResponseProfileDescription + - ActionProfile + summary: Returns the reference on the consequent operation + operationId: getActionProfileConsequentOperationReference parameters: - name: uuid in: path @@ -20973,12 +24693,12 @@ paths: style: simple explode: false schema: - pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-response-p-([0-9]{3})$" + pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-action-p-([0-9]{3})$" type: string - example: ro-2-0-1-response-p-000 + example: xy-15-3-2-action-p-000 responses: "200": - description: Description of the field provided + description: Reference on the consequent operation provided content: application/json: schema: @@ -21021,13 +24741,12 @@ paths: $ref: '#/components/schemas/errorDescription' security: - basicAuth: [] - x-swagger-router-controller: GenericResponseProfile - ? /core-model-1-4:control-construct/profile-collection/profile={uuid}/response-profile-1-0:response-profile-pac/response-profile-capability/datatype - : get: + x-swagger-router-controller: ActionProfile + put: tags: - - GenericResponseProfile - summary: Returns the Datatype of the Field - operationId: getGenericResponseProfileDatatype + - ActionProfile + summary: Configures the reference on the consequent operation + operationId: putActionProfileConsequentOperationReference parameters: - name: uuid in: path @@ -21035,16 +24754,18 @@ paths: style: simple explode: false schema: - pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-response-p-([0-9]{3})$" + pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-action-p-([0-9]{3})$" type: string - example: ro-2-0-1-response-p-000 + example: xy-15-3-2-action-p-000 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/actionprofileconfiguration_consequentoperationreference_body' + required: true responses: - "200": - description: Datatype of the field provided - content: - application/json: - schema: - $ref: '#/components/schemas/inline_response_200_14' + "204": + description: Reference on the consequent operation configured "400": description: Response in case of errored OaM requests content: @@ -21083,13 +24804,13 @@ paths: $ref: '#/components/schemas/errorDescription' security: - basicAuth: [] - x-swagger-router-controller: GenericResponseProfile - ? /core-model-1-4:control-construct/profile-collection/profile={uuid}/response-profile-1-0:response-profile-pac/response-profile-configuration/value + x-swagger-router-controller: ActionProfile + ? /core-model-1-4:control-construct/profile-collection/profile={uuid}/response-profile-1-0:response-profile-pac/response-profile-capability/operation-name : get: tags: - GenericResponseProfile - summary: Returns the Value of the Field - operationId: getGenericResponseProfileValue + summary: Returns the name of the Operation + operationId: getGenericResponseProfileOperationName parameters: - name: uuid in: path @@ -21099,14 +24820,14 @@ paths: schema: pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-response-p-([0-9]{3})$" type: string - example: ro-2-0-1-response-p-000 + example: xy-15-3-2-response-p-000 responses: "200": - description: Value of the field provided + description: Operation name provided content: application/json: schema: - $ref: '#/components/schemas/inline_response_200_15' + $ref: '#/components/schemas/inline_response_200_14' "400": description: Response in case of errored OaM requests content: @@ -21146,11 +24867,12 @@ paths: security: - basicAuth: [] x-swagger-router-controller: GenericResponseProfile - put: + ? /core-model-1-4:control-construct/profile-collection/profile={uuid}/response-profile-1-0:response-profile-pac/response-profile-capability/field-name + : get: tags: - GenericResponseProfile - summary: Configures the Value of the Field - operationId: putGenericResponseProfileValue + summary: Returns the name of the Field + operationId: getGenericResponseProfileFieldName parameters: - name: uuid in: path @@ -21160,19 +24882,14 @@ paths: schema: pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-response-p-([0-9]{3})$" type: string - example: ro-2-0-1-response-p-000 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/responseprofileconfiguration_value_body' - example: - response-profile-1-0:value: - value-reference: /core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name - required: true + example: xy-15-3-2-response-p-000 responses: - "204": - description: Request path configured + "200": + description: Field name provided + content: + application/json: + schema: + $ref: '#/components/schemas/inline_response_200_15' "400": description: Response in case of errored OaM requests content: @@ -21212,12 +24929,12 @@ paths: security: - basicAuth: [] x-swagger-router-controller: GenericResponseProfile - ? /core-model-1-4:control-construct/profile-collection/profile={uuid}/file-profile-1-0:file-profile-pac/file-profile-capability/file-identifier + ? /core-model-1-4:control-construct/profile-collection/profile={uuid}/response-profile-1-0:response-profile-pac/response-profile-capability/description : get: tags: - - FileProfile - summary: Returns the identifier of the file - operationId: getFileProfileFileIdentifier + - GenericResponseProfile + summary: Returns the Description of the Field + operationId: getGenericResponseProfileDescription parameters: - name: uuid in: path @@ -21225,12 +24942,12 @@ paths: style: simple explode: false schema: - pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-file-p-([0-9]{3})$" + pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-response-p-([0-9]{3})$" type: string - example: ro-2-0-1-file-p-000 + example: xy-15-3-2-response-p-000 responses: "200": - description: File identifier provided + description: Description of the field provided content: application/json: schema: @@ -21273,13 +24990,13 @@ paths: $ref: '#/components/schemas/errorDescription' security: - basicAuth: [] - x-swagger-router-controller: FileProfile - ? /core-model-1-4:control-construct/profile-collection/profile={uuid}/file-profile-1-0:file-profile-pac/file-profile-capability/file-description + x-swagger-router-controller: GenericResponseProfile + ? /core-model-1-4:control-construct/profile-collection/profile={uuid}/response-profile-1-0:response-profile-pac/response-profile-capability/datatype : get: tags: - - FileProfile - summary: Returns the description of the file - operationId: getFileProfileFileDescription + - GenericResponseProfile + summary: Returns the Datatype of the Field + operationId: getGenericResponseProfileDatatype parameters: - name: uuid in: path @@ -21287,12 +25004,12 @@ paths: style: simple explode: false schema: - pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-file-p-([0-9]{3})$" + pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-response-p-([0-9]{3})$" type: string - example: ro-2-0-1-file-p-000 + example: xy-15-3-2-response-p-000 responses: "200": - description: File description provided + description: Datatype of the field provided content: application/json: schema: @@ -21335,13 +25052,13 @@ paths: $ref: '#/components/schemas/errorDescription' security: - basicAuth: [] - x-swagger-router-controller: FileProfile - ? /core-model-1-4:control-construct/profile-collection/profile={uuid}/file-profile-1-0:file-profile-pac/file-profile-configuration/file-path + x-swagger-router-controller: GenericResponseProfile + ? /core-model-1-4:control-construct/profile-collection/profile={uuid}/response-profile-1-0:response-profile-pac/response-profile-configuration/value : get: tags: - - FileProfile - summary: Returns the path of the file - operationId: getFileProfileFilePath + - GenericResponseProfile + summary: Returns the Value of the Field + operationId: getGenericResponseProfileValue parameters: - name: uuid in: path @@ -21349,12 +25066,12 @@ paths: style: simple explode: false schema: - pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-file-p-([0-9]{3})$" + pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-response-p-([0-9]{3})$" type: string - example: ro-2-0-1-file-p-000 + example: xy-15-3-2-response-p-000 responses: "200": - description: File path provided + description: Value of the field provided content: application/json: schema: @@ -21397,12 +25114,12 @@ paths: $ref: '#/components/schemas/errorDescription' security: - basicAuth: [] - x-swagger-router-controller: FileProfile + x-swagger-router-controller: GenericResponseProfile put: tags: - - FileProfile - summary: Configures path of the file - operationId: putFileProfileFilePath + - GenericResponseProfile + summary: Configures the Value of the Field + operationId: putGenericResponseProfileValue parameters: - name: uuid in: path @@ -21410,18 +25127,21 @@ paths: style: simple explode: false schema: - pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-file-p-([0-9]{3})$" + pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-response-p-([0-9]{3})$" type: string - example: ro-2-0-1-file-p-000 + example: xy-15-3-2-response-p-000 requestBody: content: application/json: schema: - $ref: '#/components/schemas/fileprofileconfiguration_filepath_body' + $ref: '#/components/schemas/responseprofileconfiguration_value_body' + example: + response-profile-1-0:value: + value-reference: /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name required: true responses: "204": - description: File path configured + description: Request path configured "400": description: Response in case of errored OaM requests content: @@ -21460,13 +25180,13 @@ paths: $ref: '#/components/schemas/errorDescription' security: - basicAuth: [] - x-swagger-router-controller: FileProfile - ? /core-model-1-4:control-construct/profile-collection/profile={uuid}/file-profile-1-0:file-profile-pac/file-profile-configuration/user-name + x-swagger-router-controller: GenericResponseProfile + ? /core-model-1-4:control-construct/profile-collection/profile={uuid}/file-profile-1-0:file-profile-pac/file-profile-capability/file-identifier : get: tags: - FileProfile - summary: Returns the user name for acccessing the file - operationId: getFileProfileUserName + summary: Returns the identifier of the file + operationId: getFileProfileFileIdentifier parameters: - name: uuid in: path @@ -21476,10 +25196,10 @@ paths: schema: pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-file-p-([0-9]{3})$" type: string - example: ro-2-0-1-file-p-000 + example: xy-15-3-2-file-p-000 responses: "200": - description: User name provided + description: File identifier provided content: application/json: schema: @@ -21523,11 +25243,12 @@ paths: security: - basicAuth: [] x-swagger-router-controller: FileProfile - put: + ? /core-model-1-4:control-construct/profile-collection/profile={uuid}/file-profile-1-0:file-profile-pac/file-profile-capability/file-description + : get: tags: - FileProfile - summary: Configures the user name for acccessing the file - operationId: putFileProfileUserName + summary: Returns the description of the file + operationId: getFileProfileFileDescription parameters: - name: uuid in: path @@ -21537,16 +25258,14 @@ paths: schema: pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-file-p-([0-9]{3})$" type: string - example: ro-2-0-1-file-p-000 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/fileprofileconfiguration_username_body' - required: true + example: xy-15-3-2-file-p-000 responses: - "204": - description: User name configured + "200": + description: File description provided + content: + application/json: + schema: + $ref: '#/components/schemas/inline_response_200_20' "400": description: Response in case of errored OaM requests content: @@ -21586,12 +25305,12 @@ paths: security: - basicAuth: [] x-swagger-router-controller: FileProfile - ? /core-model-1-4:control-construct/profile-collection/profile={uuid}/file-profile-1-0:file-profile-pac/file-profile-configuration/password + ? /core-model-1-4:control-construct/profile-collection/profile={uuid}/file-profile-1-0:file-profile-pac/file-profile-configuration/file-name : get: tags: - FileProfile - summary: Returns the password for acccessing the file - operationId: getFileProfilePassword + summary: Returns the name of the file + operationId: getFileProfileFileName parameters: - name: uuid in: path @@ -21601,14 +25320,14 @@ paths: schema: pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-file-p-([0-9]{3})$" type: string - example: ro-2-0-1-file-p-000 + example: xy-15-3-2-file-p-000 responses: "200": - description: Password provided + description: File name provided content: application/json: schema: - $ref: '#/components/schemas/inline_response_200_20' + $ref: '#/components/schemas/inline_response_200_21' "400": description: Response in case of errored OaM requests content: @@ -21651,8 +25370,8 @@ paths: put: tags: - FileProfile - summary: Configures the password for acccessing the file - operationId: putFileProfilePassword + summary: Configures name of the file + operationId: putFileProfileFileName parameters: - name: uuid in: path @@ -21662,16 +25381,16 @@ paths: schema: pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-file-p-([0-9]{3})$" type: string - example: ro-2-0-1-file-p-000 + example: xy-15-3-2-file-p-000 requestBody: content: application/json: schema: - $ref: '#/components/schemas/fileprofileconfiguration_password_body' + $ref: '#/components/schemas/fileprofileconfiguration_filename_body' required: true responses: "204": - description: Password configured + description: File name configured "400": description: Response in case of errored OaM requests content: @@ -21726,14 +25445,14 @@ paths: schema: pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-file-p-([0-9]{3})$" type: string - example: ro-2-0-1-file-p-000 + example: xy-15-3-2-file-p-000 responses: "200": description: Operation provided content: application/json: schema: - $ref: '#/components/schemas/inline_response_200_21' + $ref: '#/components/schemas/inline_response_200_22' "400": description: Response in case of errored OaM requests content: @@ -21787,7 +25506,7 @@ paths: schema: pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-file-p-([0-9]{3})$" type: string - example: ro-2-0-1-file-p-000 + example: xy-15-3-2-file-p-000 requestBody: content: application/json: @@ -21851,14 +25570,76 @@ paths: schema: pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-integer-p-([0-9]{3})$" type: string - example: ro-2-0-1-integer-p-000 + example: xy-15-3-2-integer-p-000 responses: "200": description: Integer name provided content: application/json: schema: - $ref: '#/components/schemas/inline_response_200_22' + $ref: '#/components/schemas/inline_response_200_23' + "400": + description: Response in case of errored OaM requests + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "401": + description: Response in case of errored OaM requests + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "403": + description: Response in case of errored OaM requests + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "404": + description: Response in case of errored OaM requests + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + "500": + description: Response in case of errored OaM requests + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + default: + description: Response in case of errored OaM requests + content: + application/json: + schema: + $ref: '#/components/schemas/errorDescription' + security: + - basicAuth: [] + x-swagger-router-controller: IntegerProfile + ? /core-model-1-4:control-construct/profile-collection/profile={uuid}/integer-profile-1-0:integer-profile-pac/integer-profile-capability/purpose + : get: + tags: + - IntegerProfile + summary: Returns the purpose of the Integer + operationId: getIntegerProfilePurpose + parameters: + - name: uuid + in: path + required: true + style: simple + explode: false + schema: + pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-integer-p-([0-9]{3})$" + type: string + example: yz-34-4-4-integer-p-000 + responses: + "200": + description: Integer purpose provided + content: + application/json: + schema: + $ref: '#/components/schemas/inline_response_200_24' "400": description: Response in case of errored OaM requests content: @@ -21913,14 +25694,14 @@ paths: schema: pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-integer-p-([0-9]{3})$" type: string - example: ro-2-0-1-integer-p-000 + example: xy-15-3-2-integer-p-000 responses: "200": description: Integer unit provided content: application/json: schema: - $ref: '#/components/schemas/inline_response_200_23' + $ref: '#/components/schemas/inline_response_200_25' "400": description: Response in case of errored OaM requests content: @@ -21975,14 +25756,14 @@ paths: schema: pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-integer-p-([0-9]{3})$" type: string - example: ro-2-0-1-integer-p-000 + example: xy-15-3-2-integer-p-000 responses: "200": description: Minimum value provided content: application/json: schema: - $ref: '#/components/schemas/inline_response_200_24' + $ref: '#/components/schemas/inline_response_200_26' "400": description: Response in case of errored OaM requests content: @@ -22037,14 +25818,14 @@ paths: schema: pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-integer-p-([0-9]{3})$" type: string - example: ro-2-0-1-integer-p-000 + example: xy-15-3-2-integer-p-000 responses: "200": description: Maximum value provided content: application/json: schema: - $ref: '#/components/schemas/inline_response_200_25' + $ref: '#/components/schemas/inline_response_200_27' "400": description: Response in case of errored OaM requests content: @@ -22099,14 +25880,14 @@ paths: schema: pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-integer-p-([0-9]{3})$" type: string - example: ro-2-0-1-integer-p-000 + example: xy-15-3-2-integer-p-000 responses: "200": description: Integer value provided content: application/json: schema: - $ref: '#/components/schemas/inline_response_200_26' + $ref: '#/components/schemas/inline_response_200_28' "400": description: Response in case of errored OaM requests content: @@ -22160,7 +25941,7 @@ paths: schema: pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-integer-p-([0-9]{3})$" type: string - example: ro-2-0-1-integer-p-000 + example: xy-15-3-2-integer-p-000 requestBody: content: application/json: @@ -22224,14 +26005,14 @@ paths: schema: pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-op-s-([bi][ms])-([0-9]{3})$" type: string - example: ro-2-0-1-op-s-bm-000 + example: xy-15-3-2-op-s-bm-000 responses: "200": description: Operation name provided content: application/json: schema: - $ref: '#/components/schemas/inline_response_200_27' + $ref: '#/components/schemas/inline_response_200_29' "400": description: Response in case of errored OaM requests content: @@ -22286,14 +26067,14 @@ paths: schema: pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-op-s-([bi][ms])-([0-9]{3})$" type: string - example: ro-2-0-1-op-s-bm-000 + example: xy-15-3-2-op-s-bm-000 responses: "200": description: Life cycle state provided content: application/json: schema: - $ref: '#/components/schemas/inline_response_200_28' + $ref: '#/components/schemas/inline_response_200_30' "400": description: Response in case of errored OaM requests content: @@ -22347,7 +26128,7 @@ paths: schema: pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-op-s-([bi][ms])-([0-9]{3})$" type: string - example: ro-2-0-1-op-s-bm-000 + example: xy-15-3-2-op-s-bm-000 requestBody: content: application/json: @@ -22411,14 +26192,14 @@ paths: schema: pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-op-s-([bi][ms])-([0-9]{3})$" type: string - example: ro-2-0-1-op-s-bm-000 + example: xy-15-3-2-op-s-bm-000 responses: "200": description: Operation key provided content: application/json: schema: - $ref: '#/components/schemas/inline_response_200_29' + $ref: '#/components/schemas/inline_response_200_31' "400": description: Response in case of errored OaM requests content: @@ -22472,7 +26253,7 @@ paths: schema: pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-op-s-([bi][ms])-([0-9]{3})$" type: string - example: ro-2-0-1-op-s-bm-000 + example: xy-15-3-2-op-s-bm-000 requestBody: content: application/json: @@ -22536,14 +26317,14 @@ paths: schema: pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-http-s-000" type: string - example: ro-2-0-1-http-s-000 + example: xy-15-3-2-http-s-000 responses: "200": description: Application name provided content: application/json: schema: - $ref: '#/components/schemas/inline_response_200_30' + $ref: '#/components/schemas/inline_response_200_32' "400": description: Response in case of errored OaM requests content: @@ -22598,14 +26379,14 @@ paths: schema: pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-http-s-000" type: string - example: ro-2-0-1-http-s-000 + example: xy-15-3-2-http-s-000 responses: "200": description: Release number provided content: application/json: schema: - $ref: '#/components/schemas/inline_response_200_31' + $ref: '#/components/schemas/inline_response_200_33' "400": description: Response in case of errored OaM requests content: @@ -22660,14 +26441,14 @@ paths: schema: pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-http-s-000" type: string - example: ro-2-0-1-http-s-000 + example: xy-15-3-2-http-s-000 responses: "200": description: Application purpose provided content: application/json: schema: - $ref: '#/components/schemas/inline_response_200_32' + $ref: '#/components/schemas/inline_response_200_34' "400": description: Response in case of errored OaM requests content: @@ -22722,14 +26503,14 @@ paths: schema: pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-http-s-000" type: string - example: ro-2-0-1-http-s-000 + example: xy-15-3-2-http-s-000 responses: "200": description: Update period provided content: application/json: schema: - $ref: '#/components/schemas/inline_response_200_33' + $ref: '#/components/schemas/inline_response_200_35' "400": description: Response in case of errored OaM requests content: @@ -22784,14 +26565,14 @@ paths: schema: pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-http-s-000" type: string - example: ro-2-0-1-http-s-000 + example: xy-15-3-2-http-s-000 responses: "200": description: Owner name provided content: application/json: schema: - $ref: '#/components/schemas/inline_response_200_34' + $ref: '#/components/schemas/inline_response_200_36' "400": description: Response in case of errored OaM requests content: @@ -22846,14 +26627,14 @@ paths: schema: pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-http-s-000" type: string - example: ro-2-0-1-http-s-000 + example: xy-15-3-2-http-s-000 responses: "200": description: Email address of owner provided content: application/json: schema: - $ref: '#/components/schemas/inline_response_200_35' + $ref: '#/components/schemas/inline_response_200_37' "400": description: Response in case of errored OaM requests content: @@ -22908,14 +26689,14 @@ paths: schema: pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-http-s-000" type: string - example: ro-2-0-1-http-s-000 + example: xy-15-3-2-http-s-000 responses: "200": description: List of releases provided content: application/json: schema: - $ref: '#/components/schemas/inline_response_200_36' + $ref: '#/components/schemas/inline_response_200_38' "400": description: Response in case of errored OaM requests content: @@ -22968,16 +26749,16 @@ paths: style: simple explode: false schema: - pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-tcp-s-([0-9]{3})$" + pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-tcp-s-000$" type: string - example: ro-2-0-1-tcp-s-000 + example: xy-15-3-2-tcp-s-000 responses: "200": description: Description provided content: application/json: schema: - $ref: '#/components/schemas/inline_response_200_37' + $ref: '#/components/schemas/inline_response_200_39' "400": description: Response in case of errored OaM requests content: @@ -23029,9 +26810,9 @@ paths: style: simple explode: false schema: - pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-tcp-s-([0-9]{3})$" + pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-tcp-s-000$" type: string - example: ro-2-0-1-tcp-s-000 + example: xy-15-3-2-tcp-s-000 requestBody: content: application/json: @@ -23093,16 +26874,16 @@ paths: style: simple explode: false schema: - pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-tcp-s-([0-9]{3})$" + pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-tcp-s-000$" type: string - example: ro-2-0-1-tcp-s-000 + example: xy-15-3-2-tcp-s-000 responses: "200": description: Local protocol provided content: application/json: schema: - $ref: '#/components/schemas/inline_response_200_38' + $ref: '#/components/schemas/inline_response_200_40' "400": description: Response in case of errored OaM requests content: @@ -23154,9 +26935,9 @@ paths: style: simple explode: false schema: - pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-tcp-s-([0-9]{3})$" + pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-tcp-s-000$" type: string - example: ro-2-0-1-tcp-s-000 + example: xy-15-3-2-tcp-s-000 requestBody: content: application/json: @@ -23218,16 +26999,16 @@ paths: style: simple explode: false schema: - pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-tcp-s-([0-9]{3})$" + pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-tcp-s-000$" type: string - example: ro-2-0-1-tcp-s-000 + example: xy-15-3-2-tcp-s-000 responses: "200": description: Local address provided content: application/json: schema: - $ref: '#/components/schemas/inline_response_200_39' + $ref: '#/components/schemas/inline_response_200_41' "400": description: Response in case of errored OaM requests content: @@ -23279,9 +27060,9 @@ paths: style: simple explode: false schema: - pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-tcp-s-([0-9]{3})$" + pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-tcp-s-000$" type: string - example: ro-2-0-1-tcp-s-000 + example: xy-15-3-2-tcp-s-000 requestBody: content: application/json: @@ -23343,16 +27124,16 @@ paths: style: simple explode: false schema: - pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-tcp-s-([0-9]{3})$" + pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-tcp-s-000$" type: string - example: ro-2-0-1-tcp-s-000 + example: xy-15-3-2-tcp-s-000 responses: "200": description: Local port provided content: application/json: schema: - $ref: '#/components/schemas/inline_response_200_40' + $ref: '#/components/schemas/inline_response_200_42' "400": description: Response in case of errored OaM requests content: @@ -23404,9 +27185,9 @@ paths: style: simple explode: false schema: - pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-tcp-s-([0-9]{3})$" + pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-tcp-s-000$" type: string - example: ro-2-0-1-tcp-s-000 + example: xy-15-3-2-tcp-s-000 requestBody: content: application/json: @@ -23470,14 +27251,14 @@ paths: schema: pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-op-c-([bi][ms])-([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{3})$" type: string - example: ro-2-0-1-op-c-bm-or-1-0-0-000 + example: xy-15-3-2-op-c-bm-or-1-0-0-000 responses: "200": description: Operation name provided content: application/json: schema: - $ref: '#/components/schemas/inline_response_200_41' + $ref: '#/components/schemas/inline_response_200_43' "400": description: Response in case of errored OaM requests content: @@ -23531,7 +27312,7 @@ paths: schema: pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-op-c-([bi][ms])-([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{3})$" type: string - example: ro-2-0-1-op-c-bm-or-1-0-0-000 + example: xy-15-3-2-op-c-bm-or-1-0-0-000 requestBody: content: application/json: @@ -23595,14 +27376,14 @@ paths: schema: pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-op-c-([bi][ms])-([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{3})$" type: string - example: ro-2-0-1-op-c-bm-or-1-0-0-000 + example: xy-15-3-2-op-c-bm-or-1-0-0-000 responses: "200": description: Operation key provided content: application/json: schema: - $ref: '#/components/schemas/inline_response_200_42' + $ref: '#/components/schemas/inline_response_200_44' "400": description: Response in case of errored OaM requests content: @@ -23656,7 +27437,7 @@ paths: schema: pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-op-c-([bi][ms])-([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{3})$" type: string - example: ro-2-0-1-op-c-bm-or-1-0-0-000 + example: xy-15-3-2-op-c-bm-or-1-0-0-000 requestBody: content: application/json: @@ -23720,14 +27501,14 @@ paths: schema: pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-op-c-([bi][ms])-([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{3})$" type: string - example: ro-2-0-1-op-c-bm-or-1-0-0-000 + example: xy-15-3-2-op-c-bm-or-1-0-0-000 responses: "200": description: Operational state provided content: application/json: schema: - $ref: '#/components/schemas/inline_response_200_43' + $ref: '#/components/schemas/inline_response_200_45' "400": description: Response in case of errored OaM requests content: @@ -23782,14 +27563,14 @@ paths: schema: pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-op-c-([bi][ms])-([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{3})$" type: string - example: ro-2-0-1-op-c-bm-or-1-0-0-000 + example: xy-15-3-2-op-c-bm-or-1-0-0-000 responses: "200": description: Life cycle state provided content: application/json: schema: - $ref: '#/components/schemas/inline_response_200_44' + $ref: '#/components/schemas/inline_response_200_46' "400": description: Response in case of errored OaM requests content: @@ -23844,14 +27625,14 @@ paths: schema: pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-op-c-bs-([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{3})$" type: string - example: ro-2-0-1-op-c-bs-eatl-2-0-1-000 + example: xy-15-3-2-op-c-bs-yz-34-4-3-000 responses: "200": description: Detailed logging configuration provided content: application/json: schema: - $ref: '#/components/schemas/inline_response_200_45' + $ref: '#/components/schemas/inline_response_200_47' "400": description: Response in case of errored OaM requests content: @@ -23905,7 +27686,7 @@ paths: schema: pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-op-c-bs-([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{3})$" type: string - example: ro-2-0-1-op-c-bs-eatl-2-0-1-000 + example: xy-15-3-2-op-c-bs-yz-34-4-3-000 requestBody: content: application/json: @@ -23969,14 +27750,14 @@ paths: schema: pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-http-c-([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-000$" type: string - example: ro-2-0-1-http-c-or-1-0-0-000 + example: xy-15-3-2-http-c-or-1-0-0-000 responses: "200": description: Addressed application provided content: application/json: schema: - $ref: '#/components/schemas/inline_response_200_46' + $ref: '#/components/schemas/inline_response_200_48' "400": description: Response in case of errored OaM requests content: @@ -24030,7 +27811,7 @@ paths: schema: pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-http-c-([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-000$" type: string - example: ro-2-0-1-http-c-or-1-0-0-000 + example: xy-15-3-2-http-c-or-1-0-0-000 requestBody: content: application/json: @@ -24094,14 +27875,14 @@ paths: schema: pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-http-c-([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-000$" type: string - example: ro-2-0-1-http-c-or-1-0-0-000 + example: xy-15-3-2-http-c-or-1-0-0-000 responses: "200": description: Release number provided content: application/json: schema: - $ref: '#/components/schemas/inline_response_200_47' + $ref: '#/components/schemas/inline_response_200_49' "400": description: Response in case of errored OaM requests content: @@ -24155,7 +27936,7 @@ paths: schema: pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-http-c-([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-000$" type: string - example: ro-2-0-1-http-c-or-1-0-0-000 + example: xy-15-3-2-http-c-or-1-0-0-000 requestBody: content: application/json: @@ -24219,14 +28000,14 @@ paths: schema: pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-tcp-c-([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-000$" type: string - example: ro-2-0-1-tcp-c-or-1-0-0-000 + example: xy-15-3-2-tcp-c-or-1-0-0-000 responses: "200": description: Protocol for addressing remote side provided content: application/json: schema: - $ref: '#/components/schemas/inline_response_200_48' + $ref: '#/components/schemas/inline_response_200_50' "400": description: Response in case of errored OaM requests content: @@ -24280,7 +28061,7 @@ paths: schema: pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-tcp-c-([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-000$" type: string - example: ro-2-0-1-tcp-c-or-1-0-0-000 + example: xy-15-3-2-tcp-c-or-1-0-0-000 requestBody: content: application/json: @@ -24344,14 +28125,14 @@ paths: schema: pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-tcp-c-([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-000$" type: string - example: ro-2-0-1-tcp-c-or-1-0-0-000 + example: xy-15-3-2-tcp-c-or-1-0-0-000 responses: "200": description: Remote address provided content: application/json: schema: - $ref: '#/components/schemas/inline_response_200_49' + $ref: '#/components/schemas/inline_response_200_51' "400": description: Response in case of errored OaM requests content: @@ -24405,7 +28186,7 @@ paths: schema: pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-tcp-c-([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-000$" type: string - example: ro-2-0-1-tcp-c-or-1-0-0-000 + example: xy-15-3-2-tcp-c-or-1-0-0-000 requestBody: content: application/json: @@ -24469,14 +28250,14 @@ paths: schema: pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-tcp-c-([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-000$" type: string - example: ro-2-0-1-tcp-c-or-1-0-0-000 + example: xy-15-3-2-tcp-c-or-1-0-0-000 responses: "200": description: Remote port provided content: application/json: schema: - $ref: '#/components/schemas/inline_response_200_50' + $ref: '#/components/schemas/inline_response_200_52' "400": description: Response in case of errored OaM requests content: @@ -24530,7 +28311,7 @@ paths: schema: pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-tcp-c-([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-000$" type: string - example: ro-2-0-1-tcp-c-or-1-0-0-000 + example: xy-15-3-2-tcp-c-or-1-0-0-000 requestBody: content: application/json: @@ -24908,7 +28689,7 @@ components: pattern: "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$" type: string description: | - 'IPv4 address of application that shall be target of the handover process update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-nr-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + 'IPv4 address of application that shall be target of the handover process update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-nr-2-1-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' additionalProperties: false v1bequeathyourdataanddie_newapplicationaddress: maxProperties: 1 @@ -24921,7 +28702,7 @@ components: pattern: "^([a-z0-9]+(-[a-z0-9]+)*\\.)+[a-z]{2,}$" type: string description: | - 'Domain name of application that shall be target of the handover process update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-nr-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + 'Domain name of application that shall be target of the handover process update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-nr-2-1-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' additionalProperties: false v1_bequeathyourdataanddie_body: required: @@ -24935,16 +28716,16 @@ components: new-application-name: type: string description: | - 'Name of application that shall be target of the handover process update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-nr-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + 'Name of application that shall be target of the handover process update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-nr-2-1-0-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' new-application-release: pattern: "^([0-9]{1,2})\\.([0-9]{1,2})\\.([0-9]{1,2})$" type: string description: | - 'Release of application that shall be target of the handover process update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-nr-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + 'Release of application that shall be target of the handover process update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-nr-2-1-0-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' new-application-protocol: type: string description: | - 'Protocol to be used for addressing the application that shall be target of the handover process update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-nr-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + 'Protocol to be used for addressing the application that shall be target of the handover process update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-nr-2-1-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' enum: - HTTP - HTTPS @@ -24955,15 +28736,15 @@ components: minimum: 0 type: integer description: | - 'Port of application that shall be target of the handover process update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-nr-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + 'Port of application that shall be target of the handover process update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-nr-2-1-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' example: - new-application-name: RegistryOffice - new-application-release: 2.0.1 + new-application-name: NewApplicationName + new-application-release: 32.6.3 new-application-protocol: HTTP new-application-address: ip-address: - ipv-4-address: 1.1.3.8 - new-application-port: 3008 + ipv-4-address: 1.1.3.1 + new-application-port: 3001 v1registerapplication_address_ipaddress: minProperties: 1 type: object @@ -24972,7 +28753,7 @@ components: pattern: "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$" type: string description: | - 'IPv4 address of application that wants to register update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + 'IPv4 address of application that wants to register update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' additionalProperties: false v1registerapplication_address: maxProperties: 1 @@ -24985,7 +28766,7 @@ components: pattern: "^([a-z0-9]+(-[a-z0-9]+)*\\.)+[a-z]{2,}$" type: string description: | - 'Domain name of application that wants to register update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + 'Domain name of application that wants to register update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' additionalProperties: false v1registerapplication_tcpserverlist: required: @@ -24997,7 +28778,7 @@ components: protocol: type: string description: | - 'Protocol to be used for addressing the application that wants to register find or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + 'Protocol to be used for addressing the application that wants to register find or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' enum: - HTTP - HTTPS @@ -25008,7 +28789,7 @@ components: minimum: 0 type: integer description: | - 'TCP port of application that wants to register update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + 'TCP port of application that wants to register update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' v1_registerapplication_body: required: - application-name @@ -25023,12 +28804,12 @@ components: pattern: "^([A-Z][a-z0-9]+){2,}$" type: string description: | - 'Name of application that wants to register find or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + 'Name of application that wants to register find, but not at OldRelease or NewRelease, or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' release-number: pattern: "^([0-9]{1,2})\\.([0-9]{1,2})\\.([0-9]{1,2})$" type: string description: | - 'Release of application that wants to register find or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + 'Release of application that wants to register find, but not at OldRelease or NewRelease, or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' preceding-application-name: minLength: 3 type: string @@ -25043,17 +28824,17 @@ components: minLength: 6 type: string description: | - 'Name of service for initiating embedding process update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-c-im-*-*-*-*-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + 'Name of service for initiating embedding process update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' client-update-operation: minLength: 6 type: string description: | - 'Name of service for broadcasting server changes update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-c-im-*-*-*-*-001/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + 'Name of service for broadcasting server changes update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-001/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' operation-client-update-operation: minLength: 6 type: string description: | - 'Name of service for broadcasting replacements of operations by backward compatible substitutes update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-c-im-*-*-*-*-002/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + 'Name of service for broadcasting replacements of operations by backward compatible substitutes update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-002/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' tcp-server-list: minItems: 1 type: array @@ -25071,13 +28852,130 @@ components: - protocol: HTTP address: ip-address: - ipv-4-address: 1.1.3.9 + ipv-4-address: 127.0.0.1 port: 3009 - protocol: HTTPS address: ip-address: ipv-4-address: 1.2.3.9 port: 3209 + v2_registerapplication_body: + oneOf: + - required: + - application-name + - client-update-operation + - embedding-operation + - operation-client-update-operation + - release-number + - tcp-server-list + type: object + properties: + application-name: + pattern: "^([A-Z][a-z0-9]+){2,}$" + type: string + description: | + 'Name of application that wants to register find, but not at OldRelease or NewRelease, or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + release-number: + pattern: "^([0-9]{1,2})\\.([0-9]{1,2})\\.([0-9]{1,2})$" + type: string + description: | + 'Release of application that wants to register find, but not at OldRelease or NewRelease, or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + preceding-application-name: + minLength: 3 + type: string + description: | + 'If provided, the new application will address /v1/bequeath-your-data-and-die at the preceding application after receiving /v1/embed-yourself update or create in LOADfile' + preceding-release-number: + pattern: "^([0-9]{1,2})\\.([0-9]{1,2})\\.([0-9]{1,2})$" + type: string + description: | + 'If provided, the new application will address /v1/bequeath-your-data-and-die at the preceding release after receiving /v1/embed-yourself update or create in LOADfile' + embedding-operation: + minLength: 6 + type: string + description: | + 'Name of service for initiating embedding process update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + client-update-operation: + minLength: 6 + type: string + description: | + 'Name of service for broadcasting server changes update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-001/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + operation-client-update-operation: + minLength: 6 + type: string + description: | + 'Name of service for broadcasting replacements of operations by backward compatible substitutes update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-002/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + tcp-server-list: + minItems: 1 + type: array + items: + $ref: '#/components/schemas/v1registerapplication_tcpserverlist' + description: "old-multiple-TcpServers-format, to be deleted with RO v3.0.0" + - required: + - application-name + - client-update-operation + - dispose-remainders-operation + - embedding-operation + - operation-client-update-operation + - preceding-release-operation + - release-number + - subsequent-release-operation + - tcp-server + type: object + properties: + application-name: + pattern: "^([A-Z][a-z0-9]+){2,}$" + type: string + description: | + 'Name of application that wants to register find, but not at OldRelease or NewRelease, or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + release-number: + pattern: "^([0-9]{1,2})\\.([0-9]{1,2})\\.([0-9]{1,2})$" + type: string + description: | + 'Release of application that wants to register find, but not at OldRelease or NewRelease, or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + preceding-application-name: + minLength: 3 + type: string + description: | + 'If provided, the new application will address /v1/bequeath-your-data-and-die at the preceding application after receiving /v1/embed-yourself update or create in LOADfile' + preceding-release-number: + pattern: "^([0-9]{1,2})\\.([0-9]{1,2})\\.([0-9]{1,2})$" + type: string + description: | + 'If provided, the new application will address /v1/bequeath-your-data-and-die at the preceding release after receiving /v1/embed-yourself update or create in LOADfile' + embedding-operation: + minLength: 6 + type: string + description: | + 'Name of service for initiating embedding process update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + client-update-operation: + minLength: 6 + type: string + description: | + 'Name of service for broadcasting server changes update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-001/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + operation-client-update-operation: + minLength: 6 + type: string + description: | + 'Name of service for broadcasting replacements of operations by backward compatible substitutes update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-002/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + dispose-remainders-operation: + minLength: 6 + type: string + description: | + 'Name of service for broadcasting de-registered applications that are to be removed from the application layer update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-006/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + preceding-release-operation: + minLength: 6 + type: string + description: | + 'Name of service for retrieving information about the preceding release of a new application update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-008/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + subsequent-release-operation: + minLength: 6 + type: string + description: | + 'Name of service for configuring the newRelease at the existing application update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-009/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + tcp-server: + $ref: '#/components/schemas/v1registerapplication_tcpserverlist' + description: new-single-TcpServer-format v1_deregisterapplication_body: required: - application-name @@ -25087,44 +28985,80 @@ components: application-name: type: string description: | - 'Name of application that shall be removed from the register find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + 'Name of application that shall be removed from the register find, but not at OldRelease or NewRelease, in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' release-number: pattern: "^([0-9]{1,2})\\.([0-9]{1,2})\\.([0-9]{1,2})$" type: string description: | - 'Release of application that shall be removed from the register find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + 'Release of application that shall be removed from the register find, but not at OldRelease or NewRelease, in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' example: application-name: BadApplication release-number: 1.0.0 v1_regardupdatedapprovalstatus_body: + oneOf: + - required: + - application-name + - approval-status + - release-number + - response-receiver-operation + type: object + properties: + application-name: + type: string + description: Name of application with updated approval status + release-number: + pattern: "^([0-9]{1,2})\\.([0-9]{1,2})\\.([0-9]{1,2})$" + type: string + description: Release of application with updated approval status + approval-status: + type: string + description: Updated approval status + enum: + - REGISTERED + - APPROVED + - BARRED + - NOT_YET_DEFINED + response-receiver-operation: + minLength: 6 + type: string + description: | + 'Name of the operation that shall be addressed for documenting the embedding status update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-tar-2-0-1-007/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + description: requestBody according to v2.1 + - required: + - application-name + - approval-status + - release-number + type: object + properties: + application-name: + type: string + description: Name of application with updated approval status + release-number: + pattern: "^([0-9]{1,2})\\.([0-9]{1,2})\\.([0-9]{1,2})$" + type: string + description: Release of application with updated approval status + approval-status: + type: string + description: Updated approval status + enum: + - REGISTERED + - APPROVED + - BARRED + - NOT_YET_DEFINED + additionalProperties: false + description: requestBody according to v2.0; DEPRECATED; to be deleted with + RO v3.0.0 + inline_response_200: required: - - application-name - - approval-status - - release-number + - process-id type: object properties: - application-name: - type: string - description: | - 'Name of application with updated approval status if approval-status==APPROVED : /v1/notify-approvals::callbacks::ApprovalNotification::requestBody::application-name else : /v1/notify-withdrawn-approvals::callbacks::WithdrawnApprovalNotification::requestBody::application-name' - release-number: - pattern: "^([0-9]{1,2})\\.([0-9]{1,2})\\.([0-9]{1,2})$" - type: string - description: | - 'Release of application with updated approval status if approval-status==APPROVED : /v1/notify-approvals::callbacks::ApprovalNotification::requestBody::release-number else : /v1/notify-withdrawn-approvals::callbacks::WithdrawnApprovalNotification::requestBody::release-number' - approval-status: + process-id: type: string - description: | - 'Updated approval status, which activates callback on either /v1/notify-approvals or /v1/notify-withdrawn-approvals' - enum: - - REGISTERED - - APPROVED - - BARRED - - NOT_YET_DEFINED + description: Unique identifier of the request that allows associating the + responses that are sent to the receiver service at TAR example: - application-name: BadApplication - release-number: 1.0.0 - approval-status: BARRED + process-id: 2010-11-20T14:00:00+01:00P001 v1_listapplications_body: type: object properties: @@ -25145,7 +29079,7 @@ components: pattern: "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$" type: string description: | - 'IPv4 address of application that wants to receive information about new registrations update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-tar-1-0-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + 'IPv4 address of application that wants to receive information about new registrations update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-tar-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' additionalProperties: false v1inquireapplicationtypeapprovals_approvalapplicationaddress: maxProperties: 1 @@ -25158,7 +29092,7 @@ components: pattern: "^([a-z0-9]+(-[a-z0-9]+)*\\.)+[a-z]{2,}$" type: string description: | - 'Domain name of application that wants to receive information about new registrations update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-tar-1-0-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + 'Domain name of application that wants to receive information about new registrations update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-tar-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' additionalProperties: false v1_inquireapplicationtypeapprovals_body: required: @@ -25173,21 +29107,21 @@ components: approval-application: type: string description: | - 'Name of application that wants to receive information about new registrations find [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-tar-1-0-0-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + 'Name of application that wants to receive information about new registrations find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-tar-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' approval-application-release-number: pattern: "^([0-9]{1,2})\\.([0-9]{1,2})\\.([0-9]{1,2})$" type: string description: | - 'Release of application that wants to receive information about new registrations update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-tar-1-0-0-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + 'Release of application that wants to receive information about new registrations find or update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-tar-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' approval-operation: minLength: 6 type: string description: | - 'Operation that shall be addressed by information about new registrations update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-c-im-tar-1-0-0-003/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + 'Operation that shall be addressed by information about new registrations update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-tar-2-0-1-003/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' approval-application-protocol: type: string description: | - 'Protocol to be used for addressing the application that wants to receive information about new registrations update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-tar-1-0-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + 'Protocol to be used for addressing the application that wants to receive information about new registrations update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-tar-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' enum: - HTTP - HTTPS @@ -25198,16 +29132,16 @@ components: minimum: 0 type: integer description: | - 'TCP port of application that wants to receive information about new registrations update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-tar-1-0-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + 'TCP port of application that wants to receive information about new registrations update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-tar-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' example: approval-application: TypeApprovalRegister - approval-application-release-number: 1.0.0 + approval-application-release-number: 2.0.1 approval-operation: /v1/regard-application approval-application-protocol: HTTP approval-application-address: ip-address: - ipv-4-address: 1.1.3.2 - approval-application-port: 3002 + ipv-4-address: 127.0.0.1 + approval-application-port: 3009 v1notifyderegistrations_subscriberaddress_ipaddress: minProperties: 1 type: object @@ -25216,7 +29150,7 @@ components: pattern: "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$" type: string description: | - 'IPv4 address of application that wants to receive notifications about obsolete registrations update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + 'IPv4 address of application that wants to receive notifications about obsolete registrations update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' additionalProperties: false v1notifyderegistrations_subscriberaddress: maxProperties: 1 @@ -25229,7 +29163,7 @@ components: pattern: "^([a-z0-9]+(-[a-z0-9]+)*\\.)+[a-z]{2,}$" type: string description: "Domain name of application that wants to receive notifications\ - \ about obsolete registrations update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]" + \ about obsolete registrations update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]" additionalProperties: false v1_notifyderegistrations_body: required: @@ -25244,21 +29178,21 @@ components: subscriber-application: type: string description: | - 'Name of application that wants to receive notifications about obsolete registrations find or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + 'Name of application that wants to receive notifications about obsolete registrations find or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' subscriber-release-number: pattern: "^([0-9]{1,2})\\.([0-9]{1,2})\\.([0-9]{1,2})$" type: string description: | - 'Release of application that wants to receive notifications about obsolete registrations find or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + 'Release of application that wants to receive notifications about obsolete registrations find or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' subscriber-operation: minLength: 6 type: string description: | - 'Names of the operation that shall be addressed by notifications about obsolete registrations update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-c-im-*-*-*-*-004/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + 'Names of the operation that shall be addressed by notifications about obsolete registrations update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-004/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' subscriber-protocol: type: string description: | - 'Protocol to be used for addressing the application that wants to receive notifications about obsolete registrations update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + 'Protocol to be used for addressing the application that wants to receive notifications about obsolete registrations update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' enum: - HTTP - HTTPS @@ -25269,16 +29203,16 @@ components: minimum: 0 type: integer description: | - 'TCP port of application that wants to receive notifications about obsolete registrations update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + 'TCP port of application that wants to receive notifications about obsolete registrations update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' example: subscriber-application: TypeApprovalRegister - subscriber-release-number: 1.0.0 + subscriber-release-number: 2.0.1 subscriber-operation: /v1/disregard-application subscriber-protocol: HTTP subscriber-address: ip-address: - ipv-4-address: 1.1.3.2 - subscriber-port: 3002 + ipv-4-address: 127.0.0.1 + subscriber-port: 3009 v1notifyapprovals_subscriberaddress_ipaddress: minProperties: 1 type: object @@ -25287,7 +29221,7 @@ components: pattern: "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$" type: string description: | - 'IPv4 address of application that wants to receive notifications about new approvals update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + 'IPv4 address of application that wants to receive notifications about new approvals update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' additionalProperties: false v1notifyapprovals_subscriberaddress: maxProperties: 1 @@ -25300,7 +29234,7 @@ components: pattern: "^([a-z0-9]+(-[a-z0-9]+)*\\.)+[a-z]{2,}$" type: string description: | - 'Domain name of application that wants to receive notifications about new approvals update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + 'Domain name of application that wants to receive notifications about new approvals update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' additionalProperties: false v1_notifyapprovals_body: required: @@ -25315,21 +29249,21 @@ components: subscriber-application: type: string description: | - 'Name of application that wants to receive notifications about new approvals find or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + 'Name of application that wants to receive notifications about new approvals find or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' subscriber-release-number: pattern: "^([0-9]{1,2})\\.([0-9]{1,2})\\.([0-9]{1,2})$" type: string description: | - 'Release of application that wants to receive notifications about new approvals find or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + 'Release of application that wants to receive notifications about new approvals find or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' subscriber-operation: minLength: 6 type: string description: | - 'Names of the operation that shall be addressed by notifications about new approvals update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-c-im-*-*-*-*-003/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + 'Names of the operation that shall be addressed by notifications about new approvals update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-003/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' subscriber-protocol: type: string description: | - 'Protocol to be used for addressing the application that wants to receive notifications about new approvals update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + 'Protocol to be used for addressing the application that wants to receive notifications about new approvals update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' enum: - HTTP - HTTPS @@ -25340,16 +29274,16 @@ components: minimum: 0 type: integer description: | - 'TCP port of application that wants to receive notifications about new approvals update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + 'TCP port of application that wants to receive notifications about new approvals update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' example: subscriber-application: ExecutionAndTraceLog - subscriber-release-number: 1.0.0 + subscriber-release-number: 2.0.1 subscriber-operation: /v1/regard-application subscriber-protocol: HTTP subscriber-address: ip-address: - ipv-4-address: 1.1.3.3 - subscriber-port: 3003 + ipv-4-address: 127.0.0.1 + subscriber-port: 3010 v1notifywithdrawnapprovals_subscriberaddress_ipaddress: minProperties: 1 type: object @@ -25358,7 +29292,7 @@ components: pattern: "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$" type: string description: | - 'IPv4 address of application that wants to receive notifications about withdrawn approvals update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + 'IPv4 address of application that wants to receive notifications about withdrawn approvals update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' additionalProperties: false v1notifywithdrawnapprovals_subscriberaddress: maxProperties: 1 @@ -25371,7 +29305,7 @@ components: pattern: "^([a-z0-9]+(-[a-z0-9]+)*\\.)+[a-z]{2,}$" type: string description: | - 'Domain name of application that wants to receive notifications about withdrawn approvals update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + 'Domain name of application that wants to receive notifications about withdrawn approvals update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' additionalProperties: false v1_notifywithdrawnapprovals_body: required: @@ -25386,21 +29320,21 @@ components: subscriber-application: type: string description: | - 'Name of application that wants to receive notifications about withdrawn approvals find or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + 'Name of application that wants to receive notifications about withdrawn approvals find or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' subscriber-release-number: pattern: "^([0-9]{1,2})\\.([0-9]{1,2})\\.([0-9]{1,2})$" type: string description: | - 'Release of application that wants to receive notifications about withdrawn approvals find or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + 'Release of application that wants to receive notifications about withdrawn approvals find or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' subscriber-operation: minLength: 6 type: string description: | - 'Names of the operation that shall be addressed by notifications about withdrawn approvals update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-c-im-*-*-*-*-004/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + 'Names of the operation that shall be addressed by notifications about withdrawn approvals update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-004/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' subscriber-protocol: type: string description: | - 'Protocol to be used for addressing the application that wants to receive notifications about withdrawn approvals update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + 'Protocol to be used for addressing the application that wants to receive notifications about withdrawn approvals update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' enum: - HTTP - HTTPS @@ -25411,16 +29345,16 @@ components: minimum: 0 type: integer description: | - 'TCP port of application that wants to receive notifications about withdrawn approvals update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + 'TCP port of application that wants to receive notifications about withdrawn approvals update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' example: subscriber-application: AdministratorAdministration - subscriber-release-number: 1.0.0 + subscriber-release-number: 2.0.1 subscriber-operation: /v1/disregard-application subscriber-protocol: HTTP subscriber-address: ip-address: - ipv-4-address: 1.1.3.5 - subscriber-port: 3005 + ipv-4-address: 127.0.0.1 + subscriber-port: 3012 v1relayserverreplacement_futureaddress_ipaddress: minProperties: 1 type: object @@ -25458,21 +29392,21 @@ components: current-application-name: type: string description: | - 'Current name of the application that has updated connection data find [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name] and forward to [$/v1/regard-updated-approval-status.callbacks.ServerReplacementBroadcast.body#current-application-name]' + 'Current name of the application that has updated connection data find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name] and forward to [$/v1/regard-updated-approval-status.callbacks.ServerReplacementBroadcast.body#current-application-name]' current-release-number: pattern: "^([0-9]{1,2})\\.([0-9]{1,2})\\.([0-9]{1,2})$" type: string description: | - 'Current release number of the application that has updated connection data find [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number] and forward to [$/v1/regard-updated-approval-status.callbacks.ServerReplacementBroadcast.body#current-release-number]' + 'Current release number of the application that has updated connection data find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number] and forward to [$/v1/regard-updated-approval-status.callbacks.ServerReplacementBroadcast.body#current-release-number]' future-application-name: type: string description: | - 'Future name of the application that has updated connection data find [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name] and forward to [$/v1/regard-updated-approval-status.callbacks.ServerReplacementBroadcast.body#future-application-name]' + 'Future name of the application that has updated connection data find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name] and forward to [$/v1/regard-updated-approval-status.callbacks.ServerReplacementBroadcast.body#future-application-name]' future-release-number: pattern: "^([0-9]{1,2})\\.([0-9]{1,2})\\.([0-9]{1,2})$" type: string description: | - 'Future release number of the application that has updated connection data find [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number] forward to [$/v1/regard-updated-approval-status.callbacks.ServerReplacementBroadcast.body#future-release-number]' + 'Future release number of the application that has updated connection data find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number] forward to [$/v1/regard-updated-approval-status.callbacks.ServerReplacementBroadcast.body#future-release-number]' future-protocol: type: string description: | @@ -25490,14 +29424,14 @@ components: 'Future port of the application that has updated connection data forward to [$/v1/regard-updated-approval-status.callbacks.ServerReplacementBroadcast.body#future-port]' example: current-application-name: RegistryOffice - current-release-number: 1.0.0 + current-release-number: 2.0.1 future-application-name: RegistryOffice - future-release-number: 2.0.1 + future-release-number: 2.1.0 future-protocol: HTTP future-address: ip-address: - ipv-4-address: 1.1.3.8 - future-port: 3008 + ipv-4-address: 1.1.3.17 + future-port: 3017 v1_relayoperationupdate_body: required: - application-name @@ -25509,12 +29443,12 @@ components: application-name: type: string description: | - 'Name of the application that has an updated operation find [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name] and forward to [$/v1/regard-updated-approval-status.callbacks.OperationUpdateBroadcast.body#application-name]' + 'Name of the application that has an updated operation find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name] and forward to [$/v1/regard-updated-approval-status.callbacks.OperationUpdateBroadcast.body#application-name]' release-number: pattern: "^([0-9]{1,2})\\.([0-9]{1,2})\\.([0-9]{1,2})$" type: string description: | - 'Release number of the application that has an updated operation find [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number] and forward to [$/v1/regard-updated-approval-status.callbacks.OperationUpdateBroadcast.body#release-number]' + 'Release number of the application that has an updated operation find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number] and forward to [$/v1/regard-updated-approval-status.callbacks.OperationUpdateBroadcast.body#release-number]' old-operation-name: minLength: 6 type: string @@ -25527,10 +29461,10 @@ components: 'Name of the replacing operation forward to [$/v1/regard-updated-approval-status.callbacks.OperationUpdateBroadcast.body#new-operation-name]' example: application-name: RegistryOffice - release-number: 2.0.1 + release-number: 2.1.0 old-operation-name: /v1/register-application new-operation-name: /v2/register-application - v1registeryourself_registryofficeaddress_ipaddress: + v1notifyembeddingstatuschanges_subscriberaddress_ipaddress: minProperties: 1 type: object properties: @@ -25538,22 +29472,70 @@ components: pattern: "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$" type: string description: | - 'If body provided, IPv4 address of RegistryOffice application update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + 'IPv4 address of application that wants to receive notifications about changes of the embedding status update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' additionalProperties: false - v1registeryourself_registryofficeaddress: + v1notifyembeddingstatuschanges_subscriberaddress: maxProperties: 1 minProperties: 1 type: object properties: ip-address: - $ref: '#/components/schemas/v1registeryourself_registryofficeaddress_ipaddress' + $ref: '#/components/schemas/v1notifyembeddingstatuschanges_subscriberaddress_ipaddress' domain-name: pattern: "^([a-z0-9]+(-[a-z0-9]+)*\\.)+[a-z]{2,}$" type: string description: | - 'If body provided, domain name of RegistryOffice application update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + 'Domain name of application that wants to receive notifications about changes of the embedding status update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' additionalProperties: false - v1registeryourself_httpaddress_ipaddress: + v1_notifyembeddingstatuschanges_body: + required: + - subscriber-address + - subscriber-application + - subscriber-operation + - subscriber-port + - subscriber-protocol + - subscriber-release-number + type: object + properties: + subscriber-application: + type: string + description: | + 'Name of application that wants to receive notifications about changes of the embedding status find or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + subscriber-release-number: + pattern: "^([0-9]{1,2})\\.([0-9]{1,2})\\.([0-9]{1,2})$" + type: string + description: | + 'Release of application that wants to receive notifications about changes of the embedding status find or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + subscriber-operation: + minLength: 6 + type: string + description: | + 'Names of the operation that shall be addressed by notifications about changes of the embedding status update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-007/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + subscriber-protocol: + type: string + description: | + 'Protocol to be used for addressing the application that wants to receive notifications about changes of the embedding status update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + enum: + - HTTP + - HTTPS + subscriber-address: + $ref: '#/components/schemas/v1notifyembeddingstatuschanges_subscriberaddress' + subscriber-port: + maximum: 65535 + minimum: 0 + type: integer + description: | + 'TCP port of application that wants to receive notifications about changes of the embedding status update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + example: + subscriber-application: ApplicationWhichWantsToGetNotifiedAboutEmbeddingStatusChanges + subscriber-release-number: 1.0.0 + subscriber-operation: /v1/document-embedding-status + subscriber-protocol: HTTP + subscriber-address: + ip-address: + ipv-4-address: 1.1.3.0 + subscriber-port: 3000 + v1registeryourself_registryofficeaddress_ipaddress: minProperties: 1 type: object properties: @@ -25561,22 +29543,22 @@ components: pattern: "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$" type: string description: | - 'If provided, own IPv4 address, which has to be documented (but not be directly used for formulating the callback) into the TcpServer with find [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-protocol] == http update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/ipv-4-address]' + 'If body provided, IPv4 address of RegistryOffice application update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' additionalProperties: false - v1registeryourself_httpaddress: + v1registeryourself_registryofficeaddress: maxProperties: 1 minProperties: 1 type: object properties: ip-address: - $ref: '#/components/schemas/v1registeryourself_httpaddress_ipaddress' + $ref: '#/components/schemas/v1registeryourself_registryofficeaddress_ipaddress' domain-name: pattern: "^([a-z0-9]+(-[a-z0-9]+)*\\.)+[a-z]{2,}$" type: string description: | - 'If provided, own domain name, which has to be documented (but not be directly used for formulating the callback) into the TcpServer with find [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-protocol] == http update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/domain-name]' + 'If body provided, domain name of RegistryOffice application update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' additionalProperties: false - v1registeryourself_httpsaddress_ipaddress: + v1registeryourself_httpaddress_ipaddress: minProperties: 1 type: object properties: @@ -25584,20 +29566,20 @@ components: pattern: "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$" type: string description: | - 'If provided, own IPv4 address, which has to be documented (but not be directly used for formulating the callback) into the TcpServer with find [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-protocol] == https update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/ipv-4-address]' + 'If provided, own IPv4 address, which has to be documented (but not be directly used for formulating the callback) update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/ipv-4-address]' additionalProperties: false - v1registeryourself_httpsaddress: + v1registeryourself_httpaddress: maxProperties: 1 minProperties: 1 type: object properties: ip-address: - $ref: '#/components/schemas/v1registeryourself_httpsaddress_ipaddress' + $ref: '#/components/schemas/v1registeryourself_httpaddress_ipaddress' domain-name: pattern: "^([a-z0-9]+(-[a-z0-9]+)*\\.)+[a-z]{2,}$" type: string description: | - 'If provided, own domain name, which has to be documented (but not be directly used for formulating the callback) into the TcpServer with find [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-protocol] == https update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/domain-name]' + 'If provided, own domain name, which has to be documented (but not be directly used for formulating the callback) update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/domain-name]' additionalProperties: false v1_registeryourself_body: oneOf: @@ -25617,21 +29599,21 @@ components: minLength: 3 type: string description: | - 'If body provided, name of RegistryOffice application find [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-ro-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + 'If body provided, name of RegistryOffice application find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-ro-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' registry-office-application-release-number: pattern: "^([0-9]{1,2})\\.([0-9]{1,2})\\.([0-9]{1,2})$" type: string description: | - 'If body provided, release of RegistryOffice application update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-ro-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + 'If body provided, release of RegistryOffice application find or update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-ro-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' registration-operation: minLength: 6 type: string description: | - 'If body provided, operation for registering update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-c-bm-ro-2-0-1-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + 'If body provided, operation for registering update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bm-ro-2-0-1-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' registry-office-protocol: type: string description: | - 'If body provided, protocol for addressing the RegistryOffice application update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + 'If body provided, protocol for addressing the RegistryOffice application update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' enum: - HTTP - HTTPS @@ -25642,7 +29624,7 @@ components: minimum: 0 type: integer description: | - 'If body provided, port of RegistryOffice application update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + 'If body provided, port of RegistryOffice application update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' http-address: $ref: '#/components/schemas/v1registeryourself_httpaddress' http-port: @@ -25650,15 +29632,7 @@ components: minimum: 0 type: integer description: | - 'If provided, own TCP port, which has to be documented (but not be directly used for formulating the callback) into the TcpServer with find [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-protocol] == http update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-port]' - https-address: - $ref: '#/components/schemas/v1registeryourself_httpsaddress' - https-port: - maximum: 65535 - minimum: 0 - type: integer - description: | - 'If provided, own TCP port, which has to be documented (but not be directly used for formulating the callback) into the TcpServer with find [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-protocol] == https update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-port]' + 'If provided, own TCP port, which has to be documented (but not be directly used for formulating the callback) update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-port]' preceding-application-name: minLength: 3 type: string @@ -25678,7 +29652,7 @@ components: pattern: "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$" type: string description: | - 'IPv4 address of RegistryOffice application update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + 'IPv4 address of RegistryOffice application update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' additionalProperties: false v1embedyourself_registryofficeaddress: maxProperties: 1 @@ -25691,7 +29665,7 @@ components: pattern: "^([a-z0-9]+(-[a-z0-9]+)*\\.)+[a-z]{2,}$" type: string description: | - 'Domain name of RegistryOffice application update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + 'Domain name of RegistryOffice application update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' additionalProperties: false v1embedyourself_oldreleaseaddress_ipaddress: minProperties: 1 @@ -25701,7 +29675,7 @@ components: pattern: "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$" type: string description: | - 'IPv4 address of currently running old release of the same application update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-or-1-0-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + 'IPv4 address of currently running old release of the same application update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-or-1-0-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' additionalProperties: false v1embedyourself_oldreleaseaddress: maxProperties: 1 @@ -25714,14 +29688,11 @@ components: pattern: "^([a-z0-9]+(-[a-z0-9]+)*\\.)+[a-z]{2,}$" type: string description: | - 'Domain name of currently running old release of the same application update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-or-1-0-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + 'Domain name of currently running old release of the same application update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-or-1-0-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' additionalProperties: false v1_embedyourself_body: required: - deregistration-operation - - old-release-address - - old-release-port - - old-release-protocol - registry-office-address - registry-office-application - registry-office-application-release-number @@ -25734,31 +29705,31 @@ components: registry-office-application: type: string description: | - 'Name of RegistryOffice application find [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-ro-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + 'Name of RegistryOffice application find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-ro-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' registry-office-application-release-number: pattern: "^([0-9]{1,2})\\.([0-9]{1,2})\\.([0-9]{1,2})$" type: string description: | - 'Release of RegistryOffice application update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-ro-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + 'Release of RegistryOffice application find or update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-ro-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' relay-server-replacement-operation: minLength: 6 type: string description: | - 'Operation for requesting for broadcasting a new server address update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-c-bm-ro-2-0-1-001/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + 'Operation for requesting for broadcasting a new server address update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bm-ro-2-0-1-001/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' relay-operation-update-operation: minLength: 6 type: string description: | - 'Operation for requesting for broadcasting a backward compatible replacement of an operation update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-c-bm-ro-2-0-1-003/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + 'Operation for requesting for broadcasting a backward compatible replacement of an operation update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bm-ro-2-0-1-003/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' deregistration-operation: minLength: 6 type: string description: | - 'Operation for deregistering from the application layer update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-c-bm-ro-2-0-1-002/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + 'Operation for deregistering from the application layer update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bm-ro-2-0-1-002/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' registry-office-protocol: type: string description: | - 'Protocol for addressing RegistryOffice application update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + 'Protocol for addressing RegistryOffice application update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' enum: - HTTP - HTTPS @@ -25769,11 +29740,11 @@ components: minimum: 0 type: integer description: | - 'Port of RegistryOffice application update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + 'Port of RegistryOffice application update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' old-release-protocol: type: string description: | - 'Protocol for addressing the currently running old release of the same application update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-or-1-0-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + 'Protocol for addressing the currently running old release of the same application update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-or-1-0-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' enum: - HTTP - HTTPS @@ -25784,18 +29755,18 @@ components: minimum: 0 type: integer description: | - 'Port of currently running old release of the same application update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-or-1-0-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + 'Port of currently running old release of the same application update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-or-1-0-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' example: - registry-office-application: RegistryOffice - registry-office-application-release-number: 2.0.1 + registry-office-application: RegistrationApplication + registry-office-application-release-number: 43.2.5 relay-server-replacement-operation: /v1/relay-server-replacement relay-operation-update-operation: /v1/relay-operation-update deregistration-operation: /v1/deregister-application registry-office-protocol: HTTP registry-office-address: ip-address: - ipv-4-address: 1.1.3.8 - registry-office-port: 3008 + ipv-4-address: 1.1.3.1 + registry-office-port: 3001 old-release-protocol: HTTP old-release-address: ip-address: @@ -25809,7 +29780,7 @@ components: pattern: "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$" type: string description: | - 'IPv4 address of application that shall record the service requests update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-eatl-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + 'IPv4 address of application that shall record the service requests update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-eatl-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' additionalProperties: false v1redirectservicerequestinformation_servicelogaddress: maxProperties: 1 @@ -25822,7 +29793,7 @@ components: pattern: "^([a-z0-9]+(-[a-z0-9]+)*\\.)+[a-z]{2,}$" type: string description: | - 'Domain name of application that shall record the service requests update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-eatl-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + 'Domain name of application that shall record the service requests update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-eatl-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' additionalProperties: false v1_redirectservicerequestinformation_body: required: @@ -25837,21 +29808,21 @@ components: service-log-application: type: string description: | - 'Name of application that shall record the service requests find [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-eatl-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + 'Name of application that shall record the service requests find, but not at OldRelease or NewRelease, [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-eatl-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' service-log-application-release-number: pattern: "^([0-9]{1,2})\\.([0-9]{1,2})\\.([0-9]{1,2})$" type: string description: | - 'Release of application that shall record the service requests update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-eatl-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + 'Release of application that shall record the service requests find or update, but not at OldRelease or NewRelease, [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-eatl-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' service-log-operation: minLength: 6 type: string description: | - 'Operation for recording the service requests update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-c-bs-eatl-2-0-1-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + 'Operation for recording the service requests update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bs-eatl-2-0-1-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' service-log-protocol: type: string description: | - 'Protocol to be used for addressing the application that shall record the service requests update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-eatl-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + 'Protocol to be used for addressing the application that shall record the service requests update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-eatl-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' enum: - HTTP - HTTPS @@ -25862,16 +29833,16 @@ components: minimum: 0 type: integer description: | - 'Port of application that shall record the service requests update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-eatl-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + 'Port of application that shall record the service requests update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-eatl-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' example: - service-log-application: ExecutionAndTraceLog - service-log-application-release-number: 2.0.1 + service-log-application: LoggingApplication + service-log-application-release-number: 34.2.6 service-log-operation: /v1/record-service-request service-log-protocol: HTTP service-log-address: ip-address: - ipv-4-address: 1.1.3.10 - service-log-port: 3010 + ipv-4-address: 1.1.3.1 + service-log-port: 3001 v1redirectoamrequestinformation_oamlogaddress_ipaddress: minProperties: 1 type: object @@ -25880,7 +29851,7 @@ components: pattern: "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$" type: string description: | - 'IPv4 address of application that shall record the OaM requests update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-ol-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + 'IPv4 address of application that shall record the OaM requests update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ol-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' additionalProperties: false v1redirectoamrequestinformation_oamlogaddress: maxProperties: 1 @@ -25893,7 +29864,7 @@ components: pattern: "^([a-z0-9]+(-[a-z0-9]+)*\\.)+[a-z]{2,}$" type: string description: | - 'Domain name of application that shall record the OaM requests update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-ol-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + 'Domain name of application that shall record the OaM requests update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ol-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' additionalProperties: false v1_redirectoamrequestinformation_body: required: @@ -25908,21 +29879,21 @@ components: oam-log-application: type: string description: | - 'Name of application that shall record the OaM requests find [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-ol-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + 'Name of application that shall record the OaM requests find, but not at OldRelease or NewRelease, [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-ol-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' oam-log-application-release-number: pattern: "^([0-9]{1,2})\\.([0-9]{1,2})\\.([0-9]{1,2})$" type: string description: | - 'Release of application that shall record the OaM request update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-ol-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + 'Release of application that shall record the OaM request find or update, but not at OldRelease or NewRelease, [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-ol-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' oam-log-operation: minLength: 6 type: string description: | - 'Operation for recording the OaM requests update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-c-bs-ol-2-0-1-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + 'Operation for recording the OaM requests update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bs-ol-2-0-1-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' oam-log-protocol: type: string description: | - 'Protocol to be used for addressing the application that shall record the OaM requests update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-ol-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + 'Protocol to be used for addressing the application that shall record the OaM requests update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ol-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' enum: - HTTP - HTTPS @@ -25933,16 +29904,16 @@ components: minimum: 0 type: integer description: | - 'Port of application that shall record the OaM requests update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-ol-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + 'Port of application that shall record the OaM requests update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ol-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' example: - oam-log-application: OamLog - oam-log-application-release-number: 2.0.1 + oam-log-application: LoggingApplication + oam-log-application-release-number: 54.3.2 oam-log-operation: /v1/record-oam-request oam-log-protocol: HTTP oam-log-address: ip-address: - ipv-4-address: 1.1.3.11 - oam-log-port: 3011 + ipv-4-address: 1.1.3.1 + oam-log-port: 3001 v1_endsubscription_body: required: - subscriber-application @@ -25953,20 +29924,20 @@ components: subscriber-application: type: string description: | - 'Name of application that no longer wants to receive notifications find [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + 'Name of application that no longer wants to receive notifications find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' subscriber-release-number: pattern: "^([0-9]{1,2})\\.([0-9]{1,2})\\.([0-9]{1,2})$" type: string description: | - 'Release of application that no longer wants to receive notifications find [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + 'Release of application that no longer wants to receive notifications find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' subscription: minLength: 6 type: string description: | - 'Name of operation that had been addressed for starting getting notifications find [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-s-*/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' + 'Name of operation that had been addressed for starting getting notifications find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-*/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' example: subscriber-application: AlreadySubscribingApplication - subscriber-release-number: 1.0.0 + subscriber-release-number: 38.4.3 subscription: /v1/subscription-to-be-stopped v1inquireoamrequestapprovals_oamapprovaladdress_ipaddress: minProperties: 1 @@ -25976,7 +29947,7 @@ components: pattern: "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$" type: string description: | - 'IPv4 address of application that shall approve the OaM requests update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-aa-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + 'IPv4 address of application that shall approve the OaM requests update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-aa-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' additionalProperties: false v1inquireoamrequestapprovals_oamapprovaladdress: maxProperties: 1 @@ -25989,7 +29960,7 @@ components: pattern: "^([a-z0-9]+(-[a-z0-9]+)*\\.)+[a-z]{2,}$" type: string description: | - 'Domain name of application that shall approve the OaM requests update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-aa-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + 'Domain name of application that shall approve the OaM requests update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-aa-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' additionalProperties: false v1_inquireoamrequestapprovals_body: required: @@ -26004,21 +29975,21 @@ components: oam-approval-application: type: string description: | - 'Name of application that shall approve the OaM requests find [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-aa-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + 'Name of application that shall approve the OaM requests find, but not at OldRelease or NewRelease, [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-aa-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' oam-approval-application-release-number: pattern: "^([0-9]{1,2})\\.([0-9]{1,2})\\.([0-9]{1,2})$" type: string description: | - 'Release of application that shall approve the OaM requests update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-aa-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + 'Release of application that shall approve the OaM requests find or update, but not at OldRelease or NewRelease, [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-aa-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' oam-approval-operation: minLength: 6 type: string description: | - 'Operation for approving the OaM requests update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-c-bs-aa-2-0-1-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + 'Operation for approving the OaM requests update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bs-aa-2-0-1-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' oam-approval-protocol: type: string description: | - 'Protocol to be used for addressing the application that shall approve the OaM requests update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-aa-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + 'Protocol to be used for addressing the application that shall approve the OaM requests update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-aa-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' enum: - HTTP - HTTPS @@ -26029,16 +30000,16 @@ components: minimum: 0 type: integer description: | - 'Port of application that shall approve the OaM requests update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-aa-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + 'Port of application that shall approve the OaM requests update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-aa-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' example: - oam-approval-application: AdministratorAdministration - oam-approval-application-release-number: 2.0.1 - oam-approval-operation: /v1/approve-oam-request + oam-approval-application: AccessApprover + oam-approval-application-release-number: 34.3.3 + oam-approval-operation: /v1/approve-basic-auth-request oam-approval-protocol: HTTP oam-approval-address: ip-address: - ipv-4-address: 1.1.3.12 - oam-approval-port: 3012 + ipv-4-address: 1.1.3.1 + oam-approval-port: 3001 v1updateclient_futureaddress_ipaddress: minProperties: 1 type: object @@ -26047,7 +30018,7 @@ components: pattern: "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$" type: string description: | - 'Future IPv4 address of the application that has updated connection data update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + 'Future IPv4 address of the application that has updated connection data update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' additionalProperties: false v1updateclient_futureaddress: maxProperties: 1 @@ -26060,7 +30031,7 @@ components: pattern: "^([a-z0-9]+(-[a-z0-9]+)*\\.)+[a-z]{2,}$" type: string description: | - 'Future domain name of the application that has updated connection data update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + 'Future domain name of the application that has updated connection data update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' additionalProperties: false v1_updateclient_body: required: @@ -26076,25 +30047,25 @@ components: current-application-name: type: string description: | - 'Current name of the application that has updated connection data find [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + 'Current name of the application that has updated connection data find, but not at OldRelease or NewRelease, [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' current-release-number: pattern: "^([0-9]{1,2})\\.([0-9]{1,2})\\.([0-9]{1,2})$" type: string description: | - 'Current release number of the application that has updated connection data find [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + 'Current release number of the application that has updated connection data find, but not at OldRelease or NewRelease, [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' future-application-name: type: string description: | - 'Future name of the application that has updated connection data update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + 'Future name of the application that has updated connection data update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' future-release-number: pattern: "^([0-9]{1,2})\\.([0-9]{1,2})\\.([0-9]{1,2})$" type: string description: | - 'Future release number of the application that has updated connection data update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + 'Future release number of the application that has updated connection data update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' future-protocol: type: string description: | - 'Protocol to be used in future for addressing the application that has updated connection data update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + 'Protocol to be used in future for addressing the application that has updated connection data update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' enum: - HTTP - HTTPS @@ -26105,30 +30076,30 @@ components: minimum: 0 type: integer description: | - 'Future port of the application that has updated connection data update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + 'Future port of the application that has updated connection data update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' example: - current-application-name: RegistryOffice - current-release-number: 1.0.0 - future-application-name: RegistryOffice - future-release-number: 2.0.1 + current-application-name: CurrentApplicationName + current-release-number: 43.5.5 + future-application-name: FutureApplicationName + future-release-number: 43.5.6 future-protocol: HTTP future-address: ip-address: - ipv-4-address: 1.1.3.8 - future-port: 3008 - inline_response_200: + ipv-4-address: 1.1.3.1 + future-port: 3001 + inline_response_200_1: required: - core-model-1-4:control-construct type: object properties: core-model-1-4:control-construct: - $ref: '#/components/schemas/inline_response_200_coremodel14controlconstruct' + $ref: '#/components/schemas/inline_response_200_1_coremodel14controlconstruct' example: core-model-1-4:control-construct: forwarding-domain: - - uuid: ro-2-0-1-op-fd-000 + - uuid: xy-15-3-2-op-fd-000 forwarding-construct: - - uuid: ro-2-0-1-op-fc-bm-000 + - uuid: xy-15-3-2-op-fc-bm-000 name: - value-name: ForwardingKind value: core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET @@ -26137,11 +30108,11 @@ components: fc-port: - local-id: "000" port-direction: core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT - logical-termination-point: ro-2-0-1-op-s-bm-000 + logical-termination-point: xy-15-3-2-op-s-bm-000 - local-id: "100" port-direction: core-model-1-4:PORT_DIRECTION_TYPE_INPUT - logical-termination-point: ro-2-0-1-op-s-bm-000 - - uuid: ro-2-0-1-op-fc-bm-001 + logical-termination-point: xy-15-3-2-op-s-bm-000 + - uuid: xy-15-3-2-op-fc-bm-001 name: - value-name: ForwardingKind value: core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET @@ -26150,16 +30121,16 @@ components: fc-port: - local-id: "100" port-direction: core-model-1-4:PORT_DIRECTION_TYPE_INPUT - logical-termination-point: ro-2-0-1-op-s-bm-001 + logical-termination-point: xy-15-3-2-op-s-bm-001 - local-id: "200" port-direction: core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT - logical-termination-point: ro-2-0-1-op-c-bm-ro-2-0-1-000 + logical-termination-point: xy-15-3-2-op-c-bm-yz-34-4-4-000 logical-termination-point: - - uuid: ro-2-0-1-op-s-bm-000 + - uuid: xy-15-3-2-op-s-bm-000 ltp-direction: core-model-1-4:TERMINATION_DIRECTION_SOURCE client-ltp: [] server-ltp: - - ro-2-0-1-http-s-000 + - xy-15-3-2-http-s-000 layer-protocol: - local-id: "0" layer-protocol-name: operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER @@ -26168,18 +30139,18 @@ components: operation-name: /v1/register-yourself operation-server-interface-configuration: life-cycle-state: operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL - - uuid: ro-2-0-1-http-s-000 + - uuid: xy-15-3-2-http-s-000 ltp-direction: core-model-1-4:TERMINATION_DIRECTION_SOURCE client-ltp: - - ro-2-0-1-op-s-bm-000 + - xy-15-3-2-op-s-bm-000 server-ltp: [] layer-protocol: - local-id: "0" layer-protocol-name: http-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_HTTP_LAYER http-server-interface-1-0:http-server-interface-pac: http-server-interface-capability: - application-name: RegistryOffice - release-number: 2.0.1 + application-name: ApplicationName + release-number: 45.2.7 data-update-period: http-server-interface-1-0:DATA_UPDATE_PERIOD_TYPE_REAL_TIME uuid: uuid v1redirecttopologychangeinformation_topologyapplicationaddress_ipaddress: @@ -26190,7 +30161,7 @@ components: pattern: "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$" type: string description: | - 'IPv4 address of application that shall document the application layer topology update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + 'IPv4 address of application that shall document the application layer topology update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' additionalProperties: false v1redirecttopologychangeinformation_topologyapplicationaddress: maxProperties: 1 @@ -26203,7 +30174,7 @@ components: pattern: "^([a-z0-9]+(-[a-z0-9]+)*\\.)+[a-z]{2,}$" type: string description: | - 'Domain name of application that shall document the application layer topology update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + 'Domain name of application that shall document the application layer topology update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' additionalProperties: false v1_redirecttopologychangeinformation_body: required: @@ -26222,41 +30193,41 @@ components: topology-application: type: string description: | - 'Name of application that shall document the application layer topology find [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-alt-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + 'Name of application that shall document the application layer topology find, but not at OldRelease or NewRelease, [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-alt-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' topology-application-release-number: pattern: "^([0-9]{1,2})\\.([0-9]{1,2})\\.([0-9]{1,2})$" type: string description: | - 'Release of application that shall document the application layer topology update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-alt-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + 'Release of application that shall document the application layer topology find or update, but not at OldRelease or NewRelease, [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-alt-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' topology-operation-ltp-update: minLength: 6 type: string description: | - 'Operation for updating an LTP update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-c-bm-alt-2-0-1-001/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + 'Operation for updating an LTP update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bm-alt-2-0-1-001/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' topology-operation-ltp-deletion: minLength: 6 type: string description: | - 'Operation for deleting an LTP and its dependents like FC port and Link (if applicable) update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-c-bm-alt-2-0-1-002/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + 'Operation for deleting an LTP and its dependents like FC port and Link (if applicable) update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bm-alt-2-0-1-002/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' topology-operation-fc-update: minLength: 6 type: string description: | - 'Operation for updating a ForwardingConstruct instance update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-c-bm-alt-2-0-1-003/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + 'Operation for updating a ForwardingConstruct instance update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bm-alt-2-0-1-003/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' topology-operation-fc-port-update: minLength: 6 type: string description: | - 'Operation for updating an FC port update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-c-bm-alt-2-0-1-004/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + 'Operation for updating an FC port update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bm-alt-2-0-1-004/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' topology-operation-fc-port-deletion: minLength: 6 type: string description: | - 'Operation for deleting an FC port update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-c-bm-alt-2-0-1-005/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + 'Operation for deleting an FC port update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bm-alt-2-0-1-005/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' topology-application-protocol: type: string description: | - 'Protocol to be used for addresing the application that shall document the application layer topology update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + 'Protocol to be used for addresing the application that shall document the application layer topology update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' enum: - HTTP - HTTPS @@ -26267,10 +30238,10 @@ components: minimum: 0 type: integer description: | - 'Port of application that shall document the application layer topology update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + 'Port of application that shall document the application layer topology update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' example: - topology-application: ApplicationLayerTopology - topology-application-release-number: 2.0.1 + topology-application: InventoryApplication + topology-application-release-number: 54.1.3 topology-operation-ltp-update: /v1/update-ltp topology-operation-ltp-deletion: /v1/delete-ltp-and-dependents topology-operation-fc-update: /v1/update-fc @@ -26279,21 +30250,21 @@ components: topology-application-protocol: HTTP topology-application-address: ip-address: - ipv-4-address: 1.1.3.13 - topology-application-port: 3013 - inline_response_200_1: + ipv-4-address: 1.1.3.1 + topology-application-port: 3001 + inline_response_200_2: required: - core-model-1-4:control-construct type: object properties: core-model-1-4:control-construct: - $ref: '#/components/schemas/inline_response_200_1_coremodel14controlconstruct' + $ref: '#/components/schemas/inline_response_200_2_coremodel14controlconstruct' example: core-model-1-4:control-construct: forwarding-domain: - - uuid: ro-2-0-1-op-fd-000 + - uuid: xy-15-3-2-op-fd-000 forwarding-construct: - - uuid: ro-2-0-1-op-fc-bm-000 + - uuid: xy-15-3-2-op-fc-bm-000 name: - value-name: ForwardingKind value: core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET @@ -26302,11 +30273,11 @@ components: fc-port: - local-id: "000" port-direction: core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT - logical-termination-point: ro-2-0-1-op-s-bm-000 + logical-termination-point: xy-15-3-2-op-s-bm-000 - local-id: "100" port-direction: core-model-1-4:PORT_DIRECTION_TYPE_INPUT - logical-termination-point: ro-2-0-1-op-s-bm-000 - - uuid: ro-2-0-1-op-fc-bm-001 + logical-termination-point: xy-15-3-2-op-s-bm-000 + - uuid: xy-15-3-2-op-fc-bm-001 name: - value-name: ForwardingKind value: core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET @@ -26315,16 +30286,16 @@ components: fc-port: - local-id: "100" port-direction: core-model-1-4:PORT_DIRECTION_TYPE_INPUT - logical-termination-point: ro-2-0-1-op-s-bm-001 + logical-termination-point: xy-15-3-2-op-s-bm-001 - local-id: "200" port-direction: core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT - logical-termination-point: ro-2-0-1-op-c-bm-ro-2-0-1-000 + logical-termination-point: xy-15-3-2-op-c-bm-yz-34-4-4-000 logical-termination-point: - - uuid: ro-2-0-1-op-s-bm-000 + - uuid: xy-15-3-2-op-s-bm-000 ltp-direction: core-model-1-4:TERMINATION_DIRECTION_SOURCE client-ltp: [] server-ltp: - - ro-2-0-1-http-s-000 + - xy-15-3-2-http-s-000 layer-protocol: - local-id: "0" layer-protocol-name: operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER @@ -26333,72 +30304,262 @@ components: operation-name: /v1/register-yourself operation-server-interface-configuration: life-cycle-state: operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL - - uuid: ro-2-0-1-http-s-000 + - uuid: xy-15-3-2-http-s-000 ltp-direction: core-model-1-4:TERMINATION_DIRECTION_SOURCE client-ltp: - - ro-2-0-1-op-s-bm-000 + - xy-15-3-2-op-s-bm-000 server-ltp: [] layer-protocol: - local-id: "0" layer-protocol-name: http-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_HTTP_LAYER http-server-interface-1-0:http-server-interface-pac: http-server-interface-capability: - application-name: RegistryOffice - release-number: 2.0.1 + application-name: ApplicationName + release-number: 32.2.3 data-update-period: http-server-interface-1-0:DATA_UPDATE_PERIOD_TYPE_REAL_TIME uuid: uuid v1_updateoperationkey_body: required: - - new-operation-key - - operation-uuid + - new-operation-key + - operation-uuid + type: object + properties: + operation-uuid: + pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-op-([sc])-([bi][ms])((-([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})){0,1})-([0-9]{3})$" + type: string + description: | + 'UUID of LTP that is target of the updating of the operation key find [/core-model-1-4:control-construct/logical-termination-point=uuid]' + new-operation-key: + minLength: 5 + type: string + description: | + 'Future operation key update [/core-model-1-4:control-construct/logical-termination-point={operation-uuid}/layer-protocol=0/operation-*-interface-1-0:operation-*-interface-pac/operation-*-interface-configuration/operation-key]' + example: + operation-uuid: xy-15-3-2-op-s-is-003 + new-operation-key: Operation key not yet provided. + v1_updateoperationclient_body: + required: + - application-name + - new-operation-name + - old-operation-name + - release-number + type: object + properties: + application-name: + type: string + description: | + 'Name of the application that has an updated operation find, but not at OldRelease or NewRelease, [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + release-number: + pattern: "^([0-9]{1,2})\\.([0-9]{1,2})\\.([0-9]{1,2})$" + type: string + description: | + 'Release number of the application that has an updated operation find, but not at OldRelease or NewRelease, [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + old-operation-name: + minLength: 6 + type: string + description: | + 'Name of the deprecated operation find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-*/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + new-operation-name: + minLength: 6 + type: string + description: | + 'Name of the replacing operation update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-*/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + example: + application-name: ApplicationName + release-number: 75.4.3 + old-operation-name: /v1/register-application + new-operation-name: /v2/register-application + v1inquirebasicauthapprovals_address_ipaddress: + minProperties: 1 + type: object + properties: + ipv-4-address: + pattern: "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$" + type: string + description: | + 'IPv4 address of the application that approves the BasicAuth requests update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-aa-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + additionalProperties: false + v1inquirebasicauthapprovals_address: + maxProperties: 1 + minProperties: 1 + type: object + properties: + ip-address: + $ref: '#/components/schemas/v1inquirebasicauthapprovals_address_ipaddress' + domain-name: + pattern: "^([a-z0-9]+(-[a-z0-9]+)*\\.)+[a-z]{2,}$" + type: string + description: | + 'Domain name of the application that approves the BasicAuth requests update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-aa-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + additionalProperties: false + v1_inquirebasicauthapprovals_body: + required: + - address + - application-name + - operation-name + - port + - protocol + - release-number + type: object + properties: + application-name: + type: string + description: | + 'Name of the application that approves the BasicAuth requests find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-aa-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + release-number: + pattern: "^([0-9]{1,2})\\.([0-9]{1,2})\\.([0-9]{1,2})$" + type: string + description: | + 'Release of the application that approves the BasicAuth requests update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-aa-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + operation-name: + minLength: 6 + type: string + description: | + 'Operation for approving the BasicAuth requests update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bs-aa-2-0-1-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + protocol: + type: string + description: | + 'Protocol to be used for addressing the application that approves the BasicAuth requests update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-aa-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + enum: + - HTTP + - HTTPS + address: + $ref: '#/components/schemas/v1inquirebasicauthapprovals_address' + port: + maximum: 65535 + minimum: 0 + type: integer + description: | + 'Port of the application that approves the BasicAuth requests update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-aa-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + example: + application-name: AccessApplication + release-number: 43.2.4 + operation-name: /v1/approve-basic-auth-request + protocol: HTTP + address: + ip-address: + ipv-4-address: 1.1.3.1 + port: 3001 + v1_disposeremaindersofderegisteredapplication_body: + required: + - application-name + - release-number type: object properties: - operation-uuid: - pattern: "^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-op-([sc])-([bi][ms])((-([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})){0,1})-([0-9]{3})$" + application-name: + type: string + description: Name of application that shall be removed from configuration + and application data + release-number: + type: string + description: Release of application that shall be removed from configuration + and application data + example: + application-name: BadApplication + release-number: 45.4.3 + inline_response_200_3: + required: + - application-name + - release-number + type: object + properties: + application-name: type: string description: | - 'UUID of LTP that is target of the updating of the operation key find [/core-model-1-4:control-construct/logical-termination-point=uuid]' - new-operation-key: - minLength: 5 + 'ApplicationName of the OldRelease from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-or-1-0-0-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' + release-number: type: string description: | - 'Future operation key update [/core-model-1-4:control-construct/logical-termination-point={operation-uuid}/layer-protocol=0/operation-*-interface-1-0:operation-*-interface-pac/operation-*-interface-configuration/operation-key]' + 'ReleaseNumber of the OldRelease from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-or-1-0-0-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' example: - operation-uuid: ro-2-0-1-op-s-is-003 - new-operation-key: Operation key not yet provided. - v1_updateoperationclient_body: + application-name: ApplicationNameOfTheOldRelease + release-number: 45.4.7 + v1updateclientofsubsequentrelease_address_ipaddress: + minProperties: 1 + type: object + properties: + ipv-4-address: + pattern: "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$" + type: string + description: | + 'IPv4 address to be used during the bequeath-your-data-and-die process update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-nr-1-0-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + additionalProperties: false + v1updateclientofsubsequentrelease_address: + maxProperties: 1 + minProperties: 1 + type: object + properties: + ip-address: + $ref: '#/components/schemas/v1updateclientofsubsequentrelease_address_ipaddress' + domain-name: + pattern: "^([a-z0-9]+(-[a-z0-9]+)*\\.)+[a-z]{2,}$" + type: string + description: | + 'Domain name to be used during the bequeath-your-data-and-die process update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-nr-1-0-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + additionalProperties: false + v1_updateclientofsubsequentrelease_body: required: + - address - application-name - - new-operation-name - - old-operation-name + - port + - protocol - release-number type: object properties: application-name: type: string description: | - 'Name of the application that has an updated operation find [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + 'Name of the application that is target of the bequeath-your-data-and-die process update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-nr-1-0-0-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' release-number: pattern: "^([0-9]{1,2})\\.([0-9]{1,2})\\.([0-9]{1,2})$" type: string description: | - 'Release number of the application that has an updated operation find [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' - old-operation-name: - minLength: 6 + 'Release of the application that is target of the bequeath-your-data-and-die process update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-nr-1-0-0-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + protocol: type: string description: | - 'Name of the deprecated operation find [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-c-*/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' - new-operation-name: - minLength: 6 + 'Protocol to be used during the bequeath-your-data-and-die process update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-nr-1-0-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + enum: + - HTTP + - HTTPS + address: + $ref: '#/components/schemas/v1updateclientofsubsequentrelease_address' + port: + maximum: 65535 + minimum: 0 + type: integer + description: | + 'Port to be used during the bequeath-your-data-and-die process update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-nr-1-0-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + example: + application-name: ApplicationNameOfNewRelease + release-number: 17.1.2 + protocol: HTTP + address: + ip-address: + ipv-4-address: 1.1.3.0 + port: 3000 + inline_response_200_4: + required: + - bequeath-your-data-and-die-operation + - data-transfer-operations-list + type: object + properties: + bequeath-your-data-and-die-operation: type: string description: | - 'Name of the replacing operation update [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-c-*/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + 'Operation for starting the handover process on the already existing application from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-im-000/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' + data-transfer-operations-list: + type: array + description: | + 'List of operations required for transferring data from the oldRelease to the newRelease from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-nr-*/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + items: + type: string example: - application-name: RegistryOffice - release-number: 2.0.1 - old-operation-name: /v1/register-application - new-operation-name: /v2/register-application - inline_response_200_2: + bequeath-your-data-and-die-operation: /v1/bequeath-your-data-and-die + data-transfer-operations-list: + - /v1/inquire-application-type-approvals + - /v1/notify-approvals + inline_response_200_5: required: - application-name - application-purpose @@ -26411,18 +30572,18 @@ components: application-name: type: string description: | - 'Own application name from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' + 'Own application name from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' release-number: type: string description: | - 'Own release number from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' + 'Own release number from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' application-purpose: type: string description: | - 'Own application purpose from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-purpose]' + 'Own application purpose from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-purpose]' data-update-period: type: string - description: "from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/data-update-period]" + description: "from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/data-update-period]" enum: - real-time - 1h-period @@ -26430,18 +30591,18 @@ components: - manual owner-name: type: string - description: "from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/owner-name]" + description: "from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/owner-name]" owner-email-address: type: string - description: "from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/owner-email-address]" + description: "from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/owner-email-address]" example: application-name: OwnApplicationName - release-number: 1.0.0 + release-number: 34.3.6 application-purpose: Brief description of the purpose of the application. data-update-period: real-time owner-name: Thorsten Heinze owner-email-address: Thorsten.Heinze@telefonica.com - inline_response_200_3: + inline_response_200_6: required: - changes - release-date @@ -26450,38 +30611,40 @@ components: properties: release-number: type: string - description: "from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=*/release-number]" + description: "from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=*/release-number]" release-date: type: string - description: "from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=*/release-date]" + description: "from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=*/release-date]" changes: type: string - description: "from [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=*/changes]" - inline_response_200_4: + description: "from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=*/changes]" + inline_response_200_7: required: - core-model-1-4:control-construct type: object properties: core-model-1-4:control-construct: - $ref: '#/components/schemas/inline_response_200_4_coremodel14controlconstruct' + $ref: '#/components/schemas/inline_response_200_7_coremodel14controlconstruct' example: core-model-1-4:control-construct: profile-collection: profile: - - uuid: ro-2-0-1-integer-p-000 + - uuid: xy-15-3-2-integer-p-000 profile-name: integer-profile-1-0:PROFILE_NAME_TYPE_INTEGER_PROFILE integer-profile-1-0:integer-profile-pac: integer-profile-capability: integer-name: maximumNumberOfEntries + purpose: Limiting the number of entries for controlling the storage + consumption and access response time unit: records minimum: 0 maximum: 1000000 integer-profile-configuration: integer-value: 1000000 forwarding-domain: - - uuid: ro-2-0-1-op-fd-000 + - uuid: xy-15-3-2-op-fd-000 forwarding-construct: - - uuid: ro-2-0-1-op-fc-bm-003 + - uuid: xy-15-3-2-op-fc-bm-003 name: - value-name: ForwardingKind value: core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET @@ -26490,54 +30653,54 @@ components: fc-port: - local-id: "000" port-direction: core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT - logical-termination-point: ro-2-0-1-op-s-bm-003 + logical-termination-point: xy-15-3-2-op-s-bm-003 - local-id: "200" port-direction: core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT - logical-termination-point: ro-2-0-1-op-c-bs-ol-2-0-1-000 - - uuid: ro-2-0-1-op-fc-bm-004 + logical-termination-point: xy-15-3-2-op-c-bs-yz-34-3-3-000 + - uuid: xy-15-3-2-op-fc-bm-004 name: - value-name: ForwardingKind value: core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET - value-name: ForwardingName - value: OamRequestCausesInquiryForAuthentication + value: BasicAuthRequestCausesInquiryForAuthentication fc-port: - local-id: "000" port-direction: core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT - logical-termination-point: ro-2-0-1-op-s-bm-005 + logical-termination-point: xy-15-3-2-op-s-bm-005 - local-id: "200" port-direction: core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT - logical-termination-point: ro-2-0-1-op-c-bs-aa-2-0-1-000 + logical-termination-point: xy-15-3-2-op-c-bs-yz-34-3-3-000 logical-termination-point: - - uuid: ro-2-0-1-op-c-bm-ro-2-0-1-000 + - uuid: xy-15-3-2-op-c-bm-yz-34-4-4-000 ltp-direction: core-model-1-4:TERMINATION_DIRECTION_SINK client-ltp: [] server-ltp: - - ro-2-0-1-http-c-ro-2-0-1-000 + - xy-15-3-2-http-c-yz-34-4-4-000 layer-protocol: - local-id: "0" layer-protocol-name: operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER operation-client-interface-1-0:operation-client-interface-pac: operation-client-interface-configuration: - operation-name: /v1/register-application + operation-name: /v2/register-application operation-key: Operation key not yet provided. operation-client-interface-status: operational-state: operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED life-cycle-state: operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED - - uuid: ro-2-0-1-http-c-ro-2-0-1-000 + - uuid: xy-15-3-2-http-c-yz-34-4-4-000 ltp-direction: core-model-1-4:TERMINATION_DIRECTION_SINK client-ltp: - - ro-2-0-1-op-c-bm-ro-2-0-1-000 + - xy-15-3-2-op-c-bm-yz-34-4-4-000 server-ltp: - - ro-2-0-1-tcp-c-ro-2-0-1-000 + - xy-15-3-2-tcp-c-yz-34-4-4-000 layer-protocol: - local-id: "0" layer-protocol-name: http-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_HTTP_LAYER http-client-interface-1-0:http-client-interface-pac: http-client-interface-configuration: - application-name: RegistryOffice - release-number: 2.0.1 - uuid: ro-1-0-0 - inline_response_200_5: + application-name: ApplicationName + release-number: 15.3.2 + uuid: xy-15-3-2 + inline_response_200_8: required: - core-model-1-4:profile type: object @@ -26597,6 +30760,7 @@ components: properties: consequent-operation-reference: type: string + additionalProperties: false description: action profile - required: - profile-name @@ -26693,14 +30857,10 @@ components: type: string file-profile-configuration: required: - - file-path + - file-name type: object properties: - file-path: - type: string - user-name: - type: string - password: + file-name: type: string operation: type: string @@ -26739,6 +30899,8 @@ components: properties: integer-name: type: string + purpose: + type: string unit: type: string minimum: @@ -26783,7 +30945,9 @@ components: string-name: type: string enumeration: - type: string + type: array + items: + type: string pattern: type: string string-profile-configuration: @@ -26796,7 +30960,7 @@ components: description: string profile example: core-model-1-4:profile: "" - inline_response_200_6: + inline_response_200_9: required: - action-profile-1-0:operation-name type: object @@ -26806,7 +30970,7 @@ components: example: /v1/start-application-in-generic-representation example: action-profile-1-0:operation-name: /v1/start-application-in-generic-representation - inline_response_200_7: + inline_response_200_10: required: - action-profile-1-0:label type: object @@ -26816,7 +30980,7 @@ components: example: Inform about Application example: action-profile-1-0:label: Inform about Application - inline_response_200_8: + inline_response_200_11: required: - action-profile-1-0:input-value-list type: object @@ -26825,14 +30989,14 @@ components: uniqueItems: true type: array items: - $ref: '#/components/schemas/inline_response_200_8_actionprofile10inputvaluelist' + $ref: '#/components/schemas/inline_response_200_11_actionprofile10inputvaluelist' example: action-profile-1-0:input-value-list: - field-name: Label of input field unit: Unit at input field - field-name: Label of input field unit: Unit at input field - inline_response_200_9: + inline_response_200_12: required: - action-profile-1-0:display-in-new-browser-window type: object @@ -26842,16 +31006,16 @@ components: example: false example: action-profile-1-0:display-in-new-browser-window: false - inline_response_200_10: + inline_response_200_13: required: - action-profile-1-0:consequent-operation-reference type: object properties: action-profile-1-0:consequent-operation-reference: type: string - example: /core-model-1-4:control-construct/logical-termination-point=ro-1-0-0-op-s-bs-002/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name + example: /core-model-1-4:control-construct/logical-termination-point=xy-15-3-2-op-s-bs-002/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name example: - action-profile-1-0:consequent-operation-reference: /core-model-1-4:control-construct/logical-termination-point=ro-1-0-0-op-s-bs-002/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name + action-profile-1-0:consequent-operation-reference: /core-model-1-4:control-construct/logical-termination-point=xy-15-3-2-op-s-bs-002/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name actionprofileconfiguration_consequentoperationreference_body: required: - action-profile-1-0:consequent-operation-reference @@ -26859,8 +31023,8 @@ components: properties: action-profile-1-0:consequent-operation-reference: type: string - example: /core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-s-bs-002/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name - inline_response_200_11: + example: /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bs-002/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name + inline_response_200_14: required: - response-profile-1-0:operation-name type: object @@ -26870,17 +31034,17 @@ components: example: /v1/start-application-in-generic-representation example: response-profile-1-0:operation-name: /v1/start-application-in-generic-representation - inline_response_200_12: + inline_response_200_15: required: - response-profile-1-0:field-name type: object properties: response-profile-1-0:field-name: - $ref: '#/components/schemas/inline_response_200_12_responseprofile10fieldname' + $ref: '#/components/schemas/inline_response_200_15_responseprofile10fieldname' example: - response-profile-1-0:field-name: "{\"static-field-name\":\"applicationName\"\ - }" - inline_response_200_13: + response-profile-1-0:field-name: + static-field-name: applicationName + inline_response_200_16: required: - response-profile-1-0:description type: object @@ -26890,7 +31054,7 @@ components: example: Name of this application example: response-profile-1-0:description: Name of this application - inline_response_200_14: + inline_response_200_17: required: - response-profile-1-0:datatype type: object @@ -26900,7 +31064,7 @@ components: example: string example: response-profile-1-0:datatype: string - inline_response_200_15: + inline_response_200_18: required: - response-profile-1-0:value type: object @@ -26909,7 +31073,7 @@ components: $ref: '#/components/schemas/coremodel14controlconstructprofilecollectionprofileuuidresponseprofile10responseprofilepacresponseprofileconfigurationvalue_responseprofile10value' example: response-profile-1-0:value: - value-reference: /core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name + value-reference: /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name ? coremodel14controlconstructprofilecollectionprofileuuidresponseprofile10responseprofilepacresponseprofileconfigurationvalue_responseprofile10value : maxProperties: 1 minProperties: 1 @@ -26927,7 +31091,7 @@ components: properties: response-profile-1-0:value: $ref: '#/components/schemas/coremodel14controlconstructprofilecollectionprofileuuidresponseprofile10responseprofilepacresponseprofileconfigurationvalue_responseprofile10value' - inline_response_200_16: + inline_response_200_19: required: - file-profile-1-0:file-identifier type: object @@ -26937,7 +31101,7 @@ components: example: applicationData example: file-profile-1-0:file-identifier: applicationData - inline_response_200_17: + inline_response_200_20: required: - file-profile-1-0:file-description type: object @@ -26949,61 +31113,26 @@ components: example: file-profile-1-0:file-description: "Holds administrator-names, user-names,\ \ authorization codes and allowed-methods." - inline_response_200_18: - required: - - file-profile-1-0:file-path - type: object - properties: - file-profile-1-0:file-path: - type: string - example: ../application-data/application-data.json - example: - file-profile-1-0:file-path: ../application-data/application-data.json - fileprofileconfiguration_filepath_body: - required: - - file-profile-1-0:file-path - type: object - properties: - file-profile-1-0:file-path: - type: string - example: ../application-data/application-data.json - inline_response_200_19: - required: - - file-profile-1-0:user-name - type: object - properties: - file-profile-1-0:user-name: - type: string - example: firstname.surname - example: - file-profile-1-0:user-name: firstname.surname - fileprofileconfiguration_username_body: - required: - - file-profile-1-0:user-name - type: object - properties: - file-profile-1-0:user-name: - type: string - example: firstname.surname - inline_response_200_20: + inline_response_200_21: required: - - file-profile-1-0:password + - file-profile-1-0:file-name type: object properties: - file-profile-1-0:password: + file-profile-1-0:file-name: type: string - example: stupid_phrase + example: application-data.json example: - file-profile-1-0:password: stupid_phrase - fileprofileconfiguration_password_body: + file-profile-1-0:file-name: application-data.json + fileprofileconfiguration_filename_body: required: - - file-profile-1-0:password + - file-profile-1-0:file-name type: object properties: - file-profile-1-0:password: + file-profile-1-0:file-name: + pattern: "^([A-Za-z0-9-_,\\s]{3,})\\.([A-Za-z]{3})$" type: string - example: stupid_phrase - inline_response_200_21: + example: application-data.json + inline_response_200_22: required: - file-profile-1-0:operation type: object @@ -27031,7 +31160,7 @@ components: - file-profile-1-0:OPERATION_TYPE_READ_WRITE - file-profile-1-0:OPERATION_TYPE_OFF - file-profile-1-0:OPERATION_TYPE_NOT_YET_DEFINED - inline_response_200_22: + inline_response_200_23: required: - integer-profile-1-0:integer-name type: object @@ -27041,7 +31170,19 @@ components: example: maximumNumberOfEntries example: integer-profile-1-0:integer-name: maximumNumberOfEntries - inline_response_200_23: + inline_response_200_24: + required: + - integer-profile-1-0:purpose + type: object + properties: + integer-profile-1-0:purpose: + type: string + example: Limiting the number of entries for controlling the storage consumption + and access response time + example: + integer-profile-1-0:purpose: Limiting the number of entries for controlling + the storage consumption and access response time + inline_response_200_25: required: - integer-profile-1-0:unit type: object @@ -27051,7 +31192,7 @@ components: example: records example: integer-profile-1-0:unit: records - inline_response_200_24: + inline_response_200_26: required: - integer-profile-1-0:minimum type: object @@ -27061,7 +31202,7 @@ components: example: 0 example: integer-profile-1-0:minimum: 0 - inline_response_200_25: + inline_response_200_27: required: - integer-profile-1-0:maximum type: object @@ -27071,7 +31212,7 @@ components: example: 1000000 example: integer-profile-1-0:maximum: 1000000 - inline_response_200_26: + inline_response_200_28: required: - integer-profile-1-0:integer-value type: object @@ -27088,8 +31229,11 @@ components: properties: integer-profile-1-0:integer-value: type: integer + description: "Value must be between /integer-profile-capability/minimum\ + \ and /integer-profile-capability/maximum to be accepted, if those attributes\ + \ are available in the Capability section" example: 1000000 - inline_response_200_27: + inline_response_200_29: required: - operation-server-interface-1-0:operation-name type: object @@ -27099,7 +31243,7 @@ components: example: /v1/register-yourself example: operation-server-interface-1-0:operation-name: /v1/register-yourself - inline_response_200_28: + inline_response_200_30: required: - operation-server-interface-1-0:life-cycle-state type: object @@ -27131,7 +31275,7 @@ components: - operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_OBSOLETE - operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_UNKNOWN - operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED - inline_response_200_29: + inline_response_200_31: required: - operation-server-interface-1-0:operation-key type: object @@ -27150,7 +31294,7 @@ components: minLength: 5 type: string example: Operation key not yet provided. - inline_response_200_30: + inline_response_200_32: required: - http-server-interface-1-0:application-name type: object @@ -27160,17 +31304,17 @@ components: example: ApplicationName example: http-server-interface-1-0:application-name: ApplicationName - inline_response_200_31: + inline_response_200_33: required: - http-server-interface-1-0:release-number type: object properties: http-server-interface-1-0:release-number: type: string - example: 1.0.0 + example: 34.5.2 example: - http-server-interface-1-0:release-number: 1.0.0 - inline_response_200_32: + http-server-interface-1-0:release-number: 34.5.2 + inline_response_200_34: required: - http-server-interface-1-0:application-purpose type: object @@ -27181,7 +31325,7 @@ components: example: http-server-interface-1-0:application-purpose: Brief description of the purpose of the application. - inline_response_200_33: + inline_response_200_35: required: - http-server-interface-1-0:data-update-period type: object @@ -27196,7 +31340,7 @@ components: - http-server-interface-1-0:DATA_UPDATE_PERIOD_TYPE_MANUAL example: http-server-interface-1-0:data-update-period: http-server-interface-1-0:DATA_UPDATE_PERIOD_TYPE_REAL_TIME - inline_response_200_34: + inline_response_200_36: required: - http-server-interface-1-0:owner-name type: object @@ -27206,7 +31350,7 @@ components: example: Thorsten Heinze example: http-server-interface-1-0:owner-name: Thorsten Heinze - inline_response_200_35: + inline_response_200_37: required: - http-server-interface-1-0:owner-email-address type: object @@ -27216,7 +31360,7 @@ components: example: Thorsten.Heinze@telefonica.com example: http-server-interface-1-0:owner-email-address: Thorsten.Heinze@telefonica.com - inline_response_200_36: + inline_response_200_38: required: - http-server-interface-1-0:release-list type: object @@ -27226,18 +31370,18 @@ components: type: array example: - local-id: 0 - release-number: 1.0.0 + release-number: 23.2.2 release-date: 20.11.2010 changes: Initial version. items: - $ref: '#/components/schemas/inline_response_200_36_httpserverinterface10releaselist' + $ref: '#/components/schemas/inline_response_200_38_httpserverinterface10releaselist' example: http-server-interface-1-0:release-list: - local-id: 0 - release-number: 1.0.0 + release-number: 23.2.2 release-date: 20.11.2010 changes: Initial version. - inline_response_200_37: + inline_response_200_39: required: - tcp-server-interface-1-0:description type: object @@ -27253,7 +31397,7 @@ components: properties: tcp-server-interface-1-0:description: type: string - inline_response_200_38: + inline_response_200_40: required: - tcp-server-interface-1-0:local-protocol type: object @@ -27277,13 +31421,13 @@ components: - tcp-server-interface-1-0:PROTOCOL_TYPE_HTTP - tcp-server-interface-1-0:PROTOCOL_TYPE_HTTPS - tcp-server-interface-1-0:PROTOCOL_TYPE_NOT_YET_DEFINED - inline_response_200_39: + inline_response_200_41: required: - tcp-server-interface-1-0:local-address type: object properties: tcp-server-interface-1-0:local-address: - $ref: '#/components/schemas/inline_response_200_39_tcpserverinterface10localaddress' + $ref: '#/components/schemas/inline_response_200_41_tcpserverinterface10localaddress' example: tcp-server-interface-1-0:local-address: ipv-4-address: 1.1.4.1 @@ -27309,7 +31453,7 @@ components: example: tcp-server-interface-1-0:local-address: ipv-4-address: 1.1.4.1 - inline_response_200_40: + inline_response_200_42: required: - tcp-server-interface-1-0:local-port type: object @@ -27329,7 +31473,7 @@ components: minimum: 0 type: integer example: 1000 - inline_response_200_41: + inline_response_200_43: required: - operation-client-interface-1-0:operation-name type: object @@ -27348,7 +31492,7 @@ components: minLength: 6 type: string example: /v1/bequeath-your-data-and-die - inline_response_200_42: + inline_response_200_44: required: - operation-client-interface-1-0:operation-key type: object @@ -27367,7 +31511,7 @@ components: minLength: 5 type: string example: Operation key not yet provided. - inline_response_200_43: + inline_response_200_45: required: - operation-client-interface-1-0:operational-state type: object @@ -27381,7 +31525,7 @@ components: - operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED example: operation-client-interface-1-0:operational-state: operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED - inline_response_200_44: + inline_response_200_46: required: - operation-client-interface-1-0:life-cycle-state type: object @@ -27398,7 +31542,7 @@ components: - operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED example: operation-client-interface-1-0:life-cycle-state: operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED - inline_response_200_45: + inline_response_200_47: required: - operation-client-interface-1-0:detailed-logging-is-on type: object @@ -27416,7 +31560,7 @@ components: operation-client-interface-1-0:detailed-logging-is-on: type: boolean example: false - inline_response_200_46: + inline_response_200_48: required: - http-client-interface-1-0:application-name type: object @@ -27435,16 +31579,16 @@ components: pattern: "^([A-Z][a-z0-9]+){2,}$" type: string example: NewApplication - inline_response_200_47: + inline_response_200_49: required: - http-client-interface-1-0:release-number type: object properties: http-client-interface-1-0:release-number: type: string - example: 1.0.0 + example: 34.2.3 example: - http-client-interface-1-0:release-number: 1.0.0 + http-client-interface-1-0:release-number: 34.2.3 httpclientinterfaceconfiguration_releasenumber_body: required: - http-client-interface-1-0:release-number @@ -27453,8 +31597,8 @@ components: http-client-interface-1-0:release-number: pattern: "^([0-9]{1,2})\\.([0-9]{1,2})\\.([0-9]{1,2})$" type: string - example: 1.0.0 - inline_response_200_48: + example: 34.3.2 + inline_response_200_50: required: - tcp-client-interface-1-0:remote-protocol type: object @@ -27478,13 +31622,13 @@ components: - tcp-client-interface-1-0:PROTOCOL_TYPE_HTTP - tcp-client-interface-1-0:PROTOCOL_TYPE_HTTPS - tcp-client-interface-1-0:PROTOCOL_TYPE_NOT_YET_DEFINED - inline_response_200_49: + inline_response_200_51: required: - tcp-client-interface-1-0:remote-address type: object properties: tcp-client-interface-1-0:remote-address: - $ref: '#/components/schemas/inline_response_200_49_tcpclientinterface10remoteaddress' + $ref: '#/components/schemas/inline_response_200_51_tcpclientinterface10remoteaddress' example: tcp-client-interface-1-0:remote-address: ip-address: @@ -27519,7 +31663,7 @@ components: tcp-client-interface-1-0:remote-address: ip-address: ipv-4-address: 1.1.4.1 - inline_response_200_50: + inline_response_200_52: required: - tcp-client-interface-1-0:remote-port type: object @@ -27549,15 +31693,15 @@ components: field-name: type: string description: | - 'Field name from [/core-model-1-4:control-construct/profile-collection/profile=ro-2-0-1-response-p-*/response-profile-1-0:response-profile-pac/response-profile-capability/field-name]' + 'Field name from [/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-0-response-p-*/response-profile-1-0:response-profile-pac/response-profile-capability/field-name]' value: type: string description: | - 'Field value from [/core-model-1-4:control-construct/profile-collection/profile=ro-2-0-1-response-p-*/response-profile-1-0:response-profile-pac/response-profile-configuration/value]' + 'Field value from [/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-0-response-p-*/response-profile-1-0:response-profile-pac/response-profile-configuration/value]' datatype: type: string description: | - 'Field datatype from [/core-model-1-4:control-construct/profile-collection/profile=ro-2-0-1-response-p-*/response-profile-1-0:response-profile-pac/response-profile-capability/datatype]' + 'Field datatype from [/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-0-response-p-*/response-profile-1-0:response-profile-pac/response-profile-capability/datatype]' example: field-name: field-name datatype: datatype @@ -27570,11 +31714,11 @@ components: field-name: type: string description: | - 'Name of an input value required for executing the Request from [/core-model-1-4:control-construct/profile-collection/profile=ro-2-0-1-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/input-value-list=*/name]' + 'Name of an input value required for executing the Request from [/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-0-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/input-value-list=*/name]' unit: type: string description: | - 'Unit of an input value required for executing the Request from [/core-model-1-4:control-construct/profile-collection/profile=ro-2-0-1-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/input-value-list=*/unit]' + 'Unit of an input value required for executing the Request from [/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-0-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/input-value-list=*/unit]' example: field-name: field-name unit: unit @@ -27588,11 +31732,11 @@ components: label: type: string description: | - 'Label that shall be presented on the button from [/core-model-1-4:control-construct/profile-collection/profile=ro-2-0-1-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/label]' + 'Label that shall be presented on the button from [/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-0-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/label]' request: type: string description: | - 'Request that shall be called, when button gets pressed from [{/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-protocol}] :// [{/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/ipv-4-address} or {/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/domain-name}] : [{/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-tcp-s-*/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-port}] [{/core-model-1-4:control-construct/profile-collection/profile=ro-2-0-1-action-p-*/action-profile-1-0:action-profile-pac/action-profile-configuration/consequent-operation-reference}]' + 'Request that shall be called, when button gets pressed from [{/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-protocol}] :// [{/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/ipv-4-address} or {/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/domain-name}] : [{/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-port}] [{/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-0-action-p-*/action-profile-1-0:action-profile-pac/action-profile-configuration/consequent-operation-reference}]' input-value-list: type: array items: @@ -27600,7 +31744,7 @@ components: display-in-new-browser-window: type: boolean description: | - 'True in case Request shall be represented in a new browser window from [/core-model-1-4:control-construct/profile-collection/profile=ro-2-0-1-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/display-in-new-browser-window]' + 'True in case Request shall be represented in a new browser window from [/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-0-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/display-in-new-browser-window]' example: request: request input-value-list: @@ -27650,7 +31794,7 @@ components: type: array items: $ref: '#/components/schemas/forwardingDomain_fcport' - inline_response_200_coremodel14controlconstruct: + inline_response_200_1_coremodel14controlconstruct: required: - forwarding-domain - logical-termination-point @@ -27663,11 +31807,11 @@ components: uniqueItems: true type: array example: - - uuid: ro-2-0-1-op-s-bm-000 + - uuid: xy-15-3-2-op-s-bm-000 ltp-direction: core-model-1-4:TERMINATION_DIRECTION_SOURCE client-ltp: [] server-ltp: - - ro-2-0-1-http-s-000 + - xy-15-3-2-http-s-000 layer-protocol: - local-id: "0" layer-protocol-name: operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER @@ -27676,18 +31820,18 @@ components: operation-name: /v1/register-yourself operation-server-interface-configuration: life-cycle-state: operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL - - uuid: ro-2-0-1-http-s-000 + - uuid: xy-15-3-2-http-s-000 ltp-direction: core-model-1-4:TERMINATION_DIRECTION_SOURCE client-ltp: - - ro-2-0-1-op-s-bm-000 + - xy-15-3-2-op-s-bm-000 server-ltp: [] layer-protocol: - local-id: "0" layer-protocol-name: http-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_HTTP_LAYER http-server-interface-1-0:http-server-interface-pac: http-server-interface-capability: - application-name: RegistryOffice - release-number: 2.0.1 + application-name: ApplicationName + release-number: 45.2.7 data-update-period: http-server-interface-1-0:DATA_UPDATE_PERIOD_TYPE_REAL_TIME items: $ref: '#/components/schemas/logicalTerminationPoint' @@ -27696,9 +31840,9 @@ components: minItems: 1 type: array example: - - uuid: ro-2-0-1-op-fd-000 + - uuid: xy-15-3-2-op-fd-000 forwarding-construct: - - uuid: ro-2-0-1-op-fc-bm-000 + - uuid: xy-15-3-2-op-fc-bm-000 name: - value-name: ForwardingKind value: core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET @@ -27707,11 +31851,11 @@ components: fc-port: - local-id: "000" port-direction: core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT - logical-termination-point: ro-2-0-1-op-s-bm-000 + logical-termination-point: xy-15-3-2-op-s-bm-000 - local-id: "100" port-direction: core-model-1-4:PORT_DIRECTION_TYPE_INPUT - logical-termination-point: ro-2-0-1-op-s-bm-000 - - uuid: ro-2-0-1-op-fc-bm-001 + logical-termination-point: xy-15-3-2-op-s-bm-000 + - uuid: xy-15-3-2-op-fc-bm-001 name: - value-name: ForwardingKind value: core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET @@ -27720,17 +31864,17 @@ components: fc-port: - local-id: "100" port-direction: core-model-1-4:PORT_DIRECTION_TYPE_INPUT - logical-termination-point: ro-2-0-1-op-s-bm-001 + logical-termination-point: xy-15-3-2-op-s-bm-001 - local-id: "200" port-direction: core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT - logical-termination-point: ro-2-0-1-op-c-bm-ro-2-0-1-000 + logical-termination-point: xy-15-3-2-op-c-bm-yz-34-4-4-000 items: $ref: '#/components/schemas/forwardingDomain' example: forwarding-domain: - - uuid: ro-2-0-1-op-fd-000 + - uuid: xy-15-3-2-op-fd-000 forwarding-construct: - - uuid: ro-2-0-1-op-fc-bm-000 + - uuid: xy-15-3-2-op-fc-bm-000 name: - value-name: ForwardingKind value: core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET @@ -27739,11 +31883,11 @@ components: fc-port: - local-id: "000" port-direction: core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT - logical-termination-point: ro-2-0-1-op-s-bm-000 + logical-termination-point: xy-15-3-2-op-s-bm-000 - local-id: "100" port-direction: core-model-1-4:PORT_DIRECTION_TYPE_INPUT - logical-termination-point: ro-2-0-1-op-s-bm-000 - - uuid: ro-2-0-1-op-fc-bm-001 + logical-termination-point: xy-15-3-2-op-s-bm-000 + - uuid: xy-15-3-2-op-fc-bm-001 name: - value-name: ForwardingKind value: core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET @@ -27752,16 +31896,16 @@ components: fc-port: - local-id: "100" port-direction: core-model-1-4:PORT_DIRECTION_TYPE_INPUT - logical-termination-point: ro-2-0-1-op-s-bm-001 + logical-termination-point: xy-15-3-2-op-s-bm-001 - local-id: "200" port-direction: core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT - logical-termination-point: ro-2-0-1-op-c-bm-ro-2-0-1-000 + logical-termination-point: xy-15-3-2-op-c-bm-yz-34-4-4-000 logical-termination-point: - - uuid: ro-2-0-1-op-s-bm-000 + - uuid: xy-15-3-2-op-s-bm-000 ltp-direction: core-model-1-4:TERMINATION_DIRECTION_SOURCE client-ltp: [] server-ltp: - - ro-2-0-1-http-s-000 + - xy-15-3-2-http-s-000 layer-protocol: - local-id: "0" layer-protocol-name: operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER @@ -27770,21 +31914,21 @@ components: operation-name: /v1/register-yourself operation-server-interface-configuration: life-cycle-state: operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL - - uuid: ro-2-0-1-http-s-000 + - uuid: xy-15-3-2-http-s-000 ltp-direction: core-model-1-4:TERMINATION_DIRECTION_SOURCE client-ltp: - - ro-2-0-1-op-s-bm-000 + - xy-15-3-2-op-s-bm-000 server-ltp: [] layer-protocol: - local-id: "0" layer-protocol-name: http-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_HTTP_LAYER http-server-interface-1-0:http-server-interface-pac: http-server-interface-capability: - application-name: RegistryOffice - release-number: 2.0.1 + application-name: ApplicationName + release-number: 45.2.7 data-update-period: http-server-interface-1-0:DATA_UPDATE_PERIOD_TYPE_REAL_TIME uuid: uuid - inline_response_200_1_coremodel14controlconstruct: + inline_response_200_2_coremodel14controlconstruct: required: - forwarding-domain - logical-termination-point @@ -27797,11 +31941,11 @@ components: uniqueItems: true type: array example: - - uuid: ro-2-0-1-op-s-bm-000 + - uuid: xy-15-3-2-op-s-bm-000 ltp-direction: core-model-1-4:TERMINATION_DIRECTION_SOURCE client-ltp: [] server-ltp: - - ro-2-0-1-http-s-000 + - xy-15-3-2-http-s-000 layer-protocol: - local-id: "0" layer-protocol-name: operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER @@ -27810,18 +31954,18 @@ components: operation-name: /v1/register-yourself operation-server-interface-configuration: life-cycle-state: operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL - - uuid: ro-2-0-1-http-s-000 + - uuid: xy-15-3-2-http-s-000 ltp-direction: core-model-1-4:TERMINATION_DIRECTION_SOURCE client-ltp: - - ro-2-0-1-op-s-bm-000 + - xy-15-3-2-op-s-bm-000 server-ltp: [] layer-protocol: - local-id: "0" layer-protocol-name: http-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_HTTP_LAYER http-server-interface-1-0:http-server-interface-pac: http-server-interface-capability: - application-name: RegistryOffice - release-number: 2.0.1 + application-name: ApplicationName + release-number: 32.2.3 data-update-period: http-server-interface-1-0:DATA_UPDATE_PERIOD_TYPE_REAL_TIME items: $ref: '#/components/schemas/logicalTerminationPoint' @@ -27830,9 +31974,9 @@ components: minItems: 1 type: array example: - - uuid: ro-2-0-1-op-fd-000 + - uuid: xy-15-3-2-op-fd-000 forwarding-construct: - - uuid: ro-2-0-1-op-fc-bm-000 + - uuid: xy-15-3-2-op-fc-bm-000 name: - value-name: ForwardingKind value: core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET @@ -27841,11 +31985,11 @@ components: fc-port: - local-id: "000" port-direction: core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT - logical-termination-point: ro-2-0-1-op-s-bm-000 + logical-termination-point: xy-15-3-2-op-s-bm-000 - local-id: "100" port-direction: core-model-1-4:PORT_DIRECTION_TYPE_INPUT - logical-termination-point: ro-2-0-1-op-s-bm-000 - - uuid: ro-2-0-1-op-fc-bm-001 + logical-termination-point: xy-15-3-2-op-s-bm-000 + - uuid: xy-15-3-2-op-fc-bm-001 name: - value-name: ForwardingKind value: core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET @@ -27854,19 +31998,19 @@ components: fc-port: - local-id: "100" port-direction: core-model-1-4:PORT_DIRECTION_TYPE_INPUT - logical-termination-point: ro-2-0-1-op-s-bm-001 + logical-termination-point: xy-15-3-2-op-s-bm-001 - local-id: "200" port-direction: core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT - logical-termination-point: ro-2-0-1-op-c-bm-ro-2-0-1-000 + logical-termination-point: xy-15-3-2-op-c-bm-yz-34-4-4-000 items: $ref: '#/components/schemas/forwardingDomain' description: | 'Entire internal datatree from [/core-model-1-4:control-construct]' example: forwarding-domain: - - uuid: ro-2-0-1-op-fd-000 + - uuid: xy-15-3-2-op-fd-000 forwarding-construct: - - uuid: ro-2-0-1-op-fc-bm-000 + - uuid: xy-15-3-2-op-fc-bm-000 name: - value-name: ForwardingKind value: core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET @@ -27875,11 +32019,11 @@ components: fc-port: - local-id: "000" port-direction: core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT - logical-termination-point: ro-2-0-1-op-s-bm-000 + logical-termination-point: xy-15-3-2-op-s-bm-000 - local-id: "100" port-direction: core-model-1-4:PORT_DIRECTION_TYPE_INPUT - logical-termination-point: ro-2-0-1-op-s-bm-000 - - uuid: ro-2-0-1-op-fc-bm-001 + logical-termination-point: xy-15-3-2-op-s-bm-000 + - uuid: xy-15-3-2-op-fc-bm-001 name: - value-name: ForwardingKind value: core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET @@ -27888,16 +32032,16 @@ components: fc-port: - local-id: "100" port-direction: core-model-1-4:PORT_DIRECTION_TYPE_INPUT - logical-termination-point: ro-2-0-1-op-s-bm-001 + logical-termination-point: xy-15-3-2-op-s-bm-001 - local-id: "200" port-direction: core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT - logical-termination-point: ro-2-0-1-op-c-bm-ro-2-0-1-000 + logical-termination-point: xy-15-3-2-op-c-bm-yz-34-4-4-000 logical-termination-point: - - uuid: ro-2-0-1-op-s-bm-000 + - uuid: xy-15-3-2-op-s-bm-000 ltp-direction: core-model-1-4:TERMINATION_DIRECTION_SOURCE client-ltp: [] server-ltp: - - ro-2-0-1-http-s-000 + - xy-15-3-2-http-s-000 layer-protocol: - local-id: "0" layer-protocol-name: operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER @@ -27906,21 +32050,21 @@ components: operation-name: /v1/register-yourself operation-server-interface-configuration: life-cycle-state: operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL - - uuid: ro-2-0-1-http-s-000 + - uuid: xy-15-3-2-http-s-000 ltp-direction: core-model-1-4:TERMINATION_DIRECTION_SOURCE client-ltp: - - ro-2-0-1-op-s-bm-000 + - xy-15-3-2-op-s-bm-000 server-ltp: [] layer-protocol: - local-id: "0" layer-protocol-name: http-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_HTTP_LAYER http-server-interface-1-0:http-server-interface-pac: http-server-interface-capability: - application-name: RegistryOffice - release-number: 2.0.1 + application-name: ApplicationName + release-number: 32.2.3 data-update-period: http-server-interface-1-0:DATA_UPDATE_PERIOD_TYPE_REAL_TIME uuid: uuid - inline_response_200_4_coremodel14controlconstruct_profilecollection: + inline_response_200_7_coremodel14controlconstruct_profilecollection: required: - profile type: object @@ -27929,11 +32073,13 @@ components: uniqueItems: true type: array example: - - uuid: ro-2-0-1-integer-p-000 + - uuid: xy-15-3-2-integer-p-000 profile-name: integer-profile-1-0:PROFILE_NAME_TYPE_INTEGER_PROFILE integer-profile-1-0:integer-profile-pac: integer-profile-capability: integer-name: maximumNumberOfEntries + purpose: Limiting the number of entries for controlling the storage + consumption and access response time unit: records minimum: 0 maximum: 1000000 @@ -27945,7 +32091,6 @@ components: - profile-name - uuid type: object - additionalProperties: false properties: uuid: type: string @@ -27994,6 +32139,7 @@ components: properties: consequent-operation-reference: type: string + additionalProperties: false description: action profile - required: - profile-name @@ -28090,14 +32236,10 @@ components: type: string file-profile-configuration: required: - - file-path + - file-name type: object properties: - file-path: - type: string - user-name: - type: string - password: + file-name: type: string operation: type: string @@ -28136,6 +32278,8 @@ components: properties: integer-name: type: string + purpose: + type: string unit: type: string minimum: @@ -28180,7 +32324,9 @@ components: string-name: type: string enumeration: - type: string + type: array + items: + type: string pattern: type: string string-profile-configuration: @@ -28193,17 +32339,19 @@ components: description: string profile example: profile: - - uuid: ro-2-0-1-integer-p-000 + - uuid: xy-15-3-2-integer-p-000 profile-name: integer-profile-1-0:PROFILE_NAME_TYPE_INTEGER_PROFILE integer-profile-1-0:integer-profile-pac: integer-profile-capability: integer-name: maximumNumberOfEntries + purpose: Limiting the number of entries for controlling the storage + consumption and access response time unit: records minimum: 0 maximum: 1000000 integer-profile-configuration: integer-value: 1000000 - inline_response_200_4_coremodel14controlconstruct_logicalterminationpoint: + inline_response_200_7_coremodel14controlconstruct_logicalterminationpoint: required: - client-ltp - layer-protocol @@ -28904,7 +33052,7 @@ components: remote-port: type: integer description: tcp client - inline_response_200_4_coremodel14controlconstruct_fcport: + inline_response_200_7_coremodel14controlconstruct_fcport: required: - local-id - logical-termination-point @@ -28921,7 +33069,7 @@ components: - core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT logical-termination-point: type: string - inline_response_200_4_coremodel14controlconstruct_forwardingconstruct: + inline_response_200_7_coremodel14controlconstruct_forwardingconstruct: required: - fc-port - name @@ -28937,8 +33085,8 @@ components: fc-port: type: array items: - $ref: '#/components/schemas/inline_response_200_4_coremodel14controlconstruct_fcport' - inline_response_200_4_coremodel14controlconstruct_forwardingdomain: + $ref: '#/components/schemas/inline_response_200_7_coremodel14controlconstruct_fcport' + inline_response_200_7_coremodel14controlconstruct_forwardingdomain: required: - forwarding-construct - uuid @@ -28949,8 +33097,8 @@ components: forwarding-construct: type: array items: - $ref: '#/components/schemas/inline_response_200_4_coremodel14controlconstruct_forwardingconstruct' - inline_response_200_4_coremodel14controlconstruct: + $ref: '#/components/schemas/inline_response_200_7_coremodel14controlconstruct_forwardingconstruct' + inline_response_200_7_coremodel14controlconstruct: required: - forwarding-domain - logical-termination-point @@ -28961,51 +33109,51 @@ components: uuid: pattern: "^([a-z]{2,6})-([0-9]+)-([0-9]+)-([0-9]+)$" type: string - example: ro-1-0-0 + example: xy-15-3-2 profile-collection: - $ref: '#/components/schemas/inline_response_200_4_coremodel14controlconstruct_profilecollection' + $ref: '#/components/schemas/inline_response_200_7_coremodel14controlconstruct_profilecollection' logical-termination-point: uniqueItems: true type: array example: - - uuid: ro-2-0-1-op-c-bm-ro-2-0-1-000 + - uuid: xy-15-3-2-op-c-bm-yz-34-4-4-000 ltp-direction: core-model-1-4:TERMINATION_DIRECTION_SINK client-ltp: [] server-ltp: - - ro-2-0-1-http-c-ro-2-0-1-000 + - xy-15-3-2-http-c-yz-34-4-4-000 layer-protocol: - local-id: "0" layer-protocol-name: operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER operation-client-interface-1-0:operation-client-interface-pac: operation-client-interface-configuration: - operation-name: /v1/register-application + operation-name: /v2/register-application operation-key: Operation key not yet provided. operation-client-interface-status: operational-state: operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED life-cycle-state: operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED - - uuid: ro-2-0-1-http-c-ro-2-0-1-000 + - uuid: xy-15-3-2-http-c-yz-34-4-4-000 ltp-direction: core-model-1-4:TERMINATION_DIRECTION_SINK client-ltp: - - ro-2-0-1-op-c-bm-ro-2-0-1-000 + - xy-15-3-2-op-c-bm-yz-34-4-4-000 server-ltp: - - ro-2-0-1-tcp-c-ro-2-0-1-000 + - xy-15-3-2-tcp-c-yz-34-4-4-000 layer-protocol: - local-id: "0" layer-protocol-name: http-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_HTTP_LAYER http-client-interface-1-0:http-client-interface-pac: http-client-interface-configuration: - application-name: RegistryOffice - release-number: 2.0.1 + application-name: ApplicationName + release-number: 15.3.2 items: - $ref: '#/components/schemas/inline_response_200_4_coremodel14controlconstruct_logicalterminationpoint' + $ref: '#/components/schemas/inline_response_200_7_coremodel14controlconstruct_logicalterminationpoint' forwarding-domain: maxItems: 1 minItems: 1 type: array example: - - uuid: ro-2-0-1-op-fd-000 + - uuid: xy-15-3-2-op-fd-000 forwarding-construct: - - uuid: ro-2-0-1-op-fc-bm-003 + - uuid: xy-15-3-2-op-fc-bm-003 name: - value-name: ForwardingKind value: core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET @@ -29014,42 +33162,44 @@ components: fc-port: - local-id: "000" port-direction: core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT - logical-termination-point: ro-2-0-1-op-s-bm-003 + logical-termination-point: xy-15-3-2-op-s-bm-003 - local-id: "200" port-direction: core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT - logical-termination-point: ro-2-0-1-op-c-bs-ol-2-0-1-000 - - uuid: ro-2-0-1-op-fc-bm-004 + logical-termination-point: xy-15-3-2-op-c-bs-yz-34-3-3-000 + - uuid: xy-15-3-2-op-fc-bm-004 name: - value-name: ForwardingKind value: core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET - value-name: ForwardingName - value: OamRequestCausesInquiryForAuthentication + value: BasicAuthRequestCausesInquiryForAuthentication fc-port: - local-id: "000" port-direction: core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT - logical-termination-point: ro-2-0-1-op-s-bm-005 + logical-termination-point: xy-15-3-2-op-s-bm-005 - local-id: "200" port-direction: core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT - logical-termination-point: ro-2-0-1-op-c-bs-aa-2-0-1-000 + logical-termination-point: xy-15-3-2-op-c-bs-yz-34-3-3-000 items: - $ref: '#/components/schemas/inline_response_200_4_coremodel14controlconstruct_forwardingdomain' + $ref: '#/components/schemas/inline_response_200_7_coremodel14controlconstruct_forwardingdomain' example: profile-collection: profile: - - uuid: ro-2-0-1-integer-p-000 + - uuid: xy-15-3-2-integer-p-000 profile-name: integer-profile-1-0:PROFILE_NAME_TYPE_INTEGER_PROFILE integer-profile-1-0:integer-profile-pac: integer-profile-capability: integer-name: maximumNumberOfEntries + purpose: Limiting the number of entries for controlling the storage + consumption and access response time unit: records minimum: 0 maximum: 1000000 integer-profile-configuration: integer-value: 1000000 forwarding-domain: - - uuid: ro-2-0-1-op-fd-000 + - uuid: xy-15-3-2-op-fd-000 forwarding-construct: - - uuid: ro-2-0-1-op-fc-bm-003 + - uuid: xy-15-3-2-op-fc-bm-003 name: - value-name: ForwardingKind value: core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET @@ -29058,54 +33208,54 @@ components: fc-port: - local-id: "000" port-direction: core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT - logical-termination-point: ro-2-0-1-op-s-bm-003 + logical-termination-point: xy-15-3-2-op-s-bm-003 - local-id: "200" port-direction: core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT - logical-termination-point: ro-2-0-1-op-c-bs-ol-2-0-1-000 - - uuid: ro-2-0-1-op-fc-bm-004 + logical-termination-point: xy-15-3-2-op-c-bs-yz-34-3-3-000 + - uuid: xy-15-3-2-op-fc-bm-004 name: - value-name: ForwardingKind value: core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET - value-name: ForwardingName - value: OamRequestCausesInquiryForAuthentication + value: BasicAuthRequestCausesInquiryForAuthentication fc-port: - local-id: "000" port-direction: core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT - logical-termination-point: ro-2-0-1-op-s-bm-005 + logical-termination-point: xy-15-3-2-op-s-bm-005 - local-id: "200" port-direction: core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT - logical-termination-point: ro-2-0-1-op-c-bs-aa-2-0-1-000 + logical-termination-point: xy-15-3-2-op-c-bs-yz-34-3-3-000 logical-termination-point: - - uuid: ro-2-0-1-op-c-bm-ro-2-0-1-000 + - uuid: xy-15-3-2-op-c-bm-yz-34-4-4-000 ltp-direction: core-model-1-4:TERMINATION_DIRECTION_SINK client-ltp: [] server-ltp: - - ro-2-0-1-http-c-ro-2-0-1-000 + - xy-15-3-2-http-c-yz-34-4-4-000 layer-protocol: - local-id: "0" layer-protocol-name: operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER operation-client-interface-1-0:operation-client-interface-pac: operation-client-interface-configuration: - operation-name: /v1/register-application + operation-name: /v2/register-application operation-key: Operation key not yet provided. operation-client-interface-status: operational-state: operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED life-cycle-state: operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED - - uuid: ro-2-0-1-http-c-ro-2-0-1-000 + - uuid: xy-15-3-2-http-c-yz-34-4-4-000 ltp-direction: core-model-1-4:TERMINATION_DIRECTION_SINK client-ltp: - - ro-2-0-1-op-c-bm-ro-2-0-1-000 + - xy-15-3-2-op-c-bm-yz-34-4-4-000 server-ltp: - - ro-2-0-1-tcp-c-ro-2-0-1-000 + - xy-15-3-2-tcp-c-yz-34-4-4-000 layer-protocol: - local-id: "0" layer-protocol-name: http-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_HTTP_LAYER http-client-interface-1-0:http-client-interface-pac: http-client-interface-configuration: - application-name: RegistryOffice - release-number: 2.0.1 - uuid: ro-1-0-0 - inline_response_200_8_actionprofile10inputvaluelist: + application-name: ApplicationName + release-number: 15.3.2 + uuid: xy-15-3-2 + inline_response_200_11_actionprofile10inputvaluelist: required: - field-name type: object @@ -29119,7 +33269,7 @@ components: example: field-name: Label of input field unit: Unit at input field - inline_response_200_12_responseprofile10fieldname: + inline_response_200_15_responseprofile10fieldname: maxProperties: 1 minProperties: 1 type: object @@ -29129,8 +33279,7 @@ components: field-name-reference: type: string additionalProperties: false - example: "{\"static-field-name\":\"applicationName\"}" - inline_response_200_36_httpserverinterface10releaselist: + inline_response_200_38_httpserverinterface10releaselist: required: - changes - local-id @@ -29146,23 +33295,23 @@ components: type: string changes: type: string - inline_response_200_39_tcpserverinterface10localaddress: + inline_response_200_41_tcpserverinterface10localaddress: type: object properties: ipv-4-address: type: string domain-name: type: string - inline_response_200_49_tcpclientinterface10remoteaddress_ipaddress: + inline_response_200_51_tcpclientinterface10remoteaddress_ipaddress: type: object properties: ipv-4-address: type: string - inline_response_200_49_tcpclientinterface10remoteaddress: + inline_response_200_51_tcpclientinterface10remoteaddress: type: object properties: ip-address: - $ref: '#/components/schemas/inline_response_200_49_tcpclientinterface10remoteaddress_ipaddress' + $ref: '#/components/schemas/inline_response_200_51_tcpclientinterface10remoteaddress_ipaddress' domain-name: type: string responses: @@ -29188,15 +33337,6 @@ components: schema: type: integer example: 1100 - backend-time: - description: "Value written by the service provider, reporting the elapsed\ - \ time for data retrieval from the backend (service invocation, database\ - \ access…). Expressed in milliseconds" - style: simple - explode: false - schema: - type: integer - example: 850 content: application/json: schema: @@ -29275,3 +33415,25 @@ components: basicAuth: type: http scheme: basic +x-gui-paths: + /docs: + get: + operationId: docs + summary: Represents Swagger API description page + tags: + - RepresentationServices + responses: + "200": + description: Swagger API description page represented + "400": + $ref: '#/components/responses/responseForErroredOamRequests' + "401": + $ref: '#/components/responses/responseForErroredOamRequests' + "403": + $ref: '#/components/responses/responseForErroredOamRequests' + "404": + $ref: '#/components/responses/responseForErroredOamRequests' + "500": + $ref: '#/components/responses/responseForErroredOamRequests' + default: + $ref: '#/components/responses/responseForErroredOamRequests' diff --git a/server/application-data/application-data.json b/server/application-data/application-data.json index e977efe..079efcd 100644 --- a/server/application-data/application-data.json +++ b/server/application-data/application-data.json @@ -1,4 +1 @@ -{ - "application-registration-time": [], - "preceeding-application-information": [] -} \ No newline at end of file +{"application-registration-time":[],"preceeding-application-information":[]} \ No newline at end of file diff --git a/server/controllers/BasicServices.js b/server/controllers/BasicServices.js index 94cb597..e82a99c 100644 --- a/server/controllers/BasicServices.js +++ b/server/controllers/BasicServices.js @@ -8,6 +8,7 @@ var RestResponseBuilder = require('onf-core-model-ap/applicationPattern/rest/ser var ExecutionAndTraceService = require('onf-core-model-ap/applicationPattern/services/ExecutionAndTraceService'); const NEW_RELEASE_FORWARDING_NAME = 'PromptForBequeathingDataCausesTransferOfListOfAlreadyRegisteredApplications'; +const OLD_RELEASE_FORWARDING_NAME = 'PromptForEmbeddingCausesRequestForBequeathingData'; module.exports.embedYourself = async function embedYourself(req, res, next, body, user, originator, xCorrelator, traceIndicator, customerJourney) { let startTime = process.hrtime(); @@ -25,7 +26,10 @@ module.exports.embedYourself = async function embedYourself(req, res, next, body responseCode = sentResp.code; responseBodyToDocument = sentResp.body; }); - ExecutionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument); + let execTime = await RestResponseHeader.executionTimeInMilliseconds(startTime); + if (!execTime) execTime = 0; + else execTime = Math.round(execTime); + ExecutionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument, execTime); }; module.exports.endSubscription = async function endSubscription(req, res, next, body, user, originator, xCorrelator, traceIndicator, customerJourney) { @@ -44,7 +48,10 @@ module.exports.endSubscription = async function endSubscription(req, res, next, responseCode = sentResp.code; responseBodyToDocument = sentResp.body; }); - ExecutionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument); + let execTime = await RestResponseHeader.executionTimeInMilliseconds(startTime); + if (!execTime) execTime = 0; + else execTime = Math.round(execTime); + ExecutionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument, execTime); }; module.exports.informAboutApplication = async function informAboutApplication(req, res, next, user, originator, xCorrelator, traceIndicator, customerJourney) { @@ -63,7 +70,10 @@ module.exports.informAboutApplication = async function informAboutApplication(re responseCode = sentResp.code; responseBodyToDocument = sentResp.body; }); - ExecutionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument); + let execTime = await RestResponseHeader.executionTimeInMilliseconds(startTime); + if (!execTime) execTime = 0; + else execTime = Math.round(execTime); + ExecutionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument, execTime); }; module.exports.informAboutApplicationInGenericRepresentation = async function informAboutApplicationInGenericRepresentation(req, res, next, user, originator, xCorrelator, traceIndicator, customerJourney) { @@ -82,7 +92,10 @@ module.exports.informAboutApplicationInGenericRepresentation = async function in responseCode = sentResp.code; responseBodyToDocument = sentResp.body; }); - ExecutionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument); + let execTime = await RestResponseHeader.executionTimeInMilliseconds(startTime); + if (!execTime) execTime = 0; + else execTime = Math.round(execTime); + ExecutionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument, execTime); }; module.exports.informAboutReleaseHistory = async function informAboutReleaseHistory(req, res, next, user, originator, xCorrelator, traceIndicator, customerJourney) { @@ -101,7 +114,10 @@ module.exports.informAboutReleaseHistory = async function informAboutReleaseHist responseCode = sentResp.code; responseBodyToDocument = sentResp.body; }); - ExecutionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument); + let execTime = await RestResponseHeader.executionTimeInMilliseconds(startTime); + if (!execTime) execTime = 0; + else execTime = Math.round(execTime); + ExecutionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument, execTime); }; module.exports.informAboutReleaseHistoryInGenericRepresentation = async function informAboutReleaseHistoryInGenericRepresentation(req, res, next, user, originator, xCorrelator, traceIndicator, customerJourney) { @@ -120,7 +136,10 @@ module.exports.informAboutReleaseHistoryInGenericRepresentation = async function responseCode = sentResp.code; responseBodyToDocument = sentResp.body; }); - ExecutionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument); + let execTime = await RestResponseHeader.executionTimeInMilliseconds(startTime); + if (!execTime) execTime = 0; + else execTime = Math.round(execTime); + ExecutionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument, execTime); }; module.exports.inquireOamRequestApprovals = async function inquireOamRequestApprovals(req, res, next, body, user, originator, xCorrelator, traceIndicator, customerJourney) { @@ -139,7 +158,10 @@ module.exports.inquireOamRequestApprovals = async function inquireOamRequestAppr responseCode = sentResp.code; responseBodyToDocument = sentResp.body; }); - ExecutionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument); + let execTime = await RestResponseHeader.executionTimeInMilliseconds(startTime); + if (!execTime) execTime = 0; + else execTime = Math.round(execTime); + ExecutionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument, execTime); }; module.exports.listLtpsAndFcs = async function listLtpsAndFcs(req, res, next, user, originator, xCorrelator, traceIndicator, customerJourney) { @@ -158,7 +180,10 @@ module.exports.listLtpsAndFcs = async function listLtpsAndFcs(req, res, next, us responseCode = sentResp.code; responseBodyToDocument = sentResp.body; }); - ExecutionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument); + let execTime = await RestResponseHeader.executionTimeInMilliseconds(startTime); + if (!execTime) execTime = 0; + else execTime = Math.round(execTime); + ExecutionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument, execTime); }; module.exports.redirectOamRequestInformation = async function redirectOamRequestInformation(req, res, next, body, user, originator, xCorrelator, traceIndicator, customerJourney) { @@ -177,7 +202,10 @@ module.exports.redirectOamRequestInformation = async function redirectOamRequest responseCode = sentResp.code; responseBodyToDocument = sentResp.body; }); - ExecutionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument); + let execTime = await RestResponseHeader.executionTimeInMilliseconds(startTime); + if (!execTime) execTime = 0; + else execTime = Math.round(execTime); + ExecutionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument, execTime); }; module.exports.redirectServiceRequestInformation = async function redirectServiceRequestInformation(req, res, next, body, user, originator, xCorrelator, traceIndicator, customerJourney) { @@ -196,7 +224,10 @@ module.exports.redirectServiceRequestInformation = async function redirectServic responseCode = sentResp.code; responseBodyToDocument = sentResp.body; }); - ExecutionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument); + let execTime = await RestResponseHeader.executionTimeInMilliseconds(startTime); + if (!execTime) execTime = 0; + else execTime = Math.round(execTime); + ExecutionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument, execTime); }; module.exports.redirectTopologyChangeInformation = async function redirectTopologyChangeInformation(req, res, next, body, user, originator, xCorrelator, traceIndicator, customerJourney) { @@ -215,7 +246,10 @@ module.exports.redirectTopologyChangeInformation = async function redirectTopolo responseCode = sentResp.code; responseBodyToDocument = sentResp.body; }); - ExecutionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument); + let execTime = await RestResponseHeader.executionTimeInMilliseconds(startTime); + if (!execTime) execTime = 0; + else execTime = Math.round(execTime); + ExecutionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument, execTime); }; module.exports.registerYourself = async function registerYourself(req, res, next, body, user, originator, xCorrelator, traceIndicator, customerJourney) { @@ -242,7 +276,10 @@ module.exports.registerYourself = async function registerYourself(req, res, next responseCode = sentResp.code; responseBodyToDocument = sentResp.body; }); - ExecutionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument); + let execTime = await RestResponseHeader.executionTimeInMilliseconds(startTime); + if (!execTime) execTime = 0; + else execTime = Math.round(execTime); + ExecutionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument, execTime); }; module.exports.startApplicationInGenericRepresentation = async function startApplicationInGenericRepresentation(req, res, next, user, originator, xCorrelator, traceIndicator, customerJourney) { @@ -261,7 +298,10 @@ module.exports.startApplicationInGenericRepresentation = async function startApp responseCode = sentResp.code; responseBodyToDocument = sentResp.body; }); - ExecutionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument); + let execTime = await RestResponseHeader.executionTimeInMilliseconds(startTime); + if (!execTime) execTime = 0; + else execTime = Math.round(execTime); + ExecutionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument, execTime); }; module.exports.updateClient = async function updateClient(req, res, next, body, user, originator, xCorrelator, traceIndicator, customerJourney) { @@ -280,7 +320,10 @@ module.exports.updateClient = async function updateClient(req, res, next, body, responseCode = sentResp.code; responseBodyToDocument = sentResp.body; }); - ExecutionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument); + let execTime = await RestResponseHeader.executionTimeInMilliseconds(startTime); + if (!execTime) execTime = 0; + else execTime = Math.round(execTime); + ExecutionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument, execTime); }; module.exports.updateOperationClient = async function updateOperationClient(req, res, next, body, user, originator, xCorrelator, traceIndicator, customerJourney) { @@ -299,7 +342,10 @@ module.exports.updateOperationClient = async function updateOperationClient(req, responseCode = sentResp.code; responseBodyToDocument = sentResp.body; }); - ExecutionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument); + let execTime = await RestResponseHeader.executionTimeInMilliseconds(startTime); + if (!execTime) execTime = 0; + else execTime = Math.round(execTime); + ExecutionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument, execTime); }; module.exports.updateOperationKey = async function updateOperationKey(req, res, next, body, user, originator, xCorrelator, traceIndicator, customerJourney) { @@ -318,5 +364,98 @@ module.exports.updateOperationKey = async function updateOperationKey(req, res, responseCode = sentResp.code; responseBodyToDocument = sentResp.body; }); - ExecutionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument); + let execTime = await RestResponseHeader.executionTimeInMilliseconds(startTime); + if (!execTime) execTime = 0; + else execTime = Math.round(execTime); + ExecutionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument, execTime); }; + +module.exports.inquireBasicAuthRequestApprovals = async function inquireBasicAuthRequestApprovals(req, res, next, body, user, originator, xCorrelator, traceIndicator, customerJourney) { + let startTime = process.hrtime(); + let responseCode = responseCodeEnum.code.NO_CONTENT; + let responseBodyToDocument; + await BasicServices.inquireBasicAuthRequestApprovals(body, user, xCorrelator, traceIndicator, customerJourney, req.url, NEW_RELEASE_FORWARDING_NAME) + .then(async function (responseBody) { + responseBodyToDocument = responseBody; + let responseHeader = await RestResponseHeader.createResponseHeader(xCorrelator, startTime, req.url); + RestResponseBuilder.buildResponse(res, responseCode, responseBody, responseHeader); + }) + .catch(async function (responseBody) { + let responseHeader = await RestResponseHeader.createResponseHeader(xCorrelator, startTime, req.url); + let sentResp = RestResponseBuilder.buildResponse(res, undefined, responseBody, responseHeader); + responseCode = sentResp.code; + responseBodyToDocument = sentResp.body; + }); + let execTime = await RestResponseHeader.executionTimeInMilliseconds(startTime); + if (!execTime) execTime = 0; + else execTime = Math.round(execTime); + ExecutionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument, execTime); +}; + +module.exports.disposeRemaindersOfDeregisteredApplication = async function disposeRemaindersOfDeregisteredApplication(req, res, next, body, user, originator, xCorrelator, traceIndicator, customerJourney) { + let startTime = process.hrtime(); + let responseCode = responseCodeEnum.code.NO_CONTENT; + let responseBodyToDocument; + await BasicServices.disposeRemaindersOfDeregisteredApplication(body, user, originator, xCorrelator, traceIndicator, customerJourney, req.url, NEW_RELEASE_FORWARDING_NAME) + .then(async function (responseBody) { + responseBodyToDocument = responseBody; + let responseHeader = await RestResponseHeader.createResponseHeader(xCorrelator, startTime, req.url); + RestResponseBuilder.buildResponse(res, responseCode, responseBody, responseHeader); + }) + .catch(async function (responseBody) { + let responseHeader = await RestResponseHeader.createResponseHeader(xCorrelator, startTime, req.url); + let sentResp = RestResponseBuilder.buildResponse(res, undefined, responseBody, responseHeader); + responseCode = sentResp.code; + responseBodyToDocument = sentResp.body; + }); + let execTime = await RestResponseHeader.executionTimeInMilliseconds(startTime); + if (!execTime) execTime = 0; + else execTime = Math.round(execTime); + ExecutionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument, execTime); +}; + +module.exports.UpdateClientOfSubsequentRelease = async function UpdateClientOfSubsequentRelease(req, res, next, body, user, originator, xCorrelator, traceIndicator, customerJourney) { + let startTime = process.hrtime(); + let responseCode = responseCodeEnum.code.OK; + let responseBodyToDocument = {}; + await BasicServices.updateClientOfSubsequentRelease(body, user, xCorrelator, traceIndicator, customerJourney, req.url, NEW_RELEASE_FORWARDING_NAME) + .then(async function (responseBody) { + responseBodyToDocument = responseBody; + let responseHeader = await RestResponseHeader.createResponseHeader(xCorrelator, startTime, req.url); + RestResponseBuilder.buildResponse(res, responseCode, responseBody, responseHeader); + }) + .catch(async function (responseBody) { + let responseHeader = await RestResponseHeader.createResponseHeader(xCorrelator, startTime, req.url); + let sentResp = RestResponseBuilder.buildResponse(res, undefined, responseBody, responseHeader); + responseCode = sentResp.code; + responseBodyToDocument = sentResp.body; + }); + let execTime = await RestResponseHeader.executionTimeInMilliseconds(startTime); + if (!execTime) execTime = 0; + else execTime = Math.round(execTime); + ExecutionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument, execTime); +}; + +module.exports.informAboutPrecedingRelease = async function informAboutPrecedingRelease(req, res, next, user, originator, xCorrelator, traceIndicator, customerJourney) { + let startTime = process.hrtime(); + let responseCode = responseCodeEnum.code.OK; + let responseBodyToDocument = {}; + await BasicServices.informAboutPrecedingRelease(OLD_RELEASE_FORWARDING_NAME) + .then(async function (responseBody) { + responseBodyToDocument = responseBody; + let responseHeader = await RestResponseHeader.createResponseHeader(xCorrelator, startTime, req.url); + RestResponseBuilder.buildResponse(res, responseCode, responseBody, responseHeader); + }) + .catch(async function (responseBody) { + let responseHeader = await RestResponseHeader.createResponseHeader(xCorrelator, startTime, req.url); + let sentResp = RestResponseBuilder.buildResponse(res, undefined, responseBody, responseHeader); + responseCode = sentResp.code; + responseBodyToDocument = sentResp.body; + }); + let execTime = await RestResponseHeader.executionTimeInMilliseconds(startTime); + if (!execTime) execTime = 0; + else execTime = Math.round(execTime); + ExecutionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument, execTime); +}; + + diff --git a/server/controllers/FileProfile.js b/server/controllers/FileProfile.js index 0252d7c..442b4e8 100644 --- a/server/controllers/FileProfile.js +++ b/server/controllers/FileProfile.js @@ -32,9 +32,9 @@ module.exports.getFileProfileFileIdentifier = async function getFileProfileFileI OamLogService.recordOamRequest(req.url, req.body, responseCode, req.headers.authorization, req.method); }; -module.exports.getFileProfileFilePath = async function getFileProfileFilePath (req, res, next, uuid) { +module.exports.getFileProfileFileName = async function getFileProfileFileName (req, res, next, uuid) { let responseCode = ResponseCode.code.OK; - await FileProfile.getFileProfileFilePath(req.url) + await FileProfile.getFileProfileFileName(req.url) .then(function (response) { ResponseBuilder.buildResponse(res, responseCode, response); }) @@ -58,35 +58,9 @@ module.exports.getFileProfileOperation = async function getFileProfileOperation OamLogService.recordOamRequest(req.url, req.body, responseCode, req.headers.authorization, req.method); }; -module.exports.getFileProfilePassword = async function getFileProfilePassword (req, res, next, uuid) { - let responseCode = ResponseCode.code.OK; - await FileProfile.getFileProfilePassword(req.url) - .then(function (response) { - ResponseBuilder.buildResponse(res, responseCode, response); - }) - .catch(function (response) { - let sentResp = ResponseBuilder.buildResponse(res, undefined, response); - responseCode = sentResp.code; - }); - OamLogService.recordOamRequest(req.url, req.body, responseCode, req.headers.authorization, req.method); -}; - -module.exports.getFileProfileUserName = async function getFileProfileUserName (req, res, next, uuid) { - let responseCode = ResponseCode.code.OK; - await FileProfile.getFileProfileUserName(req.url) - .then(function (response) { - ResponseBuilder.buildResponse(res, responseCode, response); - }) - .catch(function (response) { - let sentResp = ResponseBuilder.buildResponse(res, undefined, response); - responseCode = sentResp.code; - }); - OamLogService.recordOamRequest(req.url, req.body, responseCode, req.headers.authorization, req.method); -}; - -module.exports.putFileProfileFilePath = async function putFileProfileFilePath (req, res, next, body, uuid) { +module.exports.putFileProfileFileName = async function putFileProfileFileName (req, res, next, body, uuid) { let responseCode = ResponseCode.code.NO_CONTENT; - await FileProfile.putFileProfileFilePath(body, req.url) + await FileProfile.putFileProfileFileName(body, req.url) .then(function (response) { ResponseBuilder.buildResponse(res, responseCode, response); }) @@ -108,30 +82,4 @@ module.exports.putFileProfileOperation = async function putFileProfileOperation responseCode = sentResp.code; }); OamLogService.recordOamRequest(req.url, req.body, responseCode, req.headers.authorization, req.method); -}; - -module.exports.putFileProfilePassword = async function putFileProfilePassword (req, res, next, body, uuid) { - let responseCode = ResponseCode.code.NO_CONTENT; - await FileProfile.putFileProfilePassword(body, req.url) - .then(function (response) { - ResponseBuilder.buildResponse(res, responseCode, response); - }) - .catch(function (response) { - let sentResp = ResponseBuilder.buildResponse(res, undefined, response); - responseCode = sentResp.code; - }); - OamLogService.recordOamRequest(req.url, req.body, responseCode, req.headers.authorization, req.method); -}; - -module.exports.putFileProfileUserName = async function putFileProfileUserName (req, res, next, body, uuid) { - let responseCode = ResponseCode.code.NO_CONTENT; - await FileProfile.putFileProfileUserName(body, req.url) - .then(function (response) { - ResponseBuilder.buildResponse(res, responseCode, response); - }) - .catch(function (response) { - let sentResp = ResponseBuilder.buildResponse(res, undefined, response); - responseCode = sentResp.code; - }); - OamLogService.recordOamRequest(req.url, req.body, responseCode, req.headers.authorization, req.method); -}; +}; \ No newline at end of file diff --git a/server/controllers/IndividualServices.js b/server/controllers/IndividualServices.js index d3df888..2fc8040 100644 --- a/server/controllers/IndividualServices.js +++ b/server/controllers/IndividualServices.js @@ -1,15 +1,16 @@ +//@ts-check 'use strict'; - var responseCodeEnum = require('onf-core-model-ap/applicationPattern/rest/server/ResponseCode'); var restResponseHeader = require('onf-core-model-ap/applicationPattern/rest/server/ResponseHeader'); var restResponseBuilder = require('onf-core-model-ap/applicationPattern/rest/server/ResponseBuilder'); var executionAndTraceService = require('onf-core-model-ap/applicationPattern/services/ExecutionAndTraceService'); var IndividualServices = require('../service/IndividualServicesService'); + module.exports.bequeathYourDataAndDie = async function bequeathYourDataAndDie(req, res, next, body, user, originator, xCorrelator, traceIndicator, customerJourney) { let startTime = process.hrtime(); let responseCode = responseCodeEnum.code.NO_CONTENT; - let responseBodyToDocument = {}; + let responseBodyToDocument; await IndividualServices.bequeathYourDataAndDie(body, user, originator, xCorrelator, traceIndicator, customerJourney, req.url) .then(async function (responseBody) { responseBodyToDocument = responseBody; @@ -22,13 +23,16 @@ module.exports.bequeathYourDataAndDie = async function bequeathYourDataAndDie(re responseCode = sentResp.code; responseBodyToDocument = sentResp.body; }); - executionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument); + let execTime = await restResponseHeader.executionTimeInMilliseconds(startTime); + if (!execTime) execTime = 0; + else execTime = Math.round(execTime); + executionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument, execTime); }; module.exports.deregisterApplication = async function deregisterApplication(req, res, next, body, user, originator, xCorrelator, traceIndicator, customerJourney) { let startTime = process.hrtime(); let responseCode = responseCodeEnum.code.NO_CONTENT; - let responseBodyToDocument = {}; + let responseBodyToDocument; await IndividualServices.deregisterApplication(body, user, originator, xCorrelator, traceIndicator, customerJourney, req.url) .then(async function (responseBody) { responseBodyToDocument = responseBody; @@ -41,13 +45,16 @@ module.exports.deregisterApplication = async function deregisterApplication(req, responseCode = sentResp.code; responseBodyToDocument = sentResp.body; }); - executionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument); + let execTime = await restResponseHeader.executionTimeInMilliseconds(startTime); + if (!execTime) execTime = 0; + else execTime = Math.round(execTime); + executionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument, execTime); }; module.exports.inquireApplicationTypeApprovals = async function inquireApplicationTypeApprovals(req, res, next, body, user, originator, xCorrelator, traceIndicator, customerJourney) { let startTime = process.hrtime(); let responseCode = responseCodeEnum.code.NO_CONTENT; - let responseBodyToDocument = {}; + let responseBodyToDocument; await IndividualServices.inquireApplicationTypeApprovals(body, user, originator, xCorrelator, traceIndicator, customerJourney, req.url) .then(async function (responseBody) { responseBodyToDocument = responseBody; @@ -60,7 +67,10 @@ module.exports.inquireApplicationTypeApprovals = async function inquireApplicati responseCode = sentResp.code; responseBodyToDocument = sentResp.body; }); - executionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument); + let execTime = await restResponseHeader.executionTimeInMilliseconds(startTime); + if (!execTime) execTime = 0; + else execTime = Math.round(execTime); + executionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument, execTime); }; @@ -68,7 +78,7 @@ module.exports.listApplications = async function listApplications(req, res, next let startTime = process.hrtime(); let responseCode = responseCodeEnum.code.OK; let responseBodyToDocument = {}; - await IndividualServices.listApplications(body, user, originator, xCorrelator, traceIndicator, customerJourney, req.url) + await IndividualServices.listApplications(body) .then(async function (responseBody) { responseBodyToDocument = responseBody; let responseHeader = await restResponseHeader.createResponseHeader(xCorrelator, startTime, req.url); @@ -80,14 +90,17 @@ module.exports.listApplications = async function listApplications(req, res, next responseCode = sentResp.code; responseBodyToDocument = sentResp.body; }); - executionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument); + let execTime = await restResponseHeader.executionTimeInMilliseconds(startTime); + if (!execTime) execTime = 0; + else execTime = Math.round(execTime); + executionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument, execTime); }; module.exports.listApplicationsInGenericRepresentation = async function listApplicationsInGenericRepresentation(req, res, next, user, originator, xCorrelator, traceIndicator, customerJourney) { let startTime = process.hrtime(); let responseCode = responseCodeEnum.code.OK; let responseBodyToDocument = {}; - await IndividualServices.listApplicationsInGenericRepresentation(user, originator, xCorrelator, traceIndicator, customerJourney, req.url) + await IndividualServices.listApplicationsInGenericRepresentation() .then(async function (responseBody) { responseBodyToDocument = responseBody; let responseHeader = await restResponseHeader.createResponseHeader(xCorrelator, startTime, req.url); @@ -99,13 +112,18 @@ module.exports.listApplicationsInGenericRepresentation = async function listAppl responseCode = sentResp.code; responseBodyToDocument = sentResp.body; }); - executionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument); + let execTime = await restResponseHeader.executionTimeInMilliseconds(startTime); + if (!execTime) execTime = 0; + else execTime = Math.round(execTime); + executionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument, execTime); }; - +/** + * @deprecated since version 2.1.0 + */ module.exports.notifyApprovals = async function notifyApprovals(req, res, next, body, user, originator, xCorrelator, traceIndicator, customerJourney) { let startTime = process.hrtime(); let responseCode = responseCodeEnum.code.NO_CONTENT; - let responseBodyToDocument = {}; + let responseBodyToDocument; await IndividualServices.notifyApprovals(body, user, originator, xCorrelator, traceIndicator, customerJourney, req.url) .then(async function (responseBody) { responseBodyToDocument = responseBody; @@ -118,13 +136,18 @@ module.exports.notifyApprovals = async function notifyApprovals(req, res, next, responseCode = sentResp.code; responseBodyToDocument = sentResp.body; }); - executionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument); + let execTime = await restResponseHeader.executionTimeInMilliseconds(startTime); + if (!execTime) execTime = 0; + else execTime = Math.round(execTime); + executionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument, execTime); }; - +/** + * @deprecated since version 2.1.0 + */ module.exports.notifyDeregistrations = async function notifyDeregistrations(req, res, next, body, user, originator, xCorrelator, traceIndicator, customerJourney) { let startTime = process.hrtime(); let responseCode = responseCodeEnum.code.NO_CONTENT; - let responseBodyToDocument = {}; + let responseBodyToDocument; await IndividualServices.notifyDeregistrations(body, user, originator, xCorrelator, traceIndicator, customerJourney, req.url) .then(async function (responseBody) { responseBodyToDocument = responseBody; @@ -137,13 +160,18 @@ module.exports.notifyDeregistrations = async function notifyDeregistrations(req, responseCode = sentResp.code; responseBodyToDocument = sentResp.body; }); - executionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument); + let execTime = await restResponseHeader.executionTimeInMilliseconds(startTime); + if (!execTime) execTime = 0; + else execTime = Math.round(execTime); + executionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument, execTime); }; - +/** + * @deprecated since version 2.1.0 + */ module.exports.notifyWithdrawnApprovals = async function notifyWithdrawnApprovals(req, res, next, body, user, originator, xCorrelator, traceIndicator, customerJourney) { let startTime = process.hrtime(); let responseCode = responseCodeEnum.code.NO_CONTENT; - let responseBodyToDocument = {}; + let responseBodyToDocument; await IndividualServices.notifyWithdrawnApprovals(body, user, originator, xCorrelator, traceIndicator, customerJourney, req.url) .then(async function (responseBody) { responseBodyToDocument = responseBody; @@ -156,13 +184,68 @@ module.exports.notifyWithdrawnApprovals = async function notifyWithdrawnApproval responseCode = sentResp.code; responseBodyToDocument = sentResp.body; }); - executionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument); + let execTime = await restResponseHeader.executionTimeInMilliseconds(startTime); + if (!execTime) execTime = 0; + else execTime = Math.round(execTime); + executionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument, execTime); }; -module.exports.registerApplication = async function registerApplication(req, res, next, body, user, originator, xCorrelator, traceIndicator, customerJourney) { +module.exports.notifyEmbeddingStatusChanges = async function notifyEmbeddingStatusChanges(req, res, next, body, user, originator, xCorrelator, traceIndicator, customerJourney) { let startTime = process.hrtime(); let responseCode = responseCodeEnum.code.NO_CONTENT; + let responseBodyToDocument; + await IndividualServices.notifyEmbeddingStatusChanges(body, user, originator, xCorrelator, traceIndicator, customerJourney, req.url) + .then(async function (responseBody) { + responseBodyToDocument = responseBody; + let responseHeader = await restResponseHeader.createResponseHeader(xCorrelator, startTime, req.url); + restResponseBuilder.buildResponse(res, responseCode, responseBody, responseHeader); + }) + .catch(async function (responseBody) { + let responseHeader = await restResponseHeader.createResponseHeader(xCorrelator, startTime, req.url); + let sentResp = restResponseBuilder.buildResponse(res, undefined, responseBody, responseHeader); + responseCode = sentResp.code; + responseBodyToDocument = sentResp.body; + }); + let execTime = await restResponseHeader.executionTimeInMilliseconds(startTime); + if (!execTime) execTime = 0; + else execTime = Math.round(execTime); + executionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument, execTime); +}; + +module.exports.regardUpdatedApprovalStatus = async function regardUpdatedApprovalStatus(req, res, next, body, user, originator, xCorrelator, traceIndicator, customerJourney) { + let startTime = process.hrtime(); + let responseCode = responseCodeEnum.code.OK; let responseBodyToDocument = {}; + await IndividualServices.regardUpdatedApprovalStatus(body, user, originator, xCorrelator, traceIndicator, customerJourney, req.url) + .then(async function (responseBody) { + if (responseBody != undefined && Object.prototype.hasOwnProperty.call(responseBody, "process-id")) { + responseCode = responseCodeEnum.code.OK; + } else { + responseCode = responseCodeEnum.code.NO_CONTENT; + } + responseBodyToDocument = responseBody; + let responseHeader = await restResponseHeader.createResponseHeader(xCorrelator, startTime, req.url); + restResponseBuilder.buildResponse(res, responseCode, responseBody, responseHeader); + }) + .catch(async function (responseBody) { + let responseHeader = await restResponseHeader.createResponseHeader(xCorrelator, startTime, req.url); + let sentResp = restResponseBuilder.buildResponse(res, undefined, responseBody, responseHeader); + responseCode = sentResp.code; + responseBodyToDocument = sentResp.body; + }); + let execTime = await restResponseHeader.executionTimeInMilliseconds(startTime); + if (!execTime) execTime = 0; + else execTime = Math.round(execTime); + executionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument, execTime); +}; + +/** + * @deprecated since version 2.1.0 + */ +module.exports.registerApplication = async function registerApplication(req, res, next, body, user, originator, xCorrelator, traceIndicator, customerJourney) { + let startTime = process.hrtime(); + let responseCode = responseCodeEnum.code.NO_CONTENT; + let responseBodyToDocument; await IndividualServices.registerApplication(body, user, originator, xCorrelator, traceIndicator, customerJourney, req.url) .then(async function (responseBody) { responseBodyToDocument = responseBody; @@ -175,14 +258,17 @@ module.exports.registerApplication = async function registerApplication(req, res responseCode = sentResp.code; responseBodyToDocument = sentResp.body; }); - executionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument); + let execTime = await restResponseHeader.executionTimeInMilliseconds(startTime); + if (!execTime) execTime = 0; + else execTime = Math.round(execTime); + executionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument, execTime); }; -module.exports.relayOperationUpdate = async function relayOperationUpdate(req, res, next, body, user, originator, xCorrelator, traceIndicator, customerJourney) { +module.exports.registerApplication2 = async function registerApplication2(req, res, next, body, user, originator, xCorrelator, traceIndicator, customerJourney) { let startTime = process.hrtime(); let responseCode = responseCodeEnum.code.NO_CONTENT; - let responseBodyToDocument = {}; - await IndividualServices.relayOperationUpdate(body, user, originator, xCorrelator, traceIndicator, customerJourney, req.url) + let responseBodyToDocument; + await IndividualServices.registerApplication2(body, user, originator, xCorrelator, traceIndicator, customerJourney, req.url) .then(async function (responseBody) { responseBodyToDocument = responseBody; let responseHeader = await restResponseHeader.createResponseHeader(xCorrelator, startTime, req.url); @@ -194,14 +280,17 @@ module.exports.relayOperationUpdate = async function relayOperationUpdate(req, r responseCode = sentResp.code; responseBodyToDocument = sentResp.body; }); - executionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument); + let execTime = await restResponseHeader.executionTimeInMilliseconds(startTime); + if (!execTime) execTime = 0; + else execTime = Math.round(execTime); + executionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument, execTime); }; -module.exports.relayServerReplacement = async function relayServerReplacement(req, res, next, body, user, originator, xCorrelator, traceIndicator, customerJourney) { +module.exports.relayOperationUpdate = async function relayOperationUpdate(req, res, next, body, user, originator, xCorrelator, traceIndicator, customerJourney) { let startTime = process.hrtime(); let responseCode = responseCodeEnum.code.NO_CONTENT; let responseBodyToDocument = {}; - await IndividualServices.relayServerReplacement(body, user, originator, xCorrelator, traceIndicator, customerJourney, req.url) + await IndividualServices.relayOperationUpdate(body, user, originator, xCorrelator, traceIndicator, customerJourney, req.url) .then(async function (responseBody) { responseBodyToDocument = responseBody; let responseHeader = await restResponseHeader.createResponseHeader(xCorrelator, startTime, req.url); @@ -213,14 +302,17 @@ module.exports.relayServerReplacement = async function relayServerReplacement(re responseCode = sentResp.code; responseBodyToDocument = sentResp.body; }); - executionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument); + let execTime = await restResponseHeader.executionTimeInMilliseconds(startTime); + if (!execTime) execTime = 0; + else execTime = Math.round(execTime); + executionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument, execTime); }; -module.exports.updateApprovalStatus = async function updateApprovalStatus(req, res, next, body, user, originator, xCorrelator, traceIndicator, customerJourney) { +module.exports.relayServerReplacement = async function relayServerReplacement(req, res, next, body, user, originator, xCorrelator, traceIndicator, customerJourney) { let startTime = process.hrtime(); let responseCode = responseCodeEnum.code.NO_CONTENT; let responseBodyToDocument = {}; - await IndividualServices.updateApprovalStatus(body, user, originator, xCorrelator, traceIndicator, customerJourney, req.url) + await IndividualServices.relayServerReplacement(body, user, originator, xCorrelator, traceIndicator, customerJourney, req.url) .then(async function (responseBody) { responseBodyToDocument = responseBody; let responseHeader = await restResponseHeader.createResponseHeader(xCorrelator, startTime, req.url); @@ -232,5 +324,8 @@ module.exports.updateApprovalStatus = async function updateApprovalStatus(req, r responseCode = sentResp.code; responseBodyToDocument = sentResp.body; }); - executionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument); + let execTime = await restResponseHeader.executionTimeInMilliseconds(startTime); + if (!execTime) execTime = 0; + else execTime = Math.round(execTime); + executionAndTraceService.recordServiceRequest(xCorrelator, traceIndicator, user, originator, req.url, responseCode, req.body, responseBodyToDocument, execTime); }; diff --git a/server/database/config.json b/server/database/config.json new file mode 100644 index 0000000..aa0ff56 --- /dev/null +++ b/server/database/config.json @@ -0,0 +1,5569 @@ +{ + "core-model-1-4:control-construct": { + "uuid": "ro-2-1-0", + "profile-collection": { + "profile": [ + { + "uuid": "ro-2-1-0-action-p-000", + "profile-name": "action-profile-1-0:PROFILE_NAME_TYPE_ACTION_PROFILE", + "action-profile-1-0:action-profile-pac": { + "action-profile-capability": { + "operation-name": "/v1/start-application-in-generic-representation", + "label": "Inform about Application", + "input-value-list": [], + "display-in-new-browser-window": false + }, + "action-profile-configuration": { + "consequent-operation-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bs-002/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name" + } + } + }, + { + "uuid": "ro-2-1-0-action-p-001", + "profile-name": "action-profile-1-0:PROFILE_NAME_TYPE_ACTION_PROFILE", + "action-profile-1-0:action-profile-pac": { + "action-profile-capability": { + "operation-name": "/v1/inform-about-application-in-generic-representation", + "label": "Release History", + "input-value-list": [], + "display-in-new-browser-window": false + }, + "action-profile-configuration": { + "consequent-operation-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bs-004/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name" + } + } + }, + { + "uuid": "ro-2-1-0-action-p-002", + "profile-name": "action-profile-1-0:PROFILE_NAME_TYPE_ACTION_PROFILE", + "action-profile-1-0:action-profile-pac": { + "action-profile-capability": { + "operation-name": "/v1/inform-about-application-in-generic-representation", + "label": "API Documentation", + "input-value-list": [], + "display-in-new-browser-window": true + }, + "action-profile-configuration": { + "consequent-operation-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bs-005/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name" + } + } + }, + { + "uuid": "ro-2-1-0-action-p-003", + "profile-name": "action-profile-1-0:PROFILE_NAME_TYPE_ACTION_PROFILE", + "action-profile-1-0:action-profile-pac": { + "action-profile-capability": { + "operation-name": "/v1/start-application-in-generic-representation", + "label": "List Registerted Applications", + "input-value-list": [], + "display-in-new-browser-window": false + }, + "action-profile-configuration": { + "consequent-operation-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-is-005/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name" + } + } + }, + { + "uuid": "ro-2-1-0-response-p-000", + "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", + "response-profile-1-0:response-profile-pac": { + "response-profile-capability": { + "operation-name": "/v1/start-application-in-generic-representation", + "field-name": { + "static-field-name": "applicationName" + }, + "description": "Own application name", + "datatype": "string" + }, + "response-profile-configuration": { + "value": { + "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name" + } + } + } + }, + { + "uuid": "ro-2-1-0-response-p-001", + "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", + "response-profile-1-0:response-profile-pac": { + "response-profile-capability": { + "operation-name": "/v1/inform-about-application-in-generic-representation", + "field-name": { + "static-field-name": "applicationName" + }, + "description": "Name of this application", + "datatype": "string" + }, + "response-profile-configuration": { + "value": { + "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name" + } + } + } + }, + { + "uuid": "ro-2-1-0-response-p-002", + "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", + "response-profile-1-0:response-profile-pac": { + "response-profile-capability": { + "operation-name": "/v1/inform-about-application-in-generic-representation", + "field-name": { + "static-field-name": "releaseNumber" + }, + "description": "Number of this release", + "datatype": "string" + }, + "response-profile-configuration": { + "value": { + "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number" + } + } + } + }, + { + "uuid": "ro-2-1-0-response-p-003", + "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", + "response-profile-1-0:response-profile-pac": { + "response-profile-capability": { + "operation-name": "/v1/inform-about-application-in-generic-representation", + "field-name": { + "static-field-name": "applicationPurpose" + }, + "description": "Purpose of this application", + "datatype": "string" + }, + "response-profile-configuration": { + "value": { + "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-purpose" + } + } + } + }, + { + "uuid": "ro-2-1-0-response-p-004", + "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", + "response-profile-1-0:response-profile-pac": { + "response-profile-capability": { + "operation-name": "/v1/inform-about-application-in-generic-representation", + "field-name": { + "static-field-name": "dataUpdatePeriod" + }, + "description": "Period of updating the data inside this application", + "datatype": "string" + }, + "response-profile-configuration": { + "value": { + "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/data-update-period" + } + } + } + }, + { + "uuid": "ro-2-1-0-response-p-005", + "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", + "response-profile-1-0:response-profile-pac": { + "response-profile-capability": { + "operation-name": "/v1/inform-about-application-in-generic-representation", + "field-name": { + "static-field-name": "ownerName" + }, + "description": "Name of the ApplicationOwner", + "datatype": "string" + }, + "response-profile-configuration": { + "value": { + "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/owner-name" + } + } + } + }, + { + "uuid": "ro-2-1-0-response-p-006", + "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", + "response-profile-1-0:response-profile-pac": { + "response-profile-capability": { + "operation-name": "/v1/inform-about-application-in-generic-representation", + "field-name": { + "static-field-name": "ownerEmailAddress" + }, + "description": "Email address of the ApplicationOwner", + "datatype": "string" + }, + "response-profile-configuration": { + "value": { + "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/owner-email-address" + } + } + } + }, + { + "uuid": "ro-2-1-0-response-p-007", + "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", + "response-profile-1-0:response-profile-pac": { + "response-profile-capability": { + "operation-name": "/v1/inform-about-release-history-in-generic-representation", + "field-name": { + "field-name-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=0/release-number" + }, + "description": "Represents the first entry in the list of releases", + "datatype": "string" + }, + "response-profile-configuration": { + "value": { + "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=0/changes" + } + } + } + }, + { + "uuid": "ro-2-1-0-response-p-008", + "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", + "response-profile-1-0:response-profile-pac": { + "response-profile-capability": { + "operation-name": "/v1/list-applications-in-generic-representation", + "field-name": { + "field-name-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-ro-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name" + }, + "description": "List of release numbers and changes", + "datatype": "string" + }, + "response-profile-configuration": { + "value": { + "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-ro-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number" + } + } + } + }, + { + "uuid": "ro-2-1-0-response-p-009", + "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", + "response-profile-1-0:response-profile-pac": { + "response-profile-capability": { + "operation-name": "/v1/list-applications-in-generic-representation", + "field-name": { + "field-name-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-tar-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name" + }, + "description": "List of registered application names and release numbers", + "datatype": "string" + }, + "response-profile-configuration": { + "value": { + "value-reference": "core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-tar-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number" + } + } + } + }, + { + "uuid": "ro-2-1-0-response-p-010", + "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", + "response-profile-1-0:response-profile-pac": { + "response-profile-capability": { + "operation-name": "/v1/list-applications-in-generic-representation", + "field-name": { + "field-name-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-eatl-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name" + }, + "description": "List of registered application names and release numbers", + "datatype": "string" + }, + "response-profile-configuration": { + "value": { + "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-eatl-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number" + } + } + } + }, + { + "uuid": "ro-2-1-0-response-p-011", + "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", + "response-profile-1-0:response-profile-pac": { + "response-profile-capability": { + "operation-name": "/v1/list-applications-in-generic-representation", + "field-name": { + "field-name-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-ol-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name" + }, + "description": "List of registered application names and release numbers", + "datatype": "string" + }, + "response-profile-configuration": { + "value": { + "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-ol-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number" + } + } + } + }, + { + "uuid": "ro-2-1-0-response-p-012", + "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", + "response-profile-1-0:response-profile-pac": { + "response-profile-capability": { + "operation-name": "/v1/list-applications-in-generic-representation", + "field-name": { + "field-name-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-aa-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name" + }, + "description": "List of registered application names and release numbers", + "datatype": "string" + }, + "response-profile-configuration": { + "value": { + "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-aa-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number" + } + } + } + }, + { + "uuid": "ro-2-1-0-response-p-013", + "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", + "response-profile-1-0:response-profile-pac": { + "response-profile-capability": { + "operation-name": "/v1/list-applications-in-generic-representation", + "field-name": { + "field-name-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-alt-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name" + }, + "description": "List of registered application names and release numbers", + "datatype": "string" + }, + "response-profile-configuration": { + "value": { + "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-alt-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number" + } + } + } + }, + { + "uuid": "ro-2-1-0-response-p-014", + "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", + "response-profile-1-0:response-profile-pac": { + "response-profile-capability": { + "operation-name": "/v1/list-applications-in-generic-representation", + "field-name": { + "field-name-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-okm-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name" + }, + "description": "List of registered application names and release numbers", + "datatype": "string" + }, + "response-profile-configuration": { + "value": { + "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-okm-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number" + } + } + } + }, + { + "uuid": "ro-2-1-0-response-p-016", + "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", + "response-profile-1-0:response-profile-pac": { + "response-profile-capability": { + "operation-name": "/v1/inform-about-release-history-in-generic-representation", + "field-name": { + "field-name-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=1/release-number" + }, + "description": "Represents the first entry in the list of releases", + "datatype": "string" + }, + "response-profile-configuration": { + "value": { + "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=1/changes" + } + } + } + }, + { + "uuid": "ro-2-1-0-response-p-017", + "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", + "response-profile-1-0:response-profile-pac": { + "response-profile-capability": { + "operation-name": "/v1/inform-about-release-history-in-generic-representation", + "field-name": { + "field-name-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=2/release-number" + }, + "description": "Represents the first entry in the list of releases", + "datatype": "string" + }, + "response-profile-configuration": { + "value": { + "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=2/changes" + } + } + } + }, + { + "uuid": "ro-2-1-0-file-p-000", + "profile-name": "file-profile-1-0:PROFILE_NAME_TYPE_FILE_PROFILE", + "file-profile-1-0:file-profile-pac": { + "file-profile-capability": { + "file-identifier": "LOADfile", + "file-description": "Application name, release number and registration time stamp" + }, + "file-profile-configuration": { + "file-name": "application-data.json", + "operation": "file-profile-1-0:OPERATION_TYPE_READ_WRITE" + } + } + }, + { + "uuid": "ro-2-1-0-integer-p-000", + "profile-name": "integer-profile-1-0:PROFILE_NAME_TYPE_INTEGER_PROFILE", + "integer-profile-1-0:integer-profile-pac": { + "integer-profile-capability": { + "integer-name": "waitTimeToApprove", + "unit": "second", + "minimum": 600, + "maximum": 1209600 + }, + "integer-profile-configuration": { + "integer-value": 259200 + } + } + }, + { + "uuid": "ro-2-1-0-integer-p-001", + "profile-name": "integer-profile-1-0:PROFILE_NAME_TYPE_INTEGER_PROFILE", + "integer-profile-1-0:integer-profile-pac": { + "integer-profile-capability": { + "integer-name": "maximumWaitTimeToReceiveOperationKey", + "unit": "second", + "minimum": 60, + "maximum": 1800 + }, + "integer-profile-configuration": { + "integer-value": 600 + } + } + } + ] + }, + "logical-termination-point": [ + { + "uuid": "ro-2-1-0-op-s-bm-000", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-s-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-server-interface-1-0:operation-server-interface-pac": { + "operation-server-interface-capability": { + "operation-name": "/v1/register-yourself" + }, + "operation-server-interface-configuration": { + "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", + "operation-key": "Operation key not yet provided." + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-s-bm-001", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-s-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-server-interface-1-0:operation-server-interface-pac": { + "operation-server-interface-capability": { + "operation-name": "/v1/embed-yourself" + }, + "operation-server-interface-configuration": { + "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", + "operation-key": "Operation key not yet provided." + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-s-bm-002", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-s-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-server-interface-1-0:operation-server-interface-pac": { + "operation-server-interface-capability": { + "operation-name": "/v1/redirect-service-request-information" + }, + "operation-server-interface-configuration": { + "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", + "operation-key": "Operation key not yet provided." + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-s-bm-003", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-s-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-server-interface-1-0:operation-server-interface-pac": { + "operation-server-interface-capability": { + "operation-name": "/v1/redirect-oam-request-information" + }, + "operation-server-interface-configuration": { + "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", + "operation-key": "Operation key not yet provided." + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-s-bm-004", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-s-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-server-interface-1-0:operation-server-interface-pac": { + "operation-server-interface-capability": { + "operation-name": "/v1/end-subscription" + }, + "operation-server-interface-configuration": { + "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", + "operation-key": "Operation key not yet provided." + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-s-bm-005", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-s-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-server-interface-1-0:operation-server-interface-pac": { + "operation-server-interface-capability": { + "operation-name": "/v1/inquire-oam-request-approvals" + }, + "operation-server-interface-configuration": { + "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_DEPRECATED", + "operation-key": "Operation key not yet provided." + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-s-bm-007", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-s-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-server-interface-1-0:operation-server-interface-pac": { + "operation-server-interface-capability": { + "operation-name": "/v1/update-client" + }, + "operation-server-interface-configuration": { + "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", + "operation-key": "Operation key not yet provided." + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-s-bm-008", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-s-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-server-interface-1-0:operation-server-interface-pac": { + "operation-server-interface-capability": { + "operation-name": "/v1/list-ltps-and-fcs" + }, + "operation-server-interface-configuration": { + "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", + "operation-key": "Operation key not yet provided." + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-s-bm-009", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-s-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-server-interface-1-0:operation-server-interface-pac": { + "operation-server-interface-capability": { + "operation-name": "/v1/redirect-topology-change-information" + }, + "operation-server-interface-configuration": { + "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", + "operation-key": "Operation key not yet provided." + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-s-bm-010", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-s-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-server-interface-1-0:operation-server-interface-pac": { + "operation-server-interface-capability": { + "operation-name": "/v1/update-operation-key" + }, + "operation-server-interface-configuration": { + "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", + "operation-key": "Operation key not yet provided." + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-s-bm-011", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-s-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-server-interface-1-0:operation-server-interface-pac": { + "operation-server-interface-capability": { + "operation-name": "/v1/update-operation-client" + }, + "operation-server-interface-configuration": { + "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", + "operation-key": "Operation key not yet provided." + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-s-bm-012", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-s-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-server-interface-1-0:operation-server-interface-pac": { + "operation-server-interface-capability": { + "operation-name": "/v1/inquire-basic-auth-approvals" + }, + "operation-server-interface-configuration": { + "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", + "operation-key": "Operation key not yet provided." + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-s-bm-013", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-s-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-server-interface-1-0:operation-server-interface-pac": { + "operation-server-interface-capability": { + "operation-name": "/v1/dispose-remainders-of-deregistered-application" + }, + "operation-server-interface-configuration": { + "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", + "operation-key": "Operation key not yet provided." + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-s-bm-014", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-s-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-server-interface-1-0:operation-server-interface-pac": { + "operation-server-interface-capability": { + "operation-name": "/v1/inform-about-preceding-release" + }, + "operation-server-interface-configuration": { + "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", + "operation-key": "n.a." + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-s-bm-015", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-s-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-server-interface-1-0:operation-server-interface-pac": { + "operation-server-interface-capability": { + "operation-name": "/v1/update-client-of-subsequent-release" + }, + "operation-server-interface-configuration": { + "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", + "operation-key": "Operation key not yet provided." + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-s-im-000", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-s-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-server-interface-1-0:operation-server-interface-pac": { + "operation-server-interface-capability": { + "operation-name": "/v1/bequeath-your-data-and-die" + }, + "operation-server-interface-configuration": { + "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", + "operation-key": "Operation key not yet provided." + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-s-bs-000", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-s-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-server-interface-1-0:operation-server-interface-pac": { + "operation-server-interface-capability": { + "operation-name": "/v1/start-application-in-generic-representation" + }, + "operation-server-interface-configuration": { + "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", + "operation-key": "n.a." + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-s-bs-001", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-s-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-server-interface-1-0:operation-server-interface-pac": { + "operation-server-interface-capability": { + "operation-name": "/v1/inform-about-application" + }, + "operation-server-interface-configuration": { + "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", + "operation-key": "n.a." + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-s-bs-002", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-s-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-server-interface-1-0:operation-server-interface-pac": { + "operation-server-interface-capability": { + "operation-name": "/v1/inform-about-application-in-generic-representation" + }, + "operation-server-interface-configuration": { + "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", + "operation-key": "n.a." + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-s-bs-003", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-s-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-server-interface-1-0:operation-server-interface-pac": { + "operation-server-interface-capability": { + "operation-name": "/v1/inform-about-release-history" + }, + "operation-server-interface-configuration": { + "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", + "operation-key": "n.a." + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-s-bs-004", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-s-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-server-interface-1-0:operation-server-interface-pac": { + "operation-server-interface-capability": { + "operation-name": "/v1/inform-about-release-history-in-generic-representation" + }, + "operation-server-interface-configuration": { + "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", + "operation-key": "n.a." + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-s-bs-005", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-s-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-server-interface-1-0:operation-server-interface-pac": { + "operation-server-interface-capability": { + "operation-name": "/docs" + }, + "operation-server-interface-configuration": { + "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", + "operation-key": "n.a." + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-s-is-001", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-s-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-server-interface-1-0:operation-server-interface-pac": { + "operation-server-interface-capability": { + "operation-name": "/v1/register-application" + }, + "operation-server-interface-configuration": { + "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_DEPRECATED", + "operation-key": "n.a." + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-s-is-002", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-s-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-server-interface-1-0:operation-server-interface-pac": { + "operation-server-interface-capability": { + "operation-name": "/v1/deregister-application" + }, + "operation-server-interface-configuration": { + "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", + "operation-key": "Operation key not yet provided." + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-s-is-003", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-s-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-server-interface-1-0:operation-server-interface-pac": { + "operation-server-interface-capability": { + "operation-name": "/v1/regard-updated-approval-status" + }, + "operation-server-interface-configuration": { + "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", + "operation-key": "Operation key not yet provided." + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-s-is-004", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-s-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-server-interface-1-0:operation-server-interface-pac": { + "operation-server-interface-capability": { + "operation-name": "/v1/list-applications" + }, + "operation-server-interface-configuration": { + "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", + "operation-key": "Operation key not yet provided." + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-s-is-005", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-s-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-server-interface-1-0:operation-server-interface-pac": { + "operation-server-interface-capability": { + "operation-name": "/v1/list-applications-in-generic-representation" + }, + "operation-server-interface-configuration": { + "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", + "operation-key": "n.a." + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-s-is-006", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-s-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-server-interface-1-0:operation-server-interface-pac": { + "operation-server-interface-capability": { + "operation-name": "/v1/inquire-application-type-approvals" + }, + "operation-server-interface-configuration": { + "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", + "operation-key": "Operation key not yet provided." + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-s-is-007", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-s-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-server-interface-1-0:operation-server-interface-pac": { + "operation-server-interface-capability": { + "operation-name": "/v1/notify-deregistrations" + }, + "operation-server-interface-configuration": { + "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_DEPRECATED", + "operation-key": "Operation key not yet provided." + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-s-is-008", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-s-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-server-interface-1-0:operation-server-interface-pac": { + "operation-server-interface-capability": { + "operation-name": "/v1/notify-approvals" + }, + "operation-server-interface-configuration": { + "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_DEPRECATED", + "operation-key": "Operation key not yet provided." + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-s-is-009", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-s-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-server-interface-1-0:operation-server-interface-pac": { + "operation-server-interface-capability": { + "operation-name": "/v1/notify-withdrawn-approvals" + }, + "operation-server-interface-configuration": { + "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_DEPRECATED", + "operation-key": "Operation key not yet provided." + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-s-is-010", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-s-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-server-interface-1-0:operation-server-interface-pac": { + "operation-server-interface-capability": { + "operation-name": "/v1/relay-server-replacement" + }, + "operation-server-interface-configuration": { + "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", + "operation-key": "Operation key not yet provided." + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-s-is-011", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-s-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-server-interface-1-0:operation-server-interface-pac": { + "operation-server-interface-capability": { + "operation-name": "/v1/relay-operation-update" + }, + "operation-server-interface-configuration": { + "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", + "operation-key": "Operation key not yet provided." + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-s-is-012", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-s-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-server-interface-1-0:operation-server-interface-pac": { + "operation-server-interface-capability": { + "operation-name": "/v2/register-application" + }, + "operation-server-interface-configuration": { + "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", + "operation-key": "Operation key not yet provided." + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-s-is-013", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-s-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-server-interface-1-0:operation-server-interface-pac": { + "operation-server-interface-capability": { + "operation-name": "/v1/notify-embedding-status-changes" + }, + "operation-server-interface-configuration": { + "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", + "operation-key": "Operation key not yet provided." + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-http-s-000", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", + "client-ltp": [ + "ro-2-1-0-op-s-bm-000", + "ro-2-1-0-op-s-bm-001", + "ro-2-1-0-op-s-bm-002", + "ro-2-1-0-op-s-bm-003", + "ro-2-1-0-op-s-bm-004", + "ro-2-1-0-op-s-bm-005", + "ro-2-1-0-op-s-bm-007", + "ro-2-1-0-op-s-bm-008", + "ro-2-1-0-op-s-bm-009", + "ro-2-1-0-op-s-bm-010", + "ro-2-1-0-op-s-bm-011", + "ro-2-1-0-op-s-bm-012", + "ro-2-1-0-op-s-bm-013", + "ro-2-1-0-op-s-bm-014", + "ro-2-1-0-op-s-bm-015", + "ro-2-1-0-op-s-im-000", + "ro-2-1-0-op-s-bs-000", + "ro-2-1-0-op-s-bs-001", + "ro-2-1-0-op-s-bs-002", + "ro-2-1-0-op-s-bs-003", + "ro-2-1-0-op-s-bs-004", + "ro-2-1-0-op-s-bs-005", + "ro-2-1-0-op-s-is-001", + "ro-2-1-0-op-s-is-002", + "ro-2-1-0-op-s-is-003", + "ro-2-1-0-op-s-is-004", + "ro-2-1-0-op-s-is-005", + "ro-2-1-0-op-s-is-006", + "ro-2-1-0-op-s-is-007", + "ro-2-1-0-op-s-is-008", + "ro-2-1-0-op-s-is-009", + "ro-2-1-0-op-s-is-010", + "ro-2-1-0-op-s-is-011", + "ro-2-1-0-op-s-is-012", + "ro-2-1-0-op-s-is-013" + ], + "server-ltp": [ + "ro-2-1-0-tcp-s-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "http-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_HTTP_LAYER", + "http-server-interface-1-0:http-server-interface-pac": { + "http-server-interface-capability": { + "application-name": "RegistryOffice", + "release-number": "2.1.0", + "application-purpose": "All applications being part of the MW SDN must register here.", + "data-update-period": "http-server-interface-1-0:DATA_UPDATE_PERIOD_TYPE_REAL_TIME", + "owner-name": "Thorsten Heinze", + "owner-email-address": "Thorsten.Heinze@telefonica.com", + "release-list": [ + { + "local-id": "0", + "release-number": "1.0.0", + "release-date": "04.12.2021", + "changes": "Initial version." + }, + { + "local-id": "1", + "release-number": "2.0.1", + "release-date": "04.12.2022", + "changes": "Update on ApplicationPattern 2.0.1." + }, + { + "local-id": "2", + "release-number": "2.1.1", + "release-date": "25.01.2024", + "changes": "Update on ApplicationPattern 2.1.0 and fixing several findings." + } + ] + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-tcp-s-000", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", + "client-ltp": [ + "ro-2-1-0-http-s-000" + ], + "server-ltp": [], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "tcp-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_TCP_LAYER", + "tcp-server-interface-1-0:tcp-server-interface-pac": { + "tcp-server-interface-configuration": { + "description": "Without TLS layer", + "local-protocol": "tcp-server-interface-1-0:PROTOCOL_TYPE_HTTP", + "local-address": { + "ipv-4-address": "127.0.0.1" + }, + "local-port": 3024 + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-bm-or-2-0-1-000", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-or-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/bequeath-your-data-and-die", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-http-c-or-2-0-1-000", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [ + "ro-2-1-0-op-c-bm-or-2-0-1-000" + ], + "server-ltp": [ + "ro-2-1-0-tcp-c-or-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "http-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_HTTP_LAYER", + "http-client-interface-1-0:http-client-interface-pac": { + "http-client-interface-configuration": { + "application-name": "RegistryOffice", + "release-number": "2.0.1" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-tcp-c-or-2-0-1-000", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [ + "ro-2-1-0-http-c-or-2-0-1-000" + ], + "server-ltp": [], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "tcp-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_TCP_LAYER", + "tcp-client-interface-1-0:tcp-client-interface-pac": { + "tcp-client-interface-configuration": { + "remote-protocol": "tcp-client-interface-1-0:PROTOCOL_TYPE_HTTP", + "remote-address": { + "ip-address": { + "ipv-4-address": "127.0.0.1" + } + }, + "remote-port": 3008 + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-nr-2-1-0-002", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-nr-2-1-0-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/inquire-application-type-approvals", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-nr-2-1-0-005", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-nr-2-1-0-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v2/register-application", + "operation-key": "n.a." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-nr-2-1-0-006", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-nr-2-1-0-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/notify-embedding-status-changes", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-http-c-nr-2-1-0-000", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [ + "ro-2-1-0-op-c-im-nr-2-1-0-002", + "ro-2-1-0-op-c-im-nr-2-1-0-005", + "ro-2-1-0-op-c-im-nr-2-1-0-006" + ], + "server-ltp": [ + "ro-2-1-0-tcp-c-nr-2-1-0-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "http-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_HTTP_LAYER", + "http-client-interface-1-0:http-client-interface-pac": { + "http-client-interface-configuration": { + "application-name": "NewRelease", + "release-number": "2.1.0" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-tcp-c-nr-2-1-0-000", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [ + "ro-2-1-0-http-c-nr-2-1-0-000" + ], + "server-ltp": [], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "tcp-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_TCP_LAYER", + "tcp-client-interface-1-0:tcp-client-interface-pac": { + "tcp-client-interface-configuration": { + "remote-protocol": "tcp-client-interface-1-0:PROTOCOL_TYPE_HTTP", + "remote-address": { + "ip-address": { + "ipv-4-address": "127.0.0.1" + } + }, + "remote-port": 3024 + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-bm-ro-2-0-1-000", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-ro-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/register-application", + "operation-key": "n.a." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-bm-ro-2-0-1-001", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-ro-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/relay-server-replacement", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-bm-ro-2-0-1-002", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-ro-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/deregister-application", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-bm-ro-2-0-1-003", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-ro-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/relay-operation-update", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-ro-2-0-1-000", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-ro-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/embed-yourself", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-ro-2-0-1-001", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-ro-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/update-client", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-ro-2-0-1-002", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-ro-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/update-operation-client", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-ro-2-0-1-006", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-ro-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/dispose-remainders-of-deregistered-application", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-ro-2-0-1-008", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-ro-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/inform-about-preceding-release", + "operation-key": "n.a." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-ro-2-0-1-009", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-ro-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/update-client-of-subsequent-release", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-http-c-ro-2-0-1-000", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [ + "ro-2-1-0-op-c-bm-ro-2-0-1-000", + "ro-2-1-0-op-c-bm-ro-2-0-1-001", + "ro-2-1-0-op-c-bm-ro-2-0-1-002", + "ro-2-1-0-op-c-bm-ro-2-0-1-003", + "ro-2-1-0-op-c-im-ro-2-0-1-000", + "ro-2-1-0-op-c-im-ro-2-0-1-001", + "ro-2-1-0-op-c-im-ro-2-0-1-002", + "ro-2-1-0-op-c-im-ro-2-0-1-006", + "ro-2-1-0-op-c-im-ro-2-0-1-008", + "ro-2-1-0-op-c-im-ro-2-0-1-009" + ], + "server-ltp": [ + "ro-2-1-0-tcp-c-ro-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "http-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_HTTP_LAYER", + "http-client-interface-1-0:http-client-interface-pac": { + "http-client-interface-configuration": { + "application-name": "RegistryOffice", + "release-number": "2.0.1" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-tcp-c-ro-2-0-1-000", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [ + "ro-2-1-0-http-c-ro-2-0-1-000" + ], + "server-ltp": [], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "tcp-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_TCP_LAYER", + "tcp-client-interface-1-0:tcp-client-interface-pac": { + "tcp-client-interface-configuration": { + "remote-protocol": "tcp-client-interface-1-0:PROTOCOL_TYPE_HTTP", + "remote-address": { + "ip-address": { + "ipv-4-address": "127.0.0.1" + } + }, + "remote-port": 3008 + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-tar-2-0-1-000", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-tar-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/embed-yourself", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-tar-2-0-1-001", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-tar-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/update-client", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-tar-2-0-1-002", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-tar-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/update-operation-client", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-tar-2-0-1-003", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-tar-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/regard-application", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-tar-2-0-1-004", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-tar-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/disregard-application", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-tar-2-0-1-005", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-tar-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/redirect-info-about-approval-status-changes", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-tar-2-0-1-006", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-tar-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/dispose-remainders-of-deregistered-application", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-tar-2-0-1-007", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-tar-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/document-embedding-status", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-tar-2-0-1-008", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-tar-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/inform-about-preceding-release", + "operation-key": "n.a." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-tar-2-0-1-009", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-tar-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/update-client-of-subsequent-release", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-http-c-tar-2-0-1-000", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [ + "ro-2-1-0-op-c-im-tar-2-0-1-000", + "ro-2-1-0-op-c-im-tar-2-0-1-001", + "ro-2-1-0-op-c-im-tar-2-0-1-002", + "ro-2-1-0-op-c-im-tar-2-0-1-003", + "ro-2-1-0-op-c-im-tar-2-0-1-004", + "ro-2-1-0-op-c-im-tar-2-0-1-005", + "ro-2-1-0-op-c-im-tar-2-0-1-006", + "ro-2-1-0-op-c-im-tar-2-0-1-007", + "ro-2-1-0-op-c-im-tar-2-0-1-008", + "ro-2-1-0-op-c-im-tar-2-0-1-009" + ], + "server-ltp": [ + "ro-2-1-0-tcp-c-tar-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "http-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_HTTP_LAYER", + "http-client-interface-1-0:http-client-interface-pac": { + "http-client-interface-configuration": { + "application-name": "TypeApprovalRegister", + "release-number": "2.0.1" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-tcp-c-tar-2-0-1-000", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [ + "ro-2-1-0-http-c-tar-2-0-1-000" + ], + "server-ltp": [], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "tcp-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_TCP_LAYER", + "tcp-client-interface-1-0:tcp-client-interface-pac": { + "tcp-client-interface-configuration": { + "remote-protocol": "tcp-client-interface-1-0:PROTOCOL_TYPE_HTTP", + "remote-address": { + "ip-address": { + "ipv-4-address": "127.0.0.1" + } + }, + "remote-port": 3009 + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-bs-eatl-2-0-1-000", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-eatl-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/record-service-request", + "operation-key": "Operation key not yet provided.", + "detailed-logging-is-on": false + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-eatl-2-0-1-000", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-eatl-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/embed-yourself", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-eatl-2-0-1-001", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-eatl-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/update-client", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-eatl-2-0-1-002", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-eatl-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/update-operation-client", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-eatl-2-0-1-003", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-eatl-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/regard-application", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-eatl-2-0-1-004", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-eatl-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/disregard-application", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-eatl-2-0-1-006", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-eatl-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/dispose-remainders-of-deregistered-application", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-eatl-2-0-1-008", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-eatl-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/inform-about-preceding-release", + "operation-key": "n.a." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-eatl-2-0-1-009", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-eatl-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/update-client-of-subsequent-release", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-http-c-eatl-2-0-1-000", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [ + "ro-2-1-0-op-c-bs-eatl-2-0-1-000", + "ro-2-1-0-op-c-im-eatl-2-0-1-000", + "ro-2-1-0-op-c-im-eatl-2-0-1-001", + "ro-2-1-0-op-c-im-eatl-2-0-1-002", + "ro-2-1-0-op-c-im-eatl-2-0-1-003", + "ro-2-1-0-op-c-im-eatl-2-0-1-004", + "ro-2-1-0-op-c-im-eatl-2-0-1-006", + "ro-2-1-0-op-c-im-eatl-2-0-1-008", + "ro-2-1-0-op-c-im-eatl-2-0-1-009" + ], + "server-ltp": [ + "ro-2-1-0-tcp-c-eatl-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "http-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_HTTP_LAYER", + "http-client-interface-1-0:http-client-interface-pac": { + "http-client-interface-configuration": { + "application-name": "ExecutionAndTraceLog", + "release-number": "2.0.1" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-tcp-c-eatl-2-0-1-000", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [ + "ro-2-1-0-http-c-eatl-2-0-1-000" + ], + "server-ltp": [], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "tcp-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_TCP_LAYER", + "tcp-client-interface-1-0:tcp-client-interface-pac": { + "tcp-client-interface-configuration": { + "remote-protocol": "tcp-client-interface-1-0:PROTOCOL_TYPE_HTTP", + "remote-address": { + "ip-address": { + "ipv-4-address": "127.0.0.1" + } + }, + "remote-port": 3010 + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-bs-ol-2-0-1-000", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-ol-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/record-oam-request", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-ol-2-0-1-000", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-ol-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/embed-yourself", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-ol-2-0-1-001", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-ol-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/update-client", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-ol-2-0-1-002", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-ol-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/update-operation-client", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-ol-2-0-1-003", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-ol-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/regard-application", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-ol-2-0-1-004", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-ol-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/disregard-application", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-ol-2-0-1-006", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-ol-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/dispose-remainders-of-deregistered-application", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-ol-2-0-1-008", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-ol-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/inform-about-preceding-release", + "operation-key": "n.a." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-ol-2-0-1-009", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-ol-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/update-client-of-subsequent-release", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-http-c-ol-2-0-1-000", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [ + "ro-2-1-0-op-c-bs-ol-2-0-1-000", + "ro-2-1-0-op-c-im-ol-2-0-1-000", + "ro-2-1-0-op-c-im-ol-2-0-1-001", + "ro-2-1-0-op-c-im-ol-2-0-1-002", + "ro-2-1-0-op-c-im-ol-2-0-1-003", + "ro-2-1-0-op-c-im-ol-2-0-1-004", + "ro-2-1-0-op-c-im-ol-2-0-1-006", + "ro-2-1-0-op-c-im-ol-2-0-1-008", + "ro-2-1-0-op-c-im-ol-2-0-1-009" + ], + "server-ltp": [ + "ro-2-1-0-tcp-c-ol-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "http-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_HTTP_LAYER", + "http-client-interface-1-0:http-client-interface-pac": { + "http-client-interface-configuration": { + "application-name": "OamLog", + "release-number": "2.0.1" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-tcp-c-ol-2-0-1-000", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [ + "ro-2-1-0-http-c-ol-2-0-1-000" + ], + "server-ltp": [], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "tcp-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_TCP_LAYER", + "tcp-client-interface-1-0:tcp-client-interface-pac": { + "tcp-client-interface-configuration": { + "remote-protocol": "tcp-client-interface-1-0:PROTOCOL_TYPE_HTTP", + "remote-address": { + "ip-address": { + "ipv-4-address": "127.0.0.1" + } + }, + "remote-port": 3011 + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-bs-aa-2-0-1-000", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-aa-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/approve-oam-request", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-aa-2-0-1-000", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-aa-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/embed-yourself", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-aa-2-0-1-001", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-aa-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/update-client", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-aa-2-0-1-002", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-aa-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/update-operation-client", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-aa-2-0-1-003", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-aa-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/regard-application", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-aa-2-0-1-004", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-aa-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/disregard-application", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-aa-2-0-1-006", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-aa-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/dispose-remainders-of-deregistered-application", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-aa-2-0-1-008", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-aa-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/inform-about-preceding-release", + "operation-key": "n.a." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-aa-2-0-1-009", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-aa-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/update-client-of-subsequent-release", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-http-c-aa-2-0-1-000", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [ + "ro-2-1-0-op-c-bs-aa-2-0-1-000", + "ro-2-1-0-op-c-im-aa-2-0-1-000", + "ro-2-1-0-op-c-im-aa-2-0-1-001", + "ro-2-1-0-op-c-im-aa-2-0-1-002", + "ro-2-1-0-op-c-im-aa-2-0-1-003", + "ro-2-1-0-op-c-im-aa-2-0-1-004", + "ro-2-1-0-op-c-im-aa-2-0-1-006", + "ro-2-1-0-op-c-im-aa-2-0-1-008", + "ro-2-1-0-op-c-im-aa-2-0-1-009" + ], + "server-ltp": [ + "ro-2-1-0-tcp-c-aa-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "http-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_HTTP_LAYER", + "http-client-interface-1-0:http-client-interface-pac": { + "http-client-interface-configuration": { + "application-name": "AdministratorAdministration", + "release-number": "2.0.1" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-tcp-c-aa-2-0-1-000", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [ + "ro-2-1-0-http-c-aa-2-0-1-000" + ], + "server-ltp": [], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "tcp-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_TCP_LAYER", + "tcp-client-interface-1-0:tcp-client-interface-pac": { + "tcp-client-interface-configuration": { + "remote-protocol": "tcp-client-interface-1-0:PROTOCOL_TYPE_HTTP", + "remote-address": { + "ip-address": { + "ipv-4-address": "127.0.0.1" + } + }, + "remote-port": 3012 + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-bm-alt-2-0-1-000", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-alt-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/update-all-ltps-and-fcs", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-bm-alt-2-0-1-001", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-alt-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/update-ltp", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-bm-alt-2-0-1-002", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-alt-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/delete-ltp-and-dependents", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-bm-alt-2-0-1-003", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-alt-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/update-fc", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-bm-alt-2-0-1-004", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-alt-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/update-fc-port", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-bm-alt-2-0-1-005", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-alt-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/delete-fc-port", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-alt-2-0-1-000", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-alt-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/embed-yourself", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-alt-2-0-1-001", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-alt-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/update-client", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-alt-2-0-1-002", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-alt-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/update-operation-client", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-alt-2-0-1-003", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-alt-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/regard-application", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-alt-2-0-1-004", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-alt-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/disregard-application", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-alt-2-0-1-006", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-alt-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/dispose-remainders-of-deregistered-application", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-alt-2-0-1-008", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-alt-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/inform-about-preceding-release", + "operation-key": "n.a." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-alt-2-0-1-009", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-alt-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/update-client-of-subsequent-release", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-is-alt-2-0-1-000", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-alt-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/add-operation-client-to-link", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-http-c-alt-2-0-1-000", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [ + "ro-2-1-0-op-c-bm-alt-2-0-1-000", + "ro-2-1-0-op-c-bm-alt-2-0-1-001", + "ro-2-1-0-op-c-bm-alt-2-0-1-002", + "ro-2-1-0-op-c-bm-alt-2-0-1-003", + "ro-2-1-0-op-c-bm-alt-2-0-1-004", + "ro-2-1-0-op-c-bm-alt-2-0-1-005", + "ro-2-1-0-op-c-im-alt-2-0-1-000", + "ro-2-1-0-op-c-im-alt-2-0-1-001", + "ro-2-1-0-op-c-im-alt-2-0-1-002", + "ro-2-1-0-op-c-im-alt-2-0-1-003", + "ro-2-1-0-op-c-im-alt-2-0-1-004", + "ro-2-1-0-op-c-im-alt-2-0-1-006", + "ro-2-1-0-op-c-im-alt-2-0-1-008", + "ro-2-1-0-op-c-im-alt-2-0-1-009", + "ro-2-1-0-op-c-is-alt-2-0-1-000" + ], + "server-ltp": [ + "ro-2-1-0-tcp-c-alt-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "http-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_HTTP_LAYER", + "http-client-interface-1-0:http-client-interface-pac": { + "http-client-interface-configuration": { + "application-name": "ApplicationLayerTopology", + "release-number": "2.0.1" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-tcp-c-alt-2-0-1-000", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [ + "ro-2-1-0-http-c-alt-2-0-1-000" + ], + "server-ltp": [], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "tcp-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_TCP_LAYER", + "tcp-client-interface-1-0:tcp-client-interface-pac": { + "tcp-client-interface-configuration": { + "remote-protocol": "tcp-client-interface-1-0:PROTOCOL_TYPE_HTTP", + "remote-address": { + "ip-address": { + "ipv-4-address": "127.0.0.1" + } + }, + "remote-port": 3013 + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-okm-2-0-1-000", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-okm-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/embed-yourself", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-okm-2-0-1-001", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-okm-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/update-client", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-okm-2-0-1-002", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-okm-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/update-operation-client", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-okm-2-0-1-003", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-okm-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/regard-application", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-okm-2-0-1-004", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-okm-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/disregard-application", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-okm-2-0-1-006", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-okm-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/dispose-remainders-of-deregistered-application", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-okm-2-0-1-008", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-okm-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/inform-about-preceding-release", + "operation-key": "n.a." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-op-c-im-okm-2-0-1-009", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [], + "server-ltp": [ + "ro-2-1-0-http-c-okm-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", + "operation-client-interface-1-0:operation-client-interface-pac": { + "operation-client-interface-configuration": { + "operation-name": "/v1/update-client-of-subsequent-release", + "operation-key": "Operation key not yet provided." + }, + "operation-client-interface-status": { + "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-http-c-okm-2-0-1-000", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [ + "ro-2-1-0-op-c-im-okm-2-0-1-000", + "ro-2-1-0-op-c-im-okm-2-0-1-001", + "ro-2-1-0-op-c-im-okm-2-0-1-002", + "ro-2-1-0-op-c-im-okm-2-0-1-003", + "ro-2-1-0-op-c-im-okm-2-0-1-004", + "ro-2-1-0-op-c-im-okm-2-0-1-006", + "ro-2-1-0-op-c-im-okm-2-0-1-008", + "ro-2-1-0-op-c-im-okm-2-0-1-009" + ], + "server-ltp": [ + "ro-2-1-0-tcp-c-okm-2-0-1-000" + ], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "http-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_HTTP_LAYER", + "http-client-interface-1-0:http-client-interface-pac": { + "http-client-interface-configuration": { + "application-name": "OperationKeyManagement", + "release-number": "2.0.1" + } + } + } + ] + }, + { + "uuid": "ro-2-1-0-tcp-c-okm-2-0-1-000", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "client-ltp": [ + "ro-2-1-0-http-c-okm-2-0-1-000" + ], + "server-ltp": [], + "layer-protocol": [ + { + "local-id": "0", + "layer-protocol-name": "tcp-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_TCP_LAYER", + "tcp-client-interface-1-0:tcp-client-interface-pac": { + "tcp-client-interface-configuration": { + "remote-protocol": "tcp-client-interface-1-0:PROTOCOL_TYPE_HTTP", + "remote-address": { + "ip-address": { + "ipv-4-address": "127.0.0.1" + } + }, + "remote-port": 3014 + } + } + } + ] + } + ], + "forwarding-domain": [ + { + "uuid": "ro-2-1-0-op-fd-000", + "forwarding-construct": [ + { + "uuid": "ro-2-1-0-op-fc-bm-999", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" + }, + { + "value-name": "ForwardingName", + "value": "PromptForRegisteringCausesRegistrationRequest" + } + ], + "fc-port": [ + { + "local-id": "000", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-bm-000" + }, + { + "local-id": "100", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-bm-000" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-bm-ro-2-0-1-000" + } + ] + }, + { + "uuid": "ro-2-1-0-op-fc-bm-000", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" + }, + { + "value-name": "ForwardingName", + "value": "PromptForRegisteringCausesRegistrationRequest2" + } + ], + "fc-port": [ + { + "local-id": "000", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-bm-000" + }, + { + "local-id": "100", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-bm-000" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-bm-ro-2-0-1-000" + } + ] + }, + { + "uuid": "ro-2-1-0-op-fc-bm-001", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" + }, + { + "value-name": "ForwardingName", + "value": "PromptForEmbeddingCausesRequestForBequeathingData" + } + ], + "fc-port": [ + { + "local-id": "100", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-bm-001" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-bm-or-2-0-1-000" + } + ] + }, + { + "uuid": "ro-2-1-0-op-fc-bm-002", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" + }, + { + "value-name": "ForwardingName", + "value": "ServiceRequestCausesLoggingRequest" + } + ], + "fc-port": [ + { + "local-id": "000", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-bm-002" + }, + { + "local-id": "100", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-bm-000" + }, + { + "local-id": "101", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-bm-001" + }, + { + "local-id": "102", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-bm-002" + }, + { + "local-id": "103", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-bm-003" + }, + { + "local-id": "104", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-bm-004" + }, + { + "local-id": "105", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-bm-005" + }, + { + "local-id": "107", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-bm-007" + }, + { + "local-id": "108", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-bm-008" + }, + { + "local-id": "109", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-bm-009" + }, + { + "local-id": "110", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-bm-010" + }, + { + "local-id": "111", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-bm-011" + }, + { + "local-id": "112", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-bm-012" + }, + { + "local-id": "113", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-bm-013" + }, + { + "local-id": "114", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-bm-014" + }, + { + "local-id": "115", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-bm-015" + }, + { + "local-id": "130", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-im-000" + }, + { + "local-id": "150", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-bs-000" + }, + { + "local-id": "151", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-bs-001" + }, + { + "local-id": "152", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-bs-002" + }, + { + "local-id": "153", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-bs-003" + }, + { + "local-id": "154", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-bs-004" + }, + { + "local-id": "155", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-bs-005" + }, + { + "local-id": "170", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-001" + }, + { + "local-id": "171", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-002" + }, + { + "local-id": "172", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-003" + }, + { + "local-id": "173", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-004" + }, + { + "local-id": "174", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-005" + }, + { + "local-id": "175", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-006" + }, + { + "local-id": "176", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-007" + }, + { + "local-id": "177", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-008" + }, + { + "local-id": "178", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-009" + }, + { + "local-id": "179", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-010" + }, + { + "local-id": "180", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-011" + }, + { + "local-id": "181", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-012" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-bs-eatl-2-0-1-000" + } + ] + }, + { + "uuid": "ro-2-1-0-op-fc-bm-003", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" + }, + { + "value-name": "ForwardingName", + "value": "OamRequestCausesLoggingRequest" + } + ], + "fc-port": [ + { + "local-id": "000", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-bm-003" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-bs-ol-2-0-1-000" + } + ] + }, + { + "uuid": "ro-2-1-0-op-fc-bm-005", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" + }, + { + "value-name": "ForwardingName", + "value": "BasicAuthRequestCausesInquiryForAuthentication" + } + ], + "fc-port": [ + { + "local-id": "000", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-bm-012" + }, + { + "local-id": "001", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-bm-005" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-bs-aa-2-0-1-000" + } + ] + }, + { + "uuid": "ro-2-1-0-op-fc-im-110", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" + }, + { + "value-name": "ForwardingName", + "value": "PromptForBequeathingDataCausesNewApplicationBeingRequestedToInquireForApplicationTypeApprovals" + } + ], + "fc-port": [ + { + "local-id": "100", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-im-000" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-nr-2-1-0-002" + } + ] + }, + { + "uuid": "ro-2-1-0-op-fc-im-112", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" + }, + { + "value-name": "ForwardingName", + "value": "PromptForBequeathingDataCausesTransferOfListOfAlreadyRegisteredApplications" + } + ], + "fc-port": [ + { + "local-id": "100", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-im-000" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-nr-2-1-0-005" + } + ] + }, + { + "uuid": "ro-2-1-0-op-fc-im-113", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" + }, + { + "value-name": "ForwardingName", + "value": "PromptForBequeathingDataCausesTransferOfListOfSubscriptionsForEmbeddingStatusChanges" + } + ], + "fc-port": [ + { + "local-id": "100", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-im-000" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-nr-2-1-0-006" + } + ] + }, + { + "uuid": "ro-2-1-0-op-fc-im-115", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" + }, + { + "value-name": "ForwardingName", + "value": "PromptForBequeathingDataCausesTARbeingRequestedToRedirectInfoAboutApprovalsToNewApplication" + } + ], + "fc-port": [ + { + "local-id": "100", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-im-000" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-tar-2-0-1-005" + } + ] + }, + { + "uuid": "ro-2-1-0-op-fc-bm-105", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" + }, + { + "value-name": "ForwardingName", + "value": "PromptForBequeathingDataCausesRequestForBroadcastingInfoAboutServerReplacement" + } + ], + "fc-port": [ + { + "local-id": "000", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-bm-001" + }, + { + "local-id": "100", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-im-000" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-bm-ro-2-0-1-001" + } + ] + }, + { + "uuid": "ro-2-1-0-op-fc-bm-106", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" + }, + { + "value-name": "ForwardingName", + "value": "PromptForBequeathingDataCausesRequestForDeregisteringOfOldRelease" + } + ], + "fc-port": [ + { + "local-id": "000", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-bm-001" + }, + { + "local-id": "100", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-im-000" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-bm-ro-2-0-1-002" + } + ] + }, + { + "uuid": "ro-2-1-0-op-fc-bm-107", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" + }, + { + "value-name": "ForwardingName", + "value": "PromptingNewReleaseForUpdatingServerCausesRequestForBroadcastingInfoAboutBackwardCompatibleUpdateOfOperation" + } + ], + "fc-port": [ + { + "local-id": "000", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-bm-001" + }, + { + "local-id": "100", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-bm-007" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-bm-ro-2-0-1-003" + } + ] + }, + { + "uuid": "ro-2-1-0-op-fc-bm-006", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" + }, + { + "value-name": "ForwardingName", + "value": "ServiceRequestCausesLtpUpdateRequest" + } + ], + "fc-port": [ + { + "local-id": "000", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-bm-009" + }, + { + "local-id": "100", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-bm-000" + }, + { + "local-id": "101", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-bm-001" + }, + { + "local-id": "102", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-bm-002" + }, + { + "local-id": "103", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-bm-003" + }, + { + "local-id": "105", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-bm-005" + }, + { + "local-id": "107", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-bm-007" + }, + { + "local-id": "109", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-bm-009" + }, + { + "local-id": "111", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-bm-011" + }, + { + "local-id": "112", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-bm-012" + }, + { + "local-id": "115", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-bm-015" + }, + { + "local-id": "130", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-im-000" + }, + { + "local-id": "141", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-001" + }, + { + "local-id": "146", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-006" + }, + { + "local-id": "147", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-007" + }, + { + "local-id": "148", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-008" + }, + { + "local-id": "149", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-009" + }, + { + "local-id": "150", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-010" + }, + { + "local-id": "152", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-012" + }, + { + "local-id": "153", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-013" + }, + { + "local-id": "154", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-003" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-bm-alt-2-0-1-001" + } + ] + }, + { + "uuid": "ro-2-1-0-op-fc-bm-007", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" + }, + { + "value-name": "ForwardingName", + "value": "ServiceRequestCausesLtpDeletionRequest" + } + ], + "fc-port": [ + { + "local-id": "000", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-bm-009" + }, + { + "local-id": "100", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-bm-013" + }, + { + "local-id": "100", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-002" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-bm-alt-2-0-1-002" + } + ] + }, + { + "uuid": "ro-2-1-0-op-fc-bm-008", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" + }, + { + "value-name": "ForwardingName", + "value": "ServiceRequestCausesFcUpdateRequest" + } + ], + "fc-port": [ + { + "local-id": "000", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-bm-009" + }, + { + "local-id": "110", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-001" + }, + { + "local-id": "111", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-003" + }, + { + "local-id": "112", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-007" + }, + { + "local-id": "113", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-008" + }, + { + "local-id": "114", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-009" + }, + { + "local-id": "115", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-012" + }, + { + "local-id": "115", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-013" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-bm-alt-2-0-1-003" + } + ] + }, + { + "uuid": "ro-2-1-0-op-fc-bm-009", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" + }, + { + "value-name": "ForwardingName", + "value": "ServiceRequestCausesFcPortUpdateRequest" + } + ], + "fc-port": [ + { + "local-id": "000", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-bm-009" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-bm-alt-2-0-1-004" + } + ] + }, + { + "uuid": "ro-2-1-0-op-fc-bm-010", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" + }, + { + "value-name": "ForwardingName", + "value": "ServiceRequestCausesFcPortDeletionRequest" + } + ], + "fc-port": [ + { + "local-id": "000", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-bm-009" + }, + { + "local-id": "100", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-bm-004" + }, + { + "local-id": "101", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-003" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-bm-alt-2-0-1-005" + } + ] + }, + { + "uuid": "ro-2-1-0-op-fc-bm-011", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" + }, + { + "value-name": "ForwardingName", + "value": "OamRequestCausesLtpUpdateRequest" + } + ], + "fc-port": [ + { + "local-id": "000", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-bm-009" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-bm-alt-2-0-1-001" + } + ] + }, + { + "uuid": "ro-2-1-0-op-fc-bm-012", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" + }, + { + "value-name": "ForwardingName", + "value": "OamRequestCausesLtpDeletionRequest" + } + ], + "fc-port": [ + { + "local-id": "000", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-bm-009" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-bm-alt-2-0-1-002" + } + ] + }, + { + "uuid": "ro-2-1-0-op-fc-bm-013", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" + }, + { + "value-name": "ForwardingName", + "value": "OamRequestCausesFcUpdateRequest" + } + ], + "fc-port": [ + { + "local-id": "000", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-bm-009" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-bm-alt-2-0-1-003" + } + ] + }, + { + "uuid": "ro-2-1-0-op-fc-bm-014", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" + }, + { + "value-name": "ForwardingName", + "value": "OamRequestCausesFcPortUpdateRequest" + } + ], + "fc-port": [ + { + "local-id": "000", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-bm-009" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-bm-alt-2-0-1-004" + } + ] + }, + { + "uuid": "ro-2-1-0-op-fc-bm-015", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" + }, + { + "value-name": "ForwardingName", + "value": "OamRequestCausesFcPortDeletionRequest" + } + ], + "fc-port": [ + { + "local-id": "000", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-bm-009" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-bm-alt-2-0-1-005" + } + ] + }, + { + "uuid": "ro-2-1-0-op-fc-is-005", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" + }, + { + "value-name": "ForwardingName", + "value": "RegistrationCausesInquiryForApplicationTypeApproval" + } + ], + "fc-port": [ + { + "local-id": "000", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-is-006" + }, + { + "local-id": "100", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-001" + }, + { + "local-id": "101", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-012" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-tar-2-0-1-003" + } + ] + }, + { + "uuid": "ro-2-1-0-op-fc-is-010", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_SUBSCRIPTION" + }, + { + "value-name": "ForwardingName", + "value": "EmbeddingStatusNotification" + } + ], + "fc-port": [ + { + "local-id": "000", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-is-013" + }, + { + "local-id": "001", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-bm-004" + }, + { + "local-id": "003", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-bm-013" + }, + { + "local-id": "100", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-003" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-tar-2-0-1-007" + } + ] + }, + { + "uuid": "ro-2-1-0-op-fc-is-006", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_SUBSCRIPTION" + }, + { + "value-name": "ForwardingName", + "value": "DeregistrationNotification" + } + ], + "fc-port": [ + { + "local-id": "000", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-is-007" + }, + { + "local-id": "001", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-bm-004" + }, + { + "local-id": "100", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-002" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-tar-2-0-1-004" + }, + { + "local-id": "201", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-eatl-2-0-1-004" + }, + { + "local-id": "202", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-ol-2-0-1-004" + }, + { + "local-id": "203", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-aa-2-0-1-004" + }, + { + "local-id": "204", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-alt-2-0-1-004" + }, + { + "local-id": "205", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-okm-2-0-1-004" + } + ] + }, + { + "uuid": "ro-2-1-0-op-fc-is-008", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_SUBSCRIPTION" + }, + { + "value-name": "ForwardingName", + "value": "WithdrawnApprovalNotification" + } + ], + "fc-port": [ + { + "local-id": "000", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-is-009" + }, + { + "local-id": "001", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-bm-004" + }, + { + "local-id": "100", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-003" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-eatl-2-0-1-004" + }, + { + "local-id": "201", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-ol-2-0-1-004" + }, + { + "local-id": "202", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-aa-2-0-1-004" + }, + { + "local-id": "203", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-alt-2-0-1-004" + }, + { + "local-id": "204", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-okm-2-0-1-004" + } + ] + }, + { + "uuid": "ro-2-1-0-op-fc-is-021", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_SUBSCRIPTION" + }, + { + "value-name": "ForwardingName", + "value": "DeRegistrationBroadcast" + } + ], + "fc-port": [ + { + "local-id": "000", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-is-001" + }, + { + "local-id": "001", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-is-012" + }, + { + "local-id": "002", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-is-003" + }, + { + "local-id": "003", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-bm-013" + }, + { + "local-id": "100", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-002" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-ro-2-0-1-006" + }, + { + "local-id": "201", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-tar-2-0-1-006" + }, + { + "local-id": "202", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-eatl-2-0-1-006" + }, + { + "local-id": "203", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-ol-2-0-1-006" + }, + { + "local-id": "204", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-aa-2-0-1-006" + }, + { + "local-id": "205", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-alt-2-0-1-006" + }, + { + "local-id": "206", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-okm-2-0-1-006" + } + ] + }, + { + "uuid": "ro-2-1-0-op-fc-is-022", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_SUBSCRIPTION" + }, + { + "value-name": "ForwardingName", + "value": "ServerReplacementBroadcast" + } + ], + "fc-port": [ + { + "local-id": "000", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-is-001" + }, + { + "local-id": "001", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-is-012" + }, + { + "local-id": "002", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-is-003" + }, + { + "local-id": "003", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-bm-013" + }, + { + "local-id": "100", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-010" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-ro-2-0-1-001" + }, + { + "local-id": "201", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-tar-2-0-1-001" + }, + { + "local-id": "202", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-eatl-2-0-1-001" + }, + { + "local-id": "203", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-ol-2-0-1-001" + }, + { + "local-id": "204", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-aa-2-0-1-001" + }, + { + "local-id": "205", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-alt-2-0-1-001" + }, + { + "local-id": "206", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-okm-2-0-1-001" + } + ] + }, + { + "uuid": "ro-2-1-0-op-fc-is-023", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_SUBSCRIPTION" + }, + { + "value-name": "ForwardingName", + "value": "OperationUpdateBroadcast" + } + ], + "fc-port": [ + { + "local-id": "000", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-is-001" + }, + { + "local-id": "001", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-is-012" + }, + { + "local-id": "002", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-is-003" + }, + { + "local-id": "003", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-bm-013" + }, + { + "local-id": "100", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-011" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-ro-2-0-1-002" + }, + { + "local-id": "201", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-tar-2-0-1-002" + }, + { + "local-id": "202", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-eatl-2-0-1-002" + }, + { + "local-id": "203", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-ol-2-0-1-002" + }, + { + "local-id": "204", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-aa-2-0-1-002" + }, + { + "local-id": "205", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-alt-2-0-1-002" + }, + { + "local-id": "206", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-okm-2-0-1-002" + } + ] + }, + { + "uuid": "ro-2-1-0-op-fc-is-030", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" + }, + { + "value-name": "ForwardingName", + "value": "BarringApplicationCausesDeregisteringOfApplication" + } + ], + "fc-port": [ + { + "local-id": "100", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-003" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-bm-ro-2-0-1-002" + } + ] + }, + { + "uuid": "ro-2-1-0-op-fc-is-035", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" + }, + { + "value-name": "ForwardingName", + "value": "ApprovingApplicationCausesConnectingWith.Alt" + } + ], + "fc-port": [ + { + "local-id": "100", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-003" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-alt-2-0-1-003" + } + ] + }, + { + "uuid": "ro-2-1-0-op-fc-is-036", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" + }, + { + "value-name": "ForwardingName", + "value": "ApprovingApplicationCausesConnectingWith.Okm" + } + ], + "fc-port": [ + { + "local-id": "100", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-003" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-okm-2-0-1-003" + } + ] + }, + { + "uuid": "ro-2-1-0-op-fc-is-037", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" + }, + { + "value-name": "ForwardingName", + "value": "ApprovingApplicationCausesConnectingWith.Eatl" + } + ], + "fc-port": [ + { + "local-id": "100", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-003" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-eatl-2-0-1-003" + } + ] + }, + { + "uuid": "ro-2-1-0-op-fc-is-038", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" + }, + { + "value-name": "ForwardingName", + "value": "ApprovingApplicationCausesConnectingWith.Aa" + } + ], + "fc-port": [ + { + "local-id": "100", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-003" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-aa-2-0-1-003" + } + ] + }, + { + "uuid": "ro-2-1-0-op-fc-is-039", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" + }, + { + "value-name": "ForwardingName", + "value": "ApprovingApplicationCausesConnectingWith.Ol" + } + ], + "fc-port": [ + { + "local-id": "100", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-003" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-ol-2-0-1-003" + } + ] + }, + { + "uuid": "ro-2-1-0-op-fc-is-040", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_SUBSCRIPTION" + }, + { + "value-name": "ForwardingName", + "value": "ApprovalNotification" + } + ], + "fc-port": [ + { + "local-id": "000", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-is-008" + }, + { + "local-id": "001", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-bm-004" + }, + { + "local-id": "100", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-003" + } + ] + }, + { + "uuid": "ro-2-1-0-op-fc-is-042", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_PROCESS_SNIPPET" + }, + { + "value-name": "ForwardingName", + "value": "ApprovingApplicationCausesPreparingTheEmbedding.RequestForOldRelease" + } + ], + "fc-port": [ + { + "local-id": "000", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-is-001" + }, + { + "local-id": "001", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-is-012" + }, + { + "local-id": "002", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-is-013" + }, + { + "local-id": "100", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-003" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-ro-2-0-1-008" + }, + { + "local-id": "201", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-tar-2-0-1-008" + }, + { + "local-id": "202", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-eatl-2-0-1-008" + }, + { + "local-id": "203", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-ol-2-0-1-008" + }, + { + "local-id": "204", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-aa-2-0-1-008" + }, + { + "local-id": "205", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-alt-2-0-1-008" + }, + { + "local-id": "206", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-okm-2-0-1-008" + } + ] + }, + { + "uuid": "ro-2-1-0-op-fc-is-043", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" + }, + { + "value-name": "ForwardingName", + "value": "ApprovingApplicationCausesPreparingTheEmbedding.CreateLinkToUpdateNewReleaseClient" + } + ], + "fc-port": [ + { + "local-id": "100", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-003" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-is-alt-2-0-1-000" + } + ] + }, + { + "uuid": "ro-2-1-0-op-fc-is-044", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_PROCESS_SNIPPET" + }, + { + "value-name": "ForwardingName", + "value": "ApprovingApplicationCausesPreparingTheEmbedding.RequestForUpdatingNewReleaseClient" + } + ], + "fc-port": [ + { + "local-id": "000", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-is-001" + }, + { + "local-id": "001", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-is-012" + }, + { + "local-id": "002", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-is-013" + }, + { + "local-id": "100", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-003" + }, + { + "local-id": "101", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-bm-010" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-ro-2-0-1-009" + }, + { + "local-id": "201", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-tar-2-0-1-009" + }, + { + "local-id": "202", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-eatl-2-0-1-009" + }, + { + "local-id": "203", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-ol-2-0-1-009" + }, + { + "local-id": "204", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-aa-2-0-1-009" + }, + { + "local-id": "205", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-alt-2-0-1-009" + }, + { + "local-id": "206", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-okm-2-0-1-009" + } + ] + }, + { + "uuid": "ro-2-1-0-op-fc-is-046", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" + }, + { + "value-name": "ForwardingName", + "value": "ApprovingApplicationCausesPreparingTheEmbedding.CreateLinkForPromptingEmbedding" + } + ], + "fc-port": [ + { + "local-id": "100", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-003" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-is-alt-2-0-1-000" + } + ] + }, + { + "uuid": "ro-2-1-0-op-fc-is-047", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" + }, + { + "value-name": "ForwardingName", + "value": "ApprovingApplicationCausesPreparingTheEmbedding.CreateLinkForBequeathYourData" + } + ], + "fc-port": [ + { + "local-id": "100", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-003" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-is-alt-2-0-1-000" + } + ] + }, + { + "uuid": "ro-2-1-0-op-fc-is-048", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" + }, + { + "value-name": "ForwardingName", + "value": "ApprovingApplicationCausesPreparingTheEmbedding.CreateFurtherLinksForTransferringData" + } + ], + "fc-port": [ + { + "local-id": "100", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-003" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-is-alt-2-0-1-000" + } + ] + }, + { + "uuid": "ro-2-1-0-op-fc-is-049", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_PROCESS_SNIPPET" + }, + { + "value-name": "ForwardingName", + "value": "ApprovingApplicationCausesPreparingTheEmbedding.RequestForEmbedding" + } + ], + "fc-port": [ + { + "local-id": "000", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-is-001" + }, + { + "local-id": "001", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-is-012" + }, + { + "local-id": "002", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-is-013" + }, + { + "local-id": "100", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-003" + }, + { + "local-id": "101", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-bm-010" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-ro-2-0-1-000" + }, + { + "local-id": "201", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-tar-2-0-1-000" + }, + { + "local-id": "202", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-eatl-2-0-1-000" + }, + { + "local-id": "203", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-ol-2-0-1-000" + }, + { + "local-id": "204", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-aa-2-0-1-000" + }, + { + "local-id": "205", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-alt-2-0-1-000" + }, + { + "local-id": "206", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-okm-2-0-1-000" + } + ] + }, + { + "uuid": "ro-2-1-0-op-fc-is-051", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" + }, + { + "value-name": "ForwardingName", + "value": "ApprovingApplicationCausesConnectingToBroadcast.CreateLinkForUpdatingClient" + } + ], + "fc-port": [ + { + "local-id": "100", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-003" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-is-alt-2-0-1-000" + } + ] + }, + { + "uuid": "ro-2-1-0-op-fc-is-052", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" + }, + { + "value-name": "ForwardingName", + "value": "ApprovingApplicationCausesConnectingToBroadcast.CreateLinkForUpdatingOperationClient" + } + ], + "fc-port": [ + { + "local-id": "100", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-003" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-is-alt-2-0-1-000" + } + ] + }, + { + "uuid": "ro-2-1-0-op-fc-is-053", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" + }, + { + "value-name": "ForwardingName", + "value": "ApprovingApplicationCausesConnectingToBroadcast.CreateLinkForDisposingRemainders" + } + ], + "fc-port": [ + { + "local-id": "100", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-003" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-is-alt-2-0-1-000" + } + ] + }, + { + "uuid": "ro-2-1-0-op-fc-is-060", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" + }, + { + "value-name": "ForwardingName", + "value": "ApprovingApplicationCausesResponding" + } + ], + "fc-port": [ + { + "local-id": "000", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-1-0-op-s-is-003" + }, + { + "local-id": "100", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-003" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-1-0-op-c-im-tar-2-0-1-007" + } + ] + } + ] + } + ] + } +} \ No newline at end of file diff --git a/server/database/load.json b/server/database/load.json deleted file mode 100644 index 9b810b1..0000000 --- a/server/database/load.json +++ /dev/null @@ -1,4459 +0,0 @@ -{ - "core-model-1-4:control-construct": { - "uuid": "ro-2-0-1", - "profile-collection": { - "profile": [ - { - "uuid": "ro-2-0-1-action-p-000", - "profile-name": "action-profile-1-0:PROFILE_NAME_TYPE_ACTION_PROFILE", - "action-profile-1-0:action-profile-pac": { - "action-profile-capability": { - "operation-name": "/v1/start-application-in-generic-representation", - "label": "Inform about Application", - "input-value-list": [ - ], - "display-in-new-browser-window": false - }, - "action-profile-configuration": { - "consequent-operation-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-s-bs-002/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name" - } - } - }, - { - "uuid": "ro-2-0-1-action-p-001", - "profile-name": "action-profile-1-0:PROFILE_NAME_TYPE_ACTION_PROFILE", - "action-profile-1-0:action-profile-pac": { - "action-profile-capability": { - "operation-name": "/v1/inform-about-application-in-generic-representation", - "label": "Release History", - "input-value-list": [ - ], - "display-in-new-browser-window": false - }, - "action-profile-configuration": { - "consequent-operation-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-s-bs-004/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name" - } - } - }, - { - "uuid": "ro-2-0-1-action-p-002", - "profile-name": "action-profile-1-0:PROFILE_NAME_TYPE_ACTION_PROFILE", - "action-profile-1-0:action-profile-pac": { - "action-profile-capability": { - "operation-name": "/v1/inform-about-application-in-generic-representation", - "label": "API Documentation", - "input-value-list": [ - ], - "display-in-new-browser-window": true - }, - "action-profile-configuration": { - "consequent-operation-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-s-bs-005/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name" - } - } - }, - { - "uuid": "ro-2-0-1-action-p-003", - "profile-name": "action-profile-1-0:PROFILE_NAME_TYPE_ACTION_PROFILE", - "action-profile-1-0:action-profile-pac": { - "action-profile-capability": { - "operation-name": "/v1/start-application-in-generic-representation", - "label": "List Registerted Applications", - "input-value-list": [ - ], - "display-in-new-browser-window": false - }, - "action-profile-configuration": { - "consequent-operation-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-s-is-005/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name" - } - } - }, - { - "uuid": "ro-2-0-1-response-p-000", - "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", - "response-profile-1-0:response-profile-pac": { - "response-profile-capability": { - "operation-name": "/v1/start-application-in-generic-representation", - "field-name": { - "static-field-name": "applicationName" - }, - "description": "Own application name", - "datatype": "string" - }, - "response-profile-configuration": { - "value": { - "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name" - } - } - } - }, - { - "uuid": "ro-2-0-1-response-p-001", - "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", - "response-profile-1-0:response-profile-pac": { - "response-profile-capability": { - "operation-name": "/v1/inform-about-application-in-generic-representation", - "field-name": { - "static-field-name": "applicationName" - }, - "description": "Name of this application", - "datatype": "string" - }, - "response-profile-configuration": { - "value": { - "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name" - } - } - } - }, - { - "uuid": "ro-2-0-1-response-p-002", - "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", - "response-profile-1-0:response-profile-pac": { - "response-profile-capability": { - "operation-name": "/v1/inform-about-application-in-generic-representation", - "field-name": { - "static-field-name": "releaseNumber" - }, - "description": "Number of this release", - "datatype": "string" - }, - "response-profile-configuration": { - "value": { - "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number" - } - } - } - }, - { - "uuid": "ro-2-0-1-response-p-003", - "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", - "response-profile-1-0:response-profile-pac": { - "response-profile-capability": { - "operation-name": "/v1/inform-about-application-in-generic-representation", - "field-name": { - "static-field-name": "applicationPurpose" - }, - "description": "Purpose of this application", - "datatype": "string" - }, - "response-profile-configuration": { - "value": { - "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-purpose" - } - } - } - }, - { - "uuid": "ro-2-0-1-response-p-004", - "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", - "response-profile-1-0:response-profile-pac": { - "response-profile-capability": { - "operation-name": "/v1/inform-about-application-in-generic-representation", - "field-name": { - "static-field-name": "dataUpdatePeriod" - }, - "description": "Period of updating the data inside this application", - "datatype": "string" - }, - "response-profile-configuration": { - "value": { - "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/data-update-period" - } - } - } - }, - { - "uuid": "ro-2-0-1-response-p-005", - "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", - "response-profile-1-0:response-profile-pac": { - "response-profile-capability": { - "operation-name": "/v1/inform-about-application-in-generic-representation", - "field-name": { - "static-field-name": "ownerName" - }, - "description": "Name of the ApplicationOwner", - "datatype": "string" - }, - "response-profile-configuration": { - "value": { - "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/owner-name" - } - } - } - }, - { - "uuid": "ro-2-0-1-response-p-006", - "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", - "response-profile-1-0:response-profile-pac": { - "response-profile-capability": { - "operation-name": "/v1/inform-about-application-in-generic-representation", - "field-name": { - "static-field-name": "ownerEmailAddress" - }, - "description": "Email address of the ApplicationOwner", - "datatype": "string" - }, - "response-profile-configuration": { - "value": { - "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/owner-email-address" - } - } - } - }, - { - "uuid": "ro-2-0-1-response-p-007", - "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", - "response-profile-1-0:response-profile-pac": { - "response-profile-capability": { - "operation-name": "/v1/inform-about-release-history-in-generic-representation", - "field-name": { - "field-name-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=0/release-number" - }, - "description": "Represents the first entry in the list of releases", - "datatype": "string" - }, - "response-profile-configuration": { - "value": { - "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=0/changes" - } - } - } - }, - { - "uuid": "ro-2-0-1-response-p-008", - "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", - "response-profile-1-0:response-profile-pac": { - "response-profile-capability": { - "operation-name": "/v1/list-applications-in-generic-representation", - "field-name": { - "field-name-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-ro-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name" - }, - "description": "List of release numbers and changes", - "datatype": "string" - }, - "response-profile-configuration": { - "value": { - "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-ro-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number" - } - } - } - }, - { - "uuid": "ro-2-0-1-response-p-009", - "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", - "response-profile-1-0:response-profile-pac": { - "response-profile-capability": { - "operation-name": "/v1/list-applications-in-generic-representation", - "field-name": { - "field-name-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-tar-1-0-0-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name" - }, - "description": "List of registered application names and release numbers", - "datatype": "string" - }, - "response-profile-configuration": { - "value": { - "value-reference": "core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-tar-1-0-0-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number" - } - } - } - }, - { - "uuid": "ro-2-0-1-response-p-010", - "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", - "response-profile-1-0:response-profile-pac": { - "response-profile-capability": { - "operation-name": "/v1/list-applications-in-generic-representation", - "field-name": { - "field-name-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-eatl-1-0-0-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name" - }, - "description": "List of registered application names and release numbers", - "datatype": "string" - }, - "response-profile-configuration": { - "value": { - "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-eatl-1-0-0-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number" - } - } - } - }, - { - "uuid": "ro-2-0-1-response-p-011", - "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", - "response-profile-1-0:response-profile-pac": { - "response-profile-capability": { - "operation-name": "/v1/list-applications-in-generic-representation", - "field-name": { - "field-name-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-ol-1-0-0-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name" - }, - "description": "List of registered application names and release numbers", - "datatype": "string" - }, - "response-profile-configuration": { - "value": { - "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-ol-1-0-0-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number" - } - } - } - }, - { - "uuid": "ro-2-0-1-response-p-012", - "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", - "response-profile-1-0:response-profile-pac": { - "response-profile-capability": { - "operation-name": "/v1/list-applications-in-generic-representation", - "field-name": { - "field-name-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-aa-1-0-0-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name" - }, - "description": "List of registered application names and release numbers", - "datatype": "string" - }, - "response-profile-configuration": { - "value": { - "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-aa-1-0-0-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number" - } - } - } - }, - { - "uuid": "ro-2-0-1-response-p-013", - "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", - "response-profile-1-0:response-profile-pac": { - "response-profile-capability": { - "operation-name": "/v1/list-applications-in-generic-representation", - "field-name": { - "field-name-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-alt-1-0-0-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name" - }, - "description": "List of registered application names and release numbers", - "datatype": "string" - }, - "response-profile-configuration": { - "value": { - "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-alt-1-0-0-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number" - } - } - } - }, - { - "uuid": "ro-2-0-1-response-p-014", - "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", - "response-profile-1-0:response-profile-pac": { - "response-profile-capability": { - "operation-name": "/v1/list-applications-in-generic-representation", - "field-name": { - "field-name-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-okm-1-0-0-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name" - }, - "description": "List of registered application names and release numbers", - "datatype": "string" - }, - "response-profile-configuration": { - "value": { - "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-okm-1-0-0-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number" - } - } - } - }, - { - "uuid": "ro-2-0-1-response-p-015", - "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", - "response-profile-1-0:response-profile-pac": { - "response-profile-capability": { - "operation-name": "/v1/list-applications-in-generic-representation", - "field-name": { - "field-name-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-cc-1-0-0-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name" - }, - "description": "List of registered application names and release numbers", - "datatype": "string" - }, - "response-profile-configuration": { - "value": { - "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-c-cc-1-0-0-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number" - } - } - } - }, - { - "uuid": "ro-2-0-1-response-p-016", - "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", - "response-profile-1-0:response-profile-pac": { - "response-profile-capability": { - "operation-name": "/v1/inform-about-release-history-in-generic-representation", - "field-name": { - "field-name-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=1/release-number" - }, - "description": "Represents the first entry in the list of releases", - "datatype": "string" - }, - "response-profile-configuration": { - "value": { - "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=1/changes" - } - } - } - }, - { - "uuid": "ro-2-0-1-file-p-000", - "profile-name": "file-profile-1-0:PROFILE_NAME_TYPE_FILE_PROFILE", - "file-profile-1-0:file-profile-pac": { - "file-profile-capability": { - "file-identifier": "LOADfile", - "file-description": "Application name, release number and registration time stamp" - }, - "file-profile-configuration": { - "file-path": "./application-data/application-data.json", - "user-name": "RegistryOffice", - "password": "Operations to add password", - "operation": "file-profile-1-0:OPERATION_TYPE_READ_WRITE" - } - } - }, - { - "uuid": "ro-2-0-1-integer-p-000", - "profile-name": "integer-profile-1-0:PROFILE_NAME_TYPE_INTEGER_PROFILE", - "integer-profile-1-0:integer-profile-pac": { - "integer-profile-capability": { - "integer-name": "waitTimeToApprove", - "unit": "second", - "minimum": 600, - "maximum": 1209600 - }, - "integer-profile-configuration": { - "integer-value": 259200 - } - } - } - ] - }, - "logical-termination-point": [ - { - "uuid": "ro-2-0-1-op-s-bm-000", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-s-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-server-interface-1-0:operation-server-interface-pac": { - "operation-server-interface-capability": { - "operation-name": "/v1/register-yourself" - }, - "operation-server-interface-configuration": { - "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", - "operation-key": "Operation key not yet provided." - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-s-bm-001", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-s-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-server-interface-1-0:operation-server-interface-pac": { - "operation-server-interface-capability": { - "operation-name": "/v1/embed-yourself" - }, - "operation-server-interface-configuration": { - "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", - "operation-key": "Operation key not yet provided." - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-s-bm-002", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-s-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-server-interface-1-0:operation-server-interface-pac": { - "operation-server-interface-capability": { - "operation-name": "/v1/redirect-service-request-information" - }, - "operation-server-interface-configuration": { - "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", - "operation-key": "Operation key not yet provided." - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-s-bm-003", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-s-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-server-interface-1-0:operation-server-interface-pac": { - "operation-server-interface-capability": { - "operation-name": "/v1/redirect-oam-request-information" - }, - "operation-server-interface-configuration": { - "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", - "operation-key": "Operation key not yet provided." - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-s-bm-004", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-s-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-server-interface-1-0:operation-server-interface-pac": { - "operation-server-interface-capability": { - "operation-name": "/v1/end-subscription" - }, - "operation-server-interface-configuration": { - "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", - "operation-key": "Operation key not yet provided." - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-s-bm-005", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-s-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-server-interface-1-0:operation-server-interface-pac": { - "operation-server-interface-capability": { - "operation-name": "/v1/inquire-oam-request-approvals" - }, - "operation-server-interface-configuration": { - "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", - "operation-key": "Operation key not yet provided." - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-s-bm-007", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-s-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-server-interface-1-0:operation-server-interface-pac": { - "operation-server-interface-capability": { - "operation-name": "/v1/update-client" - }, - "operation-server-interface-configuration": { - "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", - "operation-key": "Operation key not yet provided." - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-s-bm-008", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-s-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-server-interface-1-0:operation-server-interface-pac": { - "operation-server-interface-capability": { - "operation-name": "/v1/list-ltps-and-fcs" - }, - "operation-server-interface-configuration": { - "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", - "operation-key": "Operation key not yet provided." - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-s-bm-009", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-s-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-server-interface-1-0:operation-server-interface-pac": { - "operation-server-interface-capability": { - "operation-name": "/v1/redirect-topology-change-information" - }, - "operation-server-interface-configuration": { - "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", - "operation-key": "Operation key not yet provided." - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-s-bm-010", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-s-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-server-interface-1-0:operation-server-interface-pac": { - "operation-server-interface-capability": { - "operation-name": "/v1/update-operation-key" - }, - "operation-server-interface-configuration": { - "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", - "operation-key": "Operation key not yet provided." - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-s-bm-011", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-s-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-server-interface-1-0:operation-server-interface-pac": { - "operation-server-interface-capability": { - "operation-name": "/v1/update-operation-client" - }, - "operation-server-interface-configuration": { - "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", - "operation-key": "Operation key not yet provided." - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-s-im-000", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-s-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-server-interface-1-0:operation-server-interface-pac": { - "operation-server-interface-capability": { - "operation-name": "/v1/bequeath-your-data-and-die" - }, - "operation-server-interface-configuration": { - "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", - "operation-key": "Operation key not yet provided." - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-s-bs-000", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-s-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-server-interface-1-0:operation-server-interface-pac": { - "operation-server-interface-capability": { - "operation-name": "/v1/start-application-in-generic-representation" - }, - "operation-server-interface-configuration": { - "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", - "operation-key": "n.a." - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-s-bs-001", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-s-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-server-interface-1-0:operation-server-interface-pac": { - "operation-server-interface-capability": { - "operation-name": "/v1/inform-about-application" - }, - "operation-server-interface-configuration": { - "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", - "operation-key": "n.a." - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-s-bs-002", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-s-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-server-interface-1-0:operation-server-interface-pac": { - "operation-server-interface-capability": { - "operation-name": "/v1/inform-about-application-in-generic-representation" - }, - "operation-server-interface-configuration": { - "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", - "operation-key": "n.a." - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-s-bs-003", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-s-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-server-interface-1-0:operation-server-interface-pac": { - "operation-server-interface-capability": { - "operation-name": "/v1/inform-about-release-history" - }, - "operation-server-interface-configuration": { - "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", - "operation-key": "n.a." - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-s-bs-004", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-s-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-server-interface-1-0:operation-server-interface-pac": { - "operation-server-interface-capability": { - "operation-name": "/v1/inform-about-release-history-in-generic-representation" - }, - "operation-server-interface-configuration": { - "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", - "operation-key": "n.a." - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-s-bs-005", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-s-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-server-interface-1-0:operation-server-interface-pac": { - "operation-server-interface-capability": { - "operation-name": "/docs" - }, - "operation-server-interface-configuration": { - "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", - "operation-key": "n.a." - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-s-is-001", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-s-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-server-interface-1-0:operation-server-interface-pac": { - "operation-server-interface-capability": { - "operation-name": "/v1/register-application" - }, - "operation-server-interface-configuration": { - "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", - "operation-key": "n.a." - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-s-is-002", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-s-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-server-interface-1-0:operation-server-interface-pac": { - "operation-server-interface-capability": { - "operation-name": "/v1/deregister-application" - }, - "operation-server-interface-configuration": { - "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", - "operation-key": "Operation key not yet provided." - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-s-is-003", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-s-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-server-interface-1-0:operation-server-interface-pac": { - "operation-server-interface-capability": { - "operation-name": "/v1/regard-updated-approval-status" - }, - "operation-server-interface-configuration": { - "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", - "operation-key": "Operation key not yet provided." - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-s-is-004", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-s-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-server-interface-1-0:operation-server-interface-pac": { - "operation-server-interface-capability": { - "operation-name": "/v1/list-applications" - }, - "operation-server-interface-configuration": { - "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", - "operation-key": "Operation key not yet provided." - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-s-is-005", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-s-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-server-interface-1-0:operation-server-interface-pac": { - "operation-server-interface-capability": { - "operation-name": "/v1/list-applications-in-generic-representation" - }, - "operation-server-interface-configuration": { - "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", - "operation-key": "n.a." - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-s-is-006", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-s-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-server-interface-1-0:operation-server-interface-pac": { - "operation-server-interface-capability": { - "operation-name": "/v1/inquire-application-type-approvals" - }, - "operation-server-interface-configuration": { - "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", - "operation-key": "Operation key not yet provided." - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-s-is-007", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-s-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-server-interface-1-0:operation-server-interface-pac": { - "operation-server-interface-capability": { - "operation-name": "/v1/notify-deregistrations" - }, - "operation-server-interface-configuration": { - "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", - "operation-key": "Operation key not yet provided." - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-s-is-008", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-s-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-server-interface-1-0:operation-server-interface-pac": { - "operation-server-interface-capability": { - "operation-name": "/v1/notify-approvals" - }, - "operation-server-interface-configuration": { - "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", - "operation-key": "Operation key not yet provided." - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-s-is-009", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-s-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-server-interface-1-0:operation-server-interface-pac": { - "operation-server-interface-capability": { - "operation-name": "/v1/notify-withdrawn-approvals" - }, - "operation-server-interface-configuration": { - "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", - "operation-key": "Operation key not yet provided." - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-s-is-010", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-s-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-server-interface-1-0:operation-server-interface-pac": { - "operation-server-interface-capability": { - "operation-name": "/v1/relay-server-replacement" - }, - "operation-server-interface-configuration": { - "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", - "operation-key": "Operation key not yet provided." - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-s-is-011", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-s-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-server-interface-1-0:operation-server-interface-pac": { - "operation-server-interface-capability": { - "operation-name": "/v1/relay-operation-update" - }, - "operation-server-interface-configuration": { - "life-cycle-state": "operation-server-interface-1-0:LIFE_CYCLE_STATE_TYPE_EXPERIMENTAL", - "operation-key": "Operation key not yet provided." - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-http-s-000", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", - "client-ltp": [ - "ro-2-0-1-op-s-bm-000", - "ro-2-0-1-op-s-bm-001", - "ro-2-0-1-op-s-bm-002", - "ro-2-0-1-op-s-bm-003", - "ro-2-0-1-op-s-bm-004", - "ro-2-0-1-op-s-bm-005", - "ro-2-0-1-op-s-bm-007", - "ro-2-0-1-op-s-bm-008", - "ro-2-0-1-op-s-bm-009", - "ro-2-0-1-op-s-bm-010", - "ro-2-0-1-op-s-bm-011", - "ro-2-0-1-op-s-im-000", - "ro-2-0-1-op-s-bs-000", - "ro-2-0-1-op-s-bs-001", - "ro-2-0-1-op-s-bs-002", - "ro-2-0-1-op-s-bs-003", - "ro-2-0-1-op-s-bs-004", - "ro-2-0-1-op-s-bs-005", - "ro-2-0-1-op-s-is-001", - "ro-2-0-1-op-s-is-002", - "ro-2-0-1-op-s-is-003", - "ro-2-0-1-op-s-is-004", - "ro-2-0-1-op-s-is-005", - "ro-2-0-1-op-s-is-006", - "ro-2-0-1-op-s-is-007", - "ro-2-0-1-op-s-is-008", - "ro-2-0-1-op-s-is-009", - "ro-2-0-1-op-s-is-010", - "ro-2-0-1-op-s-is-011" - ], - "server-ltp": [ - "ro-2-0-1-tcp-s-000", - "ro-2-0-1-tcp-s-001" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "http-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_HTTP_LAYER", - "http-server-interface-1-0:http-server-interface-pac": { - "http-server-interface-capability": { - "application-name": "RegistryOffice", - "release-number": "2.0.1", - "application-purpose": "All applications being part of the MBH SDN must be register here.", - "data-update-period": "http-server-interface-1-0:DATA_UPDATE_PERIOD_TYPE_REAL_TIME", - "owner-name": "Thorsten Heinze", - "owner-email-address": "Thorsten.Heinze@telefonica.com", - "release-list": [ - { - "local-id": "0", - "release-number": "1.0.0", - "release-date": "04.12.2021", - "changes": "Initial version." - }, - { - "local-id": "1", - "release-number": "2.0.1", - "release-date": "04.12.2022", - "changes": "Update on ApplicationPattern 2.0.1." - } - ] - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-tcp-s-000", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", - "client-ltp": [ - "ro-2-0-1-http-s-000" - ], - "server-ltp": [ - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "tcp-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_TCP_LAYER", - "tcp-server-interface-1-0:tcp-server-interface-pac": { - "tcp-server-interface-configuration": { - "description": "Without TLS layer", - "local-protocol": "tcp-server-interface-1-0:PROTOCOL_TYPE_HTTP", - "local-address": { - "ipv-4-address": "1.1.3.8" - }, - "local-port": 3008 - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-tcp-s-001", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", - "client-ltp": [ - "ro-2-0-1-http-s-000" - ], - "server-ltp": [ - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "tcp-server-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_TCP_LAYER", - "tcp-server-interface-1-0:tcp-server-interface-pac": { - "tcp-server-interface-configuration": { - "description": "With TLS layer", - "local-protocol": "tcp-server-interface-1-0:PROTOCOL_TYPE_HTTPS", - "local-address": { - "ipv-4-address": "1.2.3.8" - }, - "local-port": 3208 - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-bm-or-1-0-0-000", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-or-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/bequeath-your-data-and-die", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-http-c-or-1-0-0-000", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - "ro-2-0-1-op-c-bm-or-1-0-0-000" - ], - "server-ltp": [ - "ro-2-0-1-tcp-c-or-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "http-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_HTTP_LAYER", - "http-client-interface-1-0:http-client-interface-pac": { - "http-client-interface-configuration": { - "application-name": "OldRelease", - "release-number": "2.0.1" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-tcp-c-or-1-0-0-000", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - "ro-2-0-1-http-c-or-1-0-0-000" - ], - "server-ltp": [ - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "tcp-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_TCP_LAYER", - "tcp-client-interface-1-0:tcp-client-interface-pac": { - "tcp-client-interface-configuration": { - "remote-protocol": "tcp-client-interface-1-0:PROTOCOL_TYPE_HTTP", - "remote-address": { - "ip-address": { - "ipv-4-address": "1.1.3.1" - } - }, - "remote-port": 3001 - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-im-nr-2-0-1-000", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-nr-2-0-1-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/inquire-application-type-approvals", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-im-nr-2-0-1-001", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-nr-2-0-1-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/notify-deregistrations", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-im-nr-2-0-1-002", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-nr-2-0-1-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/notify-approvals", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-im-nr-2-0-1-003", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-nr-2-0-1-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/notify-withdrawn-approvals", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-im-nr-2-0-1-004", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-nr-2-0-1-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/register-application", - "operation-key": "n.a." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-http-c-nr-2-0-1-000", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - "ro-2-0-1-op-c-im-nr-2-0-1-000", - "ro-2-0-1-op-c-im-nr-2-0-1-001", - "ro-2-0-1-op-c-im-nr-2-0-1-002", - "ro-2-0-1-op-c-im-nr-2-0-1-003", - "ro-2-0-1-op-c-im-nr-2-0-1-004" - ], - "server-ltp": [ - "ro-2-0-1-tcp-c-nr-2-0-1-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "http-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_HTTP_LAYER", - "http-client-interface-1-0:http-client-interface-pac": { - "http-client-interface-configuration": { - "application-name": "NewRelease", - "release-number": "2.0.1" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-tcp-c-nr-2-0-1-000", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - "ro-2-0-1-http-c-nr-2-0-1-000" - ], - "server-ltp": [ - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "tcp-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_TCP_LAYER", - "tcp-client-interface-1-0:tcp-client-interface-pac": { - "tcp-client-interface-configuration": { - "remote-protocol": "tcp-client-interface-1-0:PROTOCOL_TYPE_HTTP", - "remote-address": { - "ip-address": { - "ipv-4-address": "1.1.3.8" - } - }, - "remote-port": 3008 - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-bm-ro-2-0-1-000", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-ro-2-0-1-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/register-application", - "operation-key": "n.a." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-bm-ro-2-0-1-001", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-ro-2-0-1-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/relay-server-replacement", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-bm-ro-2-0-1-002", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-ro-2-0-1-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/deregister-application", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-bm-ro-2-0-1-003", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-ro-2-0-1-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/relay-operation-update", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-im-ro-2-0-1-000", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-ro-2-0-1-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/embed-yourself", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-im-ro-2-0-1-001", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-ro-2-0-1-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/update-client", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-im-ro-2-0-1-002", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-ro-2-0-1-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/update-operation-client", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-http-c-ro-2-0-1-000", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - "ro-2-0-1-op-c-bm-ro-2-0-1-000", - "ro-2-0-1-op-c-bm-ro-2-0-1-001", - "ro-2-0-1-op-c-bm-ro-2-0-1-002", - "ro-2-0-1-op-c-bm-ro-2-0-1-003", - "ro-2-0-1-op-c-im-ro-2-0-1-000", - "ro-2-0-1-op-c-im-ro-2-0-1-001", - "ro-2-0-1-op-c-im-ro-2-0-1-002" - ], - "server-ltp": [ - "ro-2-0-1-tcp-c-ro-2-0-1-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "http-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_HTTP_LAYER", - "http-client-interface-1-0:http-client-interface-pac": { - "http-client-interface-configuration": { - "application-name": "RegistryOffice", - "release-number": "2.0.1" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-tcp-c-ro-2-0-1-000", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - "ro-2-0-1-http-c-ro-2-0-1-000" - ], - "server-ltp": [ - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "tcp-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_TCP_LAYER", - "tcp-client-interface-1-0:tcp-client-interface-pac": { - "tcp-client-interface-configuration": { - "remote-protocol": "tcp-client-interface-1-0:PROTOCOL_TYPE_HTTP", - "remote-address": { - "ip-address": { - "ipv-4-address": "1.1.3.8" - } - }, - "remote-port": 3008 - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-im-tar-1-0-0-000", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-tar-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/embed-yourself", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-im-tar-1-0-0-001", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-tar-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/update-client", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-im-tar-1-0-0-002", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-tar-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/update-operation-client", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-im-tar-1-0-0-005", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-tar-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/redirect-info-about-approval-status-changes", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-im-tar-1-0-0-003", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-tar-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/regard-application", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-im-tar-1-0-0-004", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-tar-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/disregard-application", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-http-c-tar-1-0-0-000", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - "ro-2-0-1-op-c-im-tar-1-0-0-000", - "ro-2-0-1-op-c-im-tar-1-0-0-001", - "ro-2-0-1-op-c-im-tar-1-0-0-002", - "ro-2-0-1-op-c-im-tar-1-0-0-005", - "ro-2-0-1-op-c-im-tar-1-0-0-003", - "ro-2-0-1-op-c-im-tar-1-0-0-004" - ], - "server-ltp": [ - "ro-2-0-1-tcp-c-tar-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "http-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_HTTP_LAYER", - "http-client-interface-1-0:http-client-interface-pac": { - "http-client-interface-configuration": { - "application-name": "TypeApprovalRegister", - "release-number": "2.0.1" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-tcp-c-tar-1-0-0-000", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - "ro-2-0-1-http-c-tar-1-0-0-000" - ], - "server-ltp": [ - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "tcp-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_TCP_LAYER", - "tcp-client-interface-1-0:tcp-client-interface-pac": { - "tcp-client-interface-configuration": { - "remote-protocol": "tcp-client-interface-1-0:PROTOCOL_TYPE_HTTP", - "remote-address": { - "ip-address": { - "ipv-4-address": "1.1.3.2" - } - }, - "remote-port": 3002 - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-bs-eatl-1-0-0-000", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-eatl-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/record-service-request", - "operation-key": "Operation key not yet provided.", - "detailed-logging-is-on": false - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-im-eatl-1-0-0-000", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-eatl-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/embed-yourself", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-im-eatl-1-0-0-001", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-eatl-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/update-client", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-im-eatl-1-0-0-002", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-eatl-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/update-operation-client", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-im-eatl-1-0-0-003", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-eatl-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/regard-application", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-im-eatl-1-0-0-004", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-eatl-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/disregard-application", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-http-c-eatl-1-0-0-000", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - "ro-2-0-1-op-c-bs-eatl-1-0-0-000", - "ro-2-0-1-op-c-im-eatl-1-0-0-000", - "ro-2-0-1-op-c-im-eatl-1-0-0-001", - "ro-2-0-1-op-c-im-eatl-1-0-0-002", - "ro-2-0-1-op-c-im-eatl-1-0-0-003", - "ro-2-0-1-op-c-im-eatl-1-0-0-004" - ], - "server-ltp": [ - "ro-2-0-1-tcp-c-eatl-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "http-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_HTTP_LAYER", - "http-client-interface-1-0:http-client-interface-pac": { - "http-client-interface-configuration": { - "application-name": "ExecutionAndTraceLog", - "release-number": "2.0.1" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-tcp-c-eatl-1-0-0-000", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - "ro-2-0-1-http-c-eatl-1-0-0-000" - ], - "server-ltp": [ - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "tcp-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_TCP_LAYER", - "tcp-client-interface-1-0:tcp-client-interface-pac": { - "tcp-client-interface-configuration": { - "remote-protocol": "tcp-client-interface-1-0:PROTOCOL_TYPE_HTTP", - "remote-address": { - "ip-address": { - "ipv-4-address": "1.1.3.3" - } - }, - "remote-port": 3003 - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-bs-ol-1-0-0-000", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-ol-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/record-oam-request", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-im-ol-1-0-0-000", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-ol-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/embed-yourself", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-im-ol-1-0-0-001", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-ol-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/update-client", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-im-ol-1-0-0-002", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-ol-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/update-operation-client", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-im-ol-1-0-0-003", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-ol-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/regard-application", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-im-ol-1-0-0-004", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-ol-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/disregard-application", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-http-c-ol-1-0-0-000", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - "ro-2-0-1-op-c-bs-ol-1-0-0-000", - "ro-2-0-1-op-c-im-ol-1-0-0-000", - "ro-2-0-1-op-c-im-ol-1-0-0-001", - "ro-2-0-1-op-c-im-ol-1-0-0-002", - "ro-2-0-1-op-c-im-ol-1-0-0-003", - "ro-2-0-1-op-c-im-ol-1-0-0-004" - ], - "server-ltp": [ - "ro-2-0-1-tcp-c-ol-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "http-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_HTTP_LAYER", - "http-client-interface-1-0:http-client-interface-pac": { - "http-client-interface-configuration": { - "application-name": "OamLog", - "release-number": "2.0.1" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-tcp-c-ol-1-0-0-000", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - "ro-2-0-1-http-c-ol-1-0-0-000" - ], - "server-ltp": [ - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "tcp-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_TCP_LAYER", - "tcp-client-interface-1-0:tcp-client-interface-pac": { - "tcp-client-interface-configuration": { - "remote-protocol": "tcp-client-interface-1-0:PROTOCOL_TYPE_HTTP", - "remote-address": { - "ip-address": { - "ipv-4-address": "1.1.3.4" - } - }, - "remote-port": 3004 - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-bs-aa-1-0-0-000", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-aa-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/approve-oam-request", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-im-aa-1-0-0-000", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-aa-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/embed-yourself", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-im-aa-1-0-0-001", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-aa-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/update-client", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-im-aa-1-0-0-002", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-aa-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/update-operation-client", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-im-aa-1-0-0-003", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-aa-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/regard-application", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-im-aa-1-0-0-004", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-aa-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/disregard-application", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-http-c-aa-1-0-0-000", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - "ro-2-0-1-op-c-bs-aa-1-0-0-000", - "ro-2-0-1-op-c-im-aa-1-0-0-000", - "ro-2-0-1-op-c-im-aa-1-0-0-001", - "ro-2-0-1-op-c-im-aa-1-0-0-002", - "ro-2-0-1-op-c-im-aa-1-0-0-003", - "ro-2-0-1-op-c-im-aa-1-0-0-004" - ], - "server-ltp": [ - "ro-2-0-1-tcp-c-aa-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "http-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_HTTP_LAYER", - "http-client-interface-1-0:http-client-interface-pac": { - "http-client-interface-configuration": { - "application-name": "AdministratorAdministration", - "release-number": "2.0.1" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-tcp-c-aa-1-0-0-000", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - "ro-2-0-1-http-c-aa-1-0-0-000" - ], - "server-ltp": [ - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "tcp-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_TCP_LAYER", - "tcp-client-interface-1-0:tcp-client-interface-pac": { - "tcp-client-interface-configuration": { - "remote-protocol": "tcp-client-interface-1-0:PROTOCOL_TYPE_HTTP", - "remote-address": { - "ip-address": { - "ipv-4-address": "1.1.3.5" - } - }, - "remote-port": 3005 - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-bm-alt-1-0-0-000", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-alt-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/update-all-ltps-and-fcs", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-bm-alt-1-0-0-001", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-alt-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/update-ltp", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-bm-alt-1-0-0-002", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-alt-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/delete-ltp-and-dependents", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-bm-alt-1-0-0-003", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-alt-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/update-fc", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-bm-alt-1-0-0-004", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-alt-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/update-fc-port", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-bm-alt-1-0-0-005", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-alt-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/delete-fc-port", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-im-alt-1-0-0-000", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-alt-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/embed-yourself", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-im-alt-1-0-0-001", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-alt-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/update-client", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-im-alt-1-0-0-002", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-alt-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/update-operation-client", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-im-alt-1-0-0-003", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-alt-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/regard-application", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-im-alt-1-0-0-004", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-alt-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/disregard-application", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-http-c-alt-1-0-0-000", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - "ro-2-0-1-op-c-bm-alt-1-0-0-000", - "ro-2-0-1-op-c-bm-alt-1-0-0-001", - "ro-2-0-1-op-c-bm-alt-1-0-0-002", - "ro-2-0-1-op-c-bm-alt-1-0-0-003", - "ro-2-0-1-op-c-bm-alt-1-0-0-004", - "ro-2-0-1-op-c-bm-alt-1-0-0-005", - "ro-2-0-1-op-c-im-alt-1-0-0-000", - "ro-2-0-1-op-c-im-alt-1-0-0-001", - "ro-2-0-1-op-c-im-alt-1-0-0-002", - "ro-2-0-1-op-c-im-alt-1-0-0-003", - "ro-2-0-1-op-c-im-alt-1-0-0-004" - ], - "server-ltp": [ - "ro-2-0-1-tcp-c-alt-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "http-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_HTTP_LAYER", - "http-client-interface-1-0:http-client-interface-pac": { - "http-client-interface-configuration": { - "application-name": "ApplicationLayerTopology", - "release-number": "2.0.1" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-tcp-c-alt-1-0-0-000", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - "ro-2-0-1-http-c-alt-1-0-0-000" - ], - "server-ltp": [ - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "tcp-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_TCP_LAYER", - "tcp-client-interface-1-0:tcp-client-interface-pac": { - "tcp-client-interface-configuration": { - "remote-protocol": "tcp-client-interface-1-0:PROTOCOL_TYPE_HTTP", - "remote-address": { - "ip-address": { - "ipv-4-address": "1.1.3.6" - } - }, - "remote-port": 3006 - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-im-okm-1-0-0-000", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-okm-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/embed-yourself", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-im-okm-1-0-0-001", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-okm-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/update-client", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-im-okm-1-0-0-002", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-okm-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/update-operation-client", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-im-okm-1-0-0-003", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-okm-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/regard-application", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-im-okm-1-0-0-004", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-okm-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/disregard-application", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-http-c-okm-1-0-0-000", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - "ro-2-0-1-op-c-im-okm-1-0-0-000", - "ro-2-0-1-op-c-im-okm-1-0-0-001", - "ro-2-0-1-op-c-im-okm-1-0-0-002", - "ro-2-0-1-op-c-im-okm-1-0-0-003", - "ro-2-0-1-op-c-im-okm-1-0-0-004" - ], - "server-ltp": [ - "ro-2-0-1-tcp-c-okm-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "http-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_HTTP_LAYER", - "http-client-interface-1-0:http-client-interface-pac": { - "http-client-interface-configuration": { - "application-name": "OperationKeyManagement", - "release-number": "2.0.1" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-tcp-c-okm-1-0-0-000", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - "ro-2-0-1-http-c-okm-1-0-0-000" - ], - "server-ltp": [ - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "tcp-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_TCP_LAYER", - "tcp-client-interface-1-0:tcp-client-interface-pac": { - "tcp-client-interface-configuration": { - "remote-protocol": "tcp-client-interface-1-0:PROTOCOL_TYPE_HTTP", - "remote-address": { - "ip-address": { - "ipv-4-address": "1.1.3.7" - } - }, - "remote-port": 3007 - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-im-cc-1-0-0-000", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-cc-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/embed-yourself", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-im-cc-1-0-0-001", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-cc-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/update-client", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-op-c-im-cc-1-0-0-002", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - ], - "server-ltp": [ - "ro-2-0-1-http-c-cc-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", - "operation-client-interface-1-0:operation-client-interface-pac": { - "operation-client-interface-configuration": { - "operation-name": "/v1/update-operation-client", - "operation-key": "Operation key not yet provided." - }, - "operation-client-interface-status": { - "operational-state": "operation-client-interface-1-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", - "life-cycle-state": "operation-client-interface-1-0:LIFE_CYCLE_STATE_TYPE_NOT_YET_DEFINED" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-http-c-cc-1-0-0-000", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - "ro-2-0-1-op-c-im-cc-1-0-0-000", - "ro-2-0-1-op-c-im-cc-1-0-0-001", - "ro-2-0-1-op-c-im-cc-1-0-0-002" - ], - "server-ltp": [ - "ro-2-0-1-tcp-c-cc-1-0-0-000" - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "http-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_HTTP_LAYER", - "http-client-interface-1-0:http-client-interface-pac": { - "http-client-interface-configuration": { - "application-name": "CurrentController", - "release-number": "1.0.0" - } - } - } - ] - }, - { - "uuid": "ro-2-0-1-tcp-c-cc-1-0-0-000", - "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", - "client-ltp": [ - "ro-2-0-1-http-c-cc-1-0-0-000" - ], - "server-ltp": [ - ], - "layer-protocol": [ - { - "local-id": "0", - "layer-protocol-name": "tcp-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_TCP_LAYER", - "tcp-client-interface-1-0:tcp-client-interface-pac": { - "tcp-client-interface-configuration": { - "remote-protocol": "tcp-client-interface-1-0:PROTOCOL_TYPE_HTTP", - "remote-address": { - "ip-address": { - "ipv-4-address": "1.1.4.1" - } - }, - "remote-port": 4001 - } - } - } - ] - } - ], - "forwarding-domain": [ - { - "uuid": "ro-2-0-1-op-fd-000", - "forwarding-construct": [ - { - "uuid": "ro-2-0-1-op-fc-bm-000", - "name": [ - { - "value-name": "ForwardingKind", - "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" - }, - { - "value-name": "ForwardingName", - "value": "PromptForRegisteringCausesRegistrationRequest" - } - ], - "fc-port": [ - { - "local-id": "000", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-0-1-op-s-bm-000" - }, - { - "local-id": "100", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-bm-000" - }, - { - "local-id": "200", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-bm-ro-2-0-1-000" - } - ] - }, - { - "uuid": "ro-2-0-1-op-fc-bm-001", - "name": [ - { - "value-name": "ForwardingKind", - "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" - }, - { - "value-name": "ForwardingName", - "value": "PromptForEmbeddingCausesRequestForBequeathingData" - } - ], - "fc-port": [ - { - "local-id": "100", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-bm-001" - }, - { - "local-id": "200", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-bm-or-1-0-0-000" - } - ] - }, - { - "uuid": "ro-2-0-1-op-fc-bm-002", - "name": [ - { - "value-name": "ForwardingKind", - "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" - }, - { - "value-name": "ForwardingName", - "value": "ServiceRequestCausesLoggingRequest" - } - ], - "fc-port": [ - { - "local-id": "000", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-0-1-op-s-bm-002" - }, - { - "local-id": "100", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-bm-000" - }, - { - "local-id": "101", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-bm-001" - }, - { - "local-id": "102", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-bm-002" - }, - { - "local-id": "103", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-bm-003" - }, - { - "local-id": "104", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-bm-004" - }, - { - "local-id": "105", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-bm-005" - }, - { - "local-id": "106", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-bm-007" - }, - { - "local-id": "107", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-bm-008" - }, - { - "local-id": "108", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-bm-009" - }, - { - "local-id": "109", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-bm-010" - }, - { - "local-id": "110", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-bm-011" - }, - { - "local-id": "111", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-im-000" - }, - { - "local-id": "112", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-bs-001" - }, - { - "local-id": "113", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-bs-002" - }, - { - "local-id": "114", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-bs-003" - }, - { - "local-id": "115", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-bs-004" - }, - { - "local-id": "116", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-bs-000" - }, - { - "local-id": "117", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-is-001" - }, - { - "local-id": "118", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-is-002" - }, - { - "local-id": "119", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-is-003" - }, - { - "local-id": "120", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-is-004" - }, - { - "local-id": "121", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-is-005" - }, - { - "local-id": "122", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-is-006" - }, - { - "local-id": "123", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-is-007" - }, - { - "local-id": "124", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-is-008" - }, - { - "local-id": "125", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-is-009" - }, - { - "local-id": "126", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-is-010" - }, - { - "local-id": "127", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-is-011" - }, - { - "local-id": "200", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-bs-eatl-1-0-0-000" - } - ] - }, - { - "uuid": "ro-2-0-1-op-fc-bm-003", - "name": [ - { - "value-name": "ForwardingKind", - "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" - }, - { - "value-name": "ForwardingName", - "value": "OamRequestCausesLoggingRequest" - } - ], - "fc-port": [ - { - "local-id": "000", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-0-1-op-s-bm-003" - }, - { - "local-id": "200", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-bs-ol-1-0-0-000" - } - ] - }, - { - "uuid": "ro-2-0-1-op-fc-bm-004", - "name": [ - { - "value-name": "ForwardingKind", - "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" - }, - { - "value-name": "ForwardingName", - "value": "OamRequestCausesInquiryForAuthentication" - } - ], - "fc-port": [ - { - "local-id": "000", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-0-1-op-s-bm-005" - }, - { - "local-id": "200", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-bs-aa-1-0-0-000" - } - ] - }, - { - "uuid": "ro-2-0-1-op-fc-im-110", - "name": [ - { - "value-name": "ForwardingKind", - "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" - }, - { - "value-name": "ForwardingName", - "value": "PromptForBequeathingDataCausesNewApplicationBeingRequestedToInquireForApplicationTypeApprovals" - } - ], - "fc-port": [ - { - "local-id": "100", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-im-000" - }, - { - "local-id": "200", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-im-nr-2-0-1-000" - } - ] - }, - { - "uuid": "ro-2-0-1-op-fc-im-111", - "name": [ - { - "value-name": "ForwardingKind", - "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" - }, - { - "value-name": "ForwardingName", - "value": "PromptForBequeathingDataCausesNewApplicationBeingRequestedToDocumentSubscriptionsForDeregistrationNotifications" - } - ], - "fc-port": [ - { - "local-id": "100", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-im-000" - }, - { - "local-id": "200", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-im-nr-2-0-1-001" - } - ] - }, - { - "uuid": "ro-2-0-1-op-fc-im-112", - "name": [ - { - "value-name": "ForwardingKind", - "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" - }, - { - "value-name": "ForwardingName", - "value": "PromptForBequeathingDataCausesNewApplicationBeingRequestedToDocumentSubscriptionsForApprovalNotifications" - } - ], - "fc-port": [ - { - "local-id": "100", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-im-000" - }, - { - "local-id": "200", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-im-nr-2-0-1-002" - } - ] - }, - { - "uuid": "ro-2-0-1-op-fc-im-113", - "name": [ - { - "value-name": "ForwardingKind", - "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" - }, - { - "value-name": "ForwardingName", - "value": "PromptForBequeathingDataCausesNewApplicationBeingRequestedToDocumentSubscriptionsForWithdrawnApprovalNotifications" - } - ], - "fc-port": [ - { - "local-id": "100", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-im-000" - }, - { - "local-id": "200", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-im-nr-2-0-1-003" - } - ] - }, - { - "uuid": "ro-2-0-1-op-fc-im-114", - "name": [ - { - "value-name": "ForwardingKind", - "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" - }, - { - "value-name": "ForwardingName", - "value": "PromptForBequeathingDataCausesTransferOfListOfAlreadyRegisteredApplications" - } - ], - "fc-port": [ - { - "local-id": "100", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-im-000" - }, - { - "local-id": "200", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-im-nr-2-0-1-004" - } - ] - }, - { - "uuid": "ro-2-0-1-op-fc-im-115", - "name": [ - { - "value-name": "ForwardingKind", - "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" - }, - { - "value-name": "ForwardingName", - "value": "PromptForBequeathingDataCausesTARbeingRequestedToRedirectInfoAboutApprovalsToNewApplication" - } - ], - "fc-port": [ - { - "local-id": "100", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-im-000" - }, - { - "local-id": "200", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-im-tar-1-0-0-005" - } - ] - }, - { - "uuid": "ro-2-0-1-op-fc-bm-105", - "name": [ - { - "value-name": "ForwardingKind", - "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" - }, - { - "value-name": "ForwardingName", - "value": "PromptForBequeathingDataCausesRequestForBroadcastingInfoAboutServerReplacement" - } - ], - "fc-port": [ - { - "local-id": "000", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-0-1-op-s-bm-001" - }, - { - "local-id": "100", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-im-000" - }, - { - "local-id": "200", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-bm-ro-2-0-1-001" - } - ] - }, - { - "uuid": "ro-2-0-1-op-fc-bm-106", - "name": [ - { - "value-name": "ForwardingKind", - "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" - }, - { - "value-name": "ForwardingName", - "value": "PromptForBequeathingDataCausesRequestForDeregisteringOfOldRelease" - } - ], - "fc-port": [ - { - "local-id": "000", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-0-1-op-s-bm-001" - }, - { - "local-id": "100", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-im-000" - }, - { - "local-id": "200", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-bm-ro-2-0-1-002" - } - ] - }, - { - "uuid": "ro-2-0-1-op-fc-bm-107", - "name": [ - { - "value-name": "ForwardingKind", - "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" - }, - { - "value-name": "ForwardingName", - "value": "PromptingNewReleaseForUpdatingServerCausesRequestForBroadcastingInfoAboutBackwardCompatibleUpdateOfOperation" - } - ], - "fc-port": [ - { - "local-id": "000", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-0-1-op-s-bm-001" - }, - { - "local-id": "100", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-bm-007" - }, - { - "local-id": "200", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-bm-ro-2-0-1-003" - } - ] - }, - { - "uuid": "ro-2-0-1-op-fc-bm-006", - "name": [ - { - "value-name": "ForwardingKind", - "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" - }, - { - "value-name": "ForwardingName", - "value": "ServiceRequestCausesLtpUpdateRequest" - } - ], - "fc-port": [ - { - "local-id": "000", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-0-1-op-s-bm-009" - }, - { - "local-id": "100", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-bm-000" - }, - { - "local-id": "101", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-bm-001" - }, - { - "local-id": "102", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-bm-002" - }, - { - "local-id": "103", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-bm-003" - }, - { - "local-id": "104", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-bm-005" - }, - { - "local-id": "105", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-bm-007" - }, - { - "local-id": "106", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-bm-009" - }, - { - "local-id": "108", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-bm-011" - }, - { - "local-id": "109", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-im-000" - }, - { - "local-id": "110", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-is-001" - }, - { - "local-id": "111", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-is-006" - }, - { - "local-id": "112", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-is-007" - }, - { - "local-id": "113", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-is-008" - }, - { - "local-id": "114", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-is-009" - }, - { - "local-id": "115", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-is-010" - }, - { - "local-id": "200", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-bm-alt-1-0-0-001" - } - ] - }, - { - "uuid": "ro-2-0-1-op-fc-bm-007", - "name": [ - { - "value-name": "ForwardingKind", - "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" - }, - { - "value-name": "ForwardingName", - "value": "ServiceRequestCausesLtpDeletionRequest" - } - ], - "fc-port": [ - { - "local-id": "000", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-0-1-op-s-bm-009" - }, - { - "local-id": "100", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-is-002" - }, - { - "local-id": "200", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-bm-alt-1-0-0-002" - } - ] - }, - { - "uuid": "ro-2-0-1-op-fc-bm-008", - "name": [ - { - "value-name": "ForwardingKind", - "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" - }, - { - "value-name": "ForwardingName", - "value": "ServiceRequestCausesFcUpdateRequest" - } - ], - "fc-port": [ - { - "local-id": "000", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-0-1-op-s-bm-009" - }, - { - "local-id": "110", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-is-001" - }, - { - "local-id": "111", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-is-003" - }, - { - "local-id": "112", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-is-007" - }, - { - "local-id": "113", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-is-008" - }, - { - "local-id": "114", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-is-009" - }, - { - "local-id": "200", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-bm-alt-1-0-0-003" - } - ] - }, - { - "uuid": "ro-2-0-1-op-fc-bm-009", - "name": [ - { - "value-name": "ForwardingKind", - "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" - }, - { - "value-name": "ForwardingName", - "value": "ServiceRequestCausesFcPortUpdateRequest" - } - ], - "fc-port": [ - { - "local-id": "000", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-0-1-op-s-bm-009" - }, - { - "local-id": "200", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-bm-alt-1-0-0-004" - } - ] - }, - - { - "uuid": "ro-2-0-1-op-fc-bm-010", - "name": [ - { - "value-name": "ForwardingKind", - "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" - }, - { - "value-name": "ForwardingName", - "value": "ServiceRequestCausesFcPortDeletionRequest" - } - ], - "fc-port": [ - { - "local-id": "000", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-0-1-op-s-bm-009" - }, - { - "local-id": "100", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-bm-004" - }, - { - "local-id": "101", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-is-003" - }, - { - "local-id": "200", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-bm-alt-1-0-0-005" - } - ] - }, - { - "uuid": "ro-2-0-1-op-fc-bm-011", - "name": [ - { - "value-name": "ForwardingKind", - "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" - }, - { - "value-name": "ForwardingName", - "value": "OamRequestCausesLtpUpdateRequest" - } - ], - "fc-port": [ - { - "local-id": "000", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-0-1-op-s-bm-009" - }, - { - "local-id": "200", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-bm-alt-1-0-0-001" - } - ] - }, - { - "uuid": "ro-2-0-1-op-fc-bm-012", - "name": [ - { - "value-name": "ForwardingKind", - "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" - }, - { - "value-name": "ForwardingName", - "value": "OamRequestCausesLtpDeletionRequest" - } - ], - "fc-port": [ - { - "local-id": "000", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-0-1-op-s-bm-009" - }, - { - "local-id": "200", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-bm-alt-1-0-0-002" - } - ] - }, - { - "uuid": "ro-2-0-1-op-fc-bm-013", - "name": [ - { - "value-name": "ForwardingKind", - "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" - }, - { - "value-name": "ForwardingName", - "value": "OamRequestCausesFcUpdateRequest" - } - ], - "fc-port": [ - { - "local-id": "000", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-0-1-op-s-bm-009" - }, - { - "local-id": "200", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-bm-alt-1-0-0-003" - } - ] - }, - { - "uuid": "ro-2-0-1-op-fc-bm-014", - "name": [ - { - "value-name": "ForwardingKind", - "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" - }, - { - "value-name": "ForwardingName", - "value": "OamRequestCausesFcPortUpdateRequest" - } - ], - "fc-port": [ - { - "local-id": "000", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-0-1-op-s-bm-009" - }, - { - "local-id": "200", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-bm-alt-1-0-0-004" - } - ] - }, - { - "uuid": "ro-2-0-1-op-fc-bm-015", - "name": [ - { - "value-name": "ForwardingKind", - "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" - }, - { - "value-name": "ForwardingName", - "value": "OamRequestCausesFcPortDeletionRequest" - } - ], - "fc-port": [ - { - "local-id": "000", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-0-1-op-s-bm-009" - }, - { - "local-id": "200", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-bm-alt-1-0-0-005" - } - ] - }, - { - "uuid": "ro-2-0-1-op-fc-is-005", - "name": [ - { - "value-name": "ForwardingKind", - "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" - }, - { - "value-name": "ForwardingName", - "value": "RegistrationCausesInquiryForApplicationTypeApproval" - } - ], - "fc-port": [ - { - "local-id": "000", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-0-1-op-s-is-006" - }, - { - "local-id": "100", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-is-001" - }, - { - "local-id": "200", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-im-tar-1-0-0-003" - } - ] - }, - { - "uuid": "ro-2-0-1-op-fc-is-006", - "name": [ - { - "value-name": "ForwardingKind", - "value": "core-model-1-4:FORWARDING_KIND_TYPE_SUBSCRIPTION" - }, - { - "value-name": "ForwardingName", - "value": "DeregistrationNotification" - } - ], - "fc-port": [ - { - "local-id": "000", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-0-1-op-s-is-007" - }, - { - "local-id": "001", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-0-1-op-s-bm-004" - }, - { - "local-id": "100", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-is-002" - }, - { - "local-id": "200", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-im-tar-1-0-0-004" - }, - { - "local-id": "201", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-im-eatl-1-0-0-004" - }, - { - "local-id": "202", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-im-ol-1-0-0-004" - }, - { - "local-id": "203", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-im-aa-1-0-0-004" - }, - { - "local-id": "204", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-im-alt-1-0-0-004" - }, - { - "local-id": "205", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-im-okm-1-0-0-004" - } - ] - }, - { - "uuid": "ro-2-0-1-op-fc-is-000", - "name": [ - { - "value-name": "ForwardingKind", - "value": "core-model-1-4:FORWARDING_KIND_TYPE_PROCESS_SNIPPET" - }, - { - "value-name": "ForwardingName", - "value": "TypeApprovalCausesRequestForEmbedding" - } - ], - "fc-port": [ - { - "local-id": "000", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-0-1-op-s-is-001" - }, - { - "local-id": "001", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-0-1-op-s-is-002" - }, - { - "local-id": "100", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-is-003" - }, - { - "local-id": "201", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-im-tar-1-0-0-000" - }, - { - "local-id": "202", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-im-eatl-1-0-0-000" - }, - { - "local-id": "203", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-im-ol-1-0-0-000" - }, - { - "local-id": "204", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-im-aa-1-0-0-000" - }, - { - "local-id": "205", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-im-alt-1-0-0-000" - }, - { - "local-id": "206", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-im-okm-1-0-0-000" - }, - { - "local-id": "207", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-im-cc-1-0-0-000" - } - ] - }, - { - "uuid": "ro-2-0-1-op-fc-is-007", - "name": [ - { - "value-name": "ForwardingKind", - "value": "core-model-1-4:FORWARDING_KIND_TYPE_SUBSCRIPTION" - }, - { - "value-name": "ForwardingName", - "value": "ApprovalNotification" - } - ], - "fc-port": [ - { - "local-id": "000", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-0-1-op-s-is-008" - }, - { - "local-id": "001", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-0-1-op-s-bm-004" - }, - { - "local-id": "100", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-is-003" - }, - { - "local-id": "200", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-im-eatl-1-0-0-003" - }, - { - "local-id": "201", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-im-ol-1-0-0-003" - }, - { - "local-id": "202", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-im-aa-1-0-0-003" - }, - { - "local-id": "203", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-im-alt-1-0-0-003" - }, - { - "local-id": "204", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-im-okm-1-0-0-003" - } - ] - }, - { - "uuid": "ro-2-0-1-op-fc-is-008", - "name": [ - { - "value-name": "ForwardingKind", - "value": "core-model-1-4:FORWARDING_KIND_TYPE_SUBSCRIPTION" - }, - { - "value-name": "ForwardingName", - "value": "WithdrawnApprovalNotification" - } - ], - "fc-port": [ - { - "local-id": "000", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-0-1-op-s-is-009" - }, - { - "local-id": "001", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-0-1-op-s-bm-004" - }, - { - "local-id": "100", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-is-003" - }, - { - "local-id": "200", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-im-eatl-1-0-0-004" - }, - { - "local-id": "201", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-im-ol-1-0-0-004" - }, - { - "local-id": "202", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-im-aa-1-0-0-004" - }, - { - "local-id": "203", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-im-alt-1-0-0-004" - }, - { - "local-id": "204", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-im-okm-1-0-0-004" - } - ] - }, - { - "uuid": "ro-2-0-1-op-fc-is-009", - "name": [ - { - "value-name": "ForwardingKind", - "value": "core-model-1-4:FORWARDING_KIND_TYPE_SUBSCRIPTION" - }, - { - "value-name": "ForwardingName", - "value": "ServerReplacementBroadcast" - } - ], - "fc-port": [ - { - "local-id": "000", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-0-1-op-s-is-003" - }, - { - "local-id": "001", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-0-1-op-s-is-002" - }, - { - "local-id": "100", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-is-010" - }, - { - "local-id": "200", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-im-ro-2-0-1-001" - }, - { - "local-id": "201", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-im-tar-1-0-0-001" - }, - { - "local-id": "202", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-im-eatl-1-0-0-001" - }, - { - "local-id": "203", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-im-ol-1-0-0-001" - }, - { - "local-id": "204", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-im-aa-1-0-0-001" - }, - { - "local-id": "205", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-im-alt-1-0-0-001" - }, - { - "local-id": "206", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-im-okm-1-0-0-001" - }, - { - "local-id": "207", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-im-cc-1-0-0-001" - } - ] - }, - { - "uuid": "ro-2-0-1-op-fc-is-010", - "name": [ - { - "value-name": "ForwardingKind", - "value": "core-model-1-4:FORWARDING_KIND_TYPE_SUBSCRIPTION" - }, - { - "value-name": "ForwardingName", - "value": "OperationUpdateBroadcast" - } - ], - "fc-port": [ - { - "local-id": "000", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-0-1-op-s-is-003" - }, - { - "local-id": "001", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-0-1-op-s-is-002" - }, - { - "local-id": "100", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-0-1-op-s-is-011" - }, - { - "local-id": "200", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-im-ro-2-0-1-002" - }, - { - "local-id": "201", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-im-tar-1-0-0-002" - }, - { - "local-id": "202", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-im-eatl-1-0-0-002" - }, - { - "local-id": "203", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-im-ol-1-0-0-002" - }, - { - "local-id": "204", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-im-aa-1-0-0-002" - }, - { - "local-id": "205", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-im-alt-1-0-0-002" - }, - { - "local-id": "206", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-im-okm-1-0-0-002" - }, - { - "local-id": "207", - "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-0-1-op-c-im-cc-1-0-0-002" - } - ] - } - ] - } - ] - } - } \ No newline at end of file diff --git a/server/index.js b/server/index.js index 4261f5d..042b98c 100644 --- a/server/index.js +++ b/server/index.js @@ -5,7 +5,7 @@ var path = require('path'); var http = require('http'); var oas3Tools = require('openbackhaul-oas3-tools'); var appCommons = require('onf-core-model-ap/applicationPattern/commons/AppCommons'); -var serverPort = 3000; +var serverPort = 3024; // uncomment if you do not want to validate security e.g. operation-key, basic auth, etc // appCommons.openApiValidatorOptions.validateSecurity = false; @@ -30,7 +30,8 @@ http.createServer(app).listen(serverPort, function () { }); //setting the path to the database -global.databasePath = './database/load.json' +global.databasePath = './database/config.json'; +global.applicationDataPath = './application-data/'; let getWaitTimeApproveValue = MonitorTypeApprovalChannel.getWaitTimeApproveValue() getWaitTimeApproveValue.then((waitTimeApproveValue)=>{ setInterval( MonitorTypeApprovalChannel.MonitorApprovalStatusChannel, waitTimeApproveValue); diff --git a/server/package-lock.json b/server/package-lock.json index 603bee0..dfd27e1 100644 --- a/server/package-lock.json +++ b/server/package-lock.json @@ -1,8 +1,2683 @@ { "name": "registryoffice", - "version": "2.0.1", - "lockfileVersion": 1, + "version": "2.1.1", + "lockfileVersion": 2, "requires": true, + "packages": { + "": { + "name": "registryoffice", + "version": "2.1.1", + "license": "Unlicense", + "dependencies": { + "connect": "^3.2.0", + "http-errors": "^2.0.0", + "js-yaml": "^3.3.0", + "onf-core-model-ap": "2.1.1", + "onf-core-model-ap-bs": "2.1.1", + "openbackhaul-oas3-tools": "2.3.1-alpha.3" + }, + "devDependencies": { + "eslint": "^8.44.0" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@apidevtools/json-schema-ref-parser": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz", + "integrity": "sha512-GBD2Le9w2+lVFoc4vswGI/TjkNIZSVp7+9xPf+X3uidBfWnAeUWmquteSyt0+VCrhNMWj/FTABISQrD3Z/YA+w==", + "dependencies": { + "@jsdevtools/ono": "^7.1.3", + "@types/json-schema": "^7.0.6", + "call-me-maybe": "^1.0.1", + "js-yaml": "^4.1.0" + } + }, + "node_modules/@apidevtools/json-schema-ref-parser/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/@apidevtools/json-schema-ref-parser/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@elastic/elasticsearch": { + "version": "7.17.13", + "resolved": "https://registry.npmjs.org/@elastic/elasticsearch/-/elasticsearch-7.17.13.tgz", + "integrity": "sha512-GMXtFVqd3FgUlTtPL/GDc+3GhwvfZ0kSuegCvVVqb58kd+0I6U6u7PL8QFRLHtwzqLEBmYLdwr4PRkBAWKGlzA==", + "dependencies": { + "debug": "^4.3.1", + "hpagent": "^0.1.1", + "ms": "^2.1.3", + "secure-json-parse": "^2.4.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@elastic/elasticsearch/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@elastic/elasticsearch/node_modules/debug/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/@elastic/elasticsearch/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/@eslint/eslintrc/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", + "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", + "dev": true + }, + "node_modules/@jsdevtools/ono": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", + "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==" + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/express": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.43", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.43.tgz", + "integrity": "sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==" + }, + "node_modules/@types/multer": { + "version": "1.4.11", + "resolved": "https://registry.npmjs.org/@types/multer/-/multer-1.4.11.tgz", + "integrity": "sha512-svK240gr6LVWvv3YGyhLlA+6LRRWA4mnGIU7RcNmgjBYFl6665wcXrRfxGp5tEPVHUNm5FMcmq7too9bxCwX/w==", + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/node": { + "version": "20.11.27", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.27.tgz", + "integrity": "sha512-qyUZfMnCg1KEz57r7pzFtSGt49f6RPkPBis3Vo4PbS7roQEDn22hiHzl/Lo1q4i4hDEgBJmBF/NTNg2XR0HbFg==", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/qs": { + "version": "6.9.12", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.12.tgz", + "integrity": "sha512-bZcOkJ6uWrL0Qb2NAWKa7TBU+mJHPzhx9jjLL1KHF+XpzEcR7EXHvjbHlGtR/IsP1vyPrehuS6XqkmaePy//mg==" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" + }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", + "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", + "dependencies": { + "@types/http-errors": "*", + "@types/mime": "*", + "@types/node": "*" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/append-field": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", + "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==" + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/async-lock": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/async-lock/-/async-lock-1.4.1.tgz", + "integrity": "sha512-Az2ZTpuytrtqENulXwO3GGv1Bztugx6TT37NIo7imr/Qo0gsYiGtSdBa2B6fsXhTpVZDNfu1Qn3pk531e3q+nQ==" + }, + "node_modules/axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "dependencies": { + "follow-redirects": "^1.14.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base-64": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/base-64/-/base-64-1.0.0.tgz", + "integrity": "sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==" + }, + "node_modules/basic-auth": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", + "dependencies": { + "safe-buffer": "5.1.2" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/basic-auth/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-me-maybe": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz", + "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==" + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dependencies": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-parser": { + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz", + "integrity": "sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==", + "dependencies": { + "cookie": "0.4.1", + "cookie-signature": "1.0.6" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/drange": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/drange/-/drange-1.1.1.tgz", + "integrity": "sha512-pYxfDYpued//QpnLIm4Avk7rsNtAtQkUES2cwAYSvD/wd2pKD71gN2Ebj3e7klzXwjocvE8c5vx/1fxwpqmSxA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/eslint/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/eslint/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "4.18.3", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.3.tgz", + "integrity": "sha512-6VyCijWQ+9O7WuVMTRBTl+cjNNIzD5cY5mQ1WM8r/LEkI2u8EYpOotESNwzNlyCn3g+dmjKYI6BmNneSr/FSRw==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express-openapi-validator": { + "version": "4.13.8", + "resolved": "https://registry.npmjs.org/express-openapi-validator/-/express-openapi-validator-4.13.8.tgz", + "integrity": "sha512-89/sdkq+BKBuIyykaMl/vR9grFc3WFUPTjFo0THHbu+5g+q8rA7fKeoMfz+h84yOQIBcztmJ5ZJdk5uhEls31A==", + "dependencies": { + "@types/multer": "^1.4.7", + "ajv": "^6.12.6", + "content-type": "^1.0.4", + "json-schema-ref-parser": "^9.0.9", + "lodash.clonedeep": "^4.5.0", + "lodash.get": "^4.4.2", + "lodash.uniq": "^4.5.0", + "lodash.zipobject": "^4.1.3", + "media-typer": "^1.1.0", + "multer": "^1.4.5-lts.1", + "ono": "^7.1.3", + "path-to-regexp": "^6.2.0" + } + }, + "node_modules/express-openapi-validator/node_modules/path-to-regexp": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz", + "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==" + }, + "node_modules/express/node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hpagent": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/hpagent/-/hpagent-0.1.2.tgz", + "integrity": "sha512-ePqFXHtSQWAFXYmj+JtOTHr84iNrII4/QRlAAPPE+zqnKy4xJo7Ie1Y4kC7AdB+LxLxSTTzBMASsEcy0q8YyvQ==" + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-errors/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-schema-ref-parser": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz", + "integrity": "sha512-qcP2lmGy+JUoQJ4DOQeLaZDqH9qSkeGCK3suKWxJXS82dg728Mn3j97azDMaOUmJAN4uCq91LdPx4K7E8F1a7Q==", + "deprecated": "Please switch to @apidevtools/json-schema-ref-parser", + "dependencies": { + "@apidevtools/json-schema-ref-parser": "9.0.9" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" + }, + "node_modules/lodash.zipobject": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/lodash.zipobject/-/lodash.zipobject-4.1.3.tgz", + "integrity": "sha512-A9SzX4hMKWS25MyalwcOnNoplyHbkNVsjidhTp8ru0Sj23wY9GWBKS8gAIGDSAqeWjIjvE4KBEl24XXAs+v4wQ==" + }, + "node_modules/media-typer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", + "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/moment": { + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", + "engines": { + "node": "*" + } + }, + "node_modules/morgan": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz", + "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==", + "dependencies": { + "basic-auth": "~2.0.1", + "debug": "2.6.9", + "depd": "~2.0.0", + "on-finished": "~2.3.0", + "on-headers": "~1.0.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/multer": { + "version": "1.4.5-lts.1", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz", + "integrity": "sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ==", + "dependencies": { + "append-field": "^1.0.0", + "busboy": "^1.0.0", + "concat-stream": "^1.5.2", + "mkdirp": "^0.5.4", + "object-assign": "^4.1.1", + "type-is": "^1.6.4", + "xtend": "^4.0.0" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/node-statsd": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/node-statsd/-/node-statsd-0.1.1.tgz", + "integrity": "sha512-QDf6R8VXF56QVe1boek8an/Rb3rSNaxoFWb7Elpsv2m1+Noua1yy0F1FpKpK5VluF8oymWM4w764A4KsYL4pDg==", + "engines": { + "node": ">=0.1.97" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onf-core-model-ap": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/onf-core-model-ap/-/onf-core-model-ap-2.1.1.tgz", + "integrity": "sha512-l+F2ycuLdXGR+Z2m//oLfzyewcnEUX0e6+cjNlzLb6te9orQLsY/H1TOG0z2jwDKN78YPjDVq+p9QkG6NQu8kQ==", + "dependencies": { + "@elastic/elasticsearch": "~7.17.0", + "async-lock": "^1.4.0", + "axios": "^0.21.1", + "base-64": "^1.0.0", + "connect": "^3.2.0", + "http-errors": "^2.0.0", + "js-yaml": "^3.3.0", + "moment": "^2.29.1", + "node-statsd": "^0.1.1", + "openbackhaul-oas3-tools": "2.3.1-alpha.3", + "randexp": "^0.5.3", + "response-time": "^2.3.2" + } + }, + "node_modules/onf-core-model-ap-bs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/onf-core-model-ap-bs/-/onf-core-model-ap-bs-2.1.1.tgz", + "integrity": "sha512-v6ZEtrmbu0Xc5vno6cW/Bra3syd2nTvMiq7XVDMQ47U5yF2XU87rpOKqH/ZlhgWFSR7PH71E8q2nlxmfMuxfdw==", + "dependencies": { + "axios": "^0.21.1", + "base-64": "^1.0.0", + "connect": "^3.2.0", + "http-errors": "^2.0.0", + "js-yaml": "^3.3.0", + "moment": "^2.29.1", + "node-statsd": "^0.1.1", + "onf-core-model-ap": "2.1.1", + "openbackhaul-oas3-tools": "2.3.1-alpha.3", + "randexp": "^0.5.3", + "response-time": "^2.3.2" + } + }, + "node_modules/ono": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/ono/-/ono-7.1.3.tgz", + "integrity": "sha512-9jnfVriq7uJM4o5ganUY54ntUm+5EK21EGaQ5NWnkWg3zz5ywbbonlBguRcnmF1/HDiIe3zxNxXcO1YPBmPcQQ==", + "dependencies": { + "@jsdevtools/ono": "7.1.3" + } + }, + "node_modules/openbackhaul-oas3-tools": { + "version": "2.3.1-alpha.3", + "resolved": "https://registry.npmjs.org/openbackhaul-oas3-tools/-/openbackhaul-oas3-tools-2.3.1-alpha.3.tgz", + "integrity": "sha512-Ga+fKAdToBSIokJ9o9GIX4dg78wUpQsnL0SLhosQRGp6sPAjEM8gqefqCdthPveDL7A/w+kEznWSLfCpdE2tJA==", + "dependencies": { + "cookie-parser": "^1.4.6", + "cors": "^2.8.5", + "debug": "^4.3.4", + "express": "^4.18.1", + "express-openapi-validator": "^4.13.8", + "js-yaml": "^4.1.0", + "lodash": "^4.17.21", + "morgan": "^1.10.0", + "parseurl": "^1.3.3", + "serve-static": "^1.15.0" + } + }, + "node_modules/openbackhaul-oas3-tools/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/openbackhaul-oas3-tools/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/openbackhaul-oas3-tools/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/openbackhaul-oas3-tools/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/randexp": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.5.3.tgz", + "integrity": "sha512-U+5l2KrcMNOUPYvazA3h5ekF80FHTUG+87SEAmHZmolh1M+i/WyTCxVzmi+tidIa1tM4BSe8g2Y/D3loWDjj+w==", + "dependencies": { + "drange": "^1.0.2", + "ret": "^0.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/response-time": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/response-time/-/response-time-2.3.2.tgz", + "integrity": "sha512-MUIDaDQf+CVqflfTdQ5yam+aYCkXj1PY8fjlPDQ6ppxJlmgZb864pHtA750mayywNg8tx4rS7qH9JXd/OF+3gw==", + "dependencies": { + "depd": "~1.1.0", + "on-headers": "~1.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/response-time/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ret": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.2.2.tgz", + "integrity": "sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/secure-json-parse": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.7.0.tgz", + "integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==" + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/send/node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/send/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/type-is/node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, "dependencies": { "@aashutoshrathi/word-wrap": { "version": "1.2.6", @@ -79,15 +2754,15 @@ } }, "@eslint-community/regexpp": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.6.2.tgz", - "integrity": "sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", "dev": true }, "@eslint/eslintrc": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.1.tgz", - "integrity": "sha512-9t7ZA7NGGK8ckelF0PQCfcxIUzs1Md5rrO6U/c+FIQNanea5UZC0wqKXH4vHBccmu4ZJgZ2idtPeW7+Q2npOEA==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -134,19 +2809,19 @@ } }, "@eslint/js": { - "version": "8.46.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.46.0.tgz", - "integrity": "sha512-a8TLtmPi8xzPkCbp/OGFUo5yhRkHM2Ko9kOWP4znJr0WAhWyThaw3PnwX4vOTWOAMsV2uRt32PPDcEz63esSaA==", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", "dev": true }, "@humanwhocodes/config-array": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", - "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==", + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", "dev": true, "requires": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", "minimatch": "^3.0.5" }, "dependencies": { @@ -174,9 +2849,9 @@ "dev": true }, "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", + "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", "dev": true }, "@jsdevtools/ono": { @@ -211,26 +2886,26 @@ } }, "@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", "requires": { "@types/connect": "*", "@types/node": "*" } }, "@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", "requires": { "@types/node": "*" } }, "@types/express": { - "version": "4.17.17", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", - "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", "requires": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.33", @@ -239,9 +2914,9 @@ } }, "@types/express-serve-static-core": { - "version": "4.17.35", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz", - "integrity": "sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==", + "version": "4.17.43", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.43.tgz", + "integrity": "sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==", "requires": { "@types/node": "*", "@types/qs": "*", @@ -249,57 +2924,72 @@ "@types/send": "*" } }, + "@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==" + }, "@types/json-schema": { - "version": "7.0.12", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", - "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==" + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" }, "@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==" }, "@types/multer": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/@types/multer/-/multer-1.4.7.tgz", - "integrity": "sha512-/SNsDidUFCvqqcWDwxv2feww/yqhNeTRL5CVoL3jU4Goc4kKEL10T7Eye65ZqPNi4HRx8sAEX59pV1aEH7drNA==", + "version": "1.4.11", + "resolved": "https://registry.npmjs.org/@types/multer/-/multer-1.4.11.tgz", + "integrity": "sha512-svK240gr6LVWvv3YGyhLlA+6LRRWA4mnGIU7RcNmgjBYFl6665wcXrRfxGp5tEPVHUNm5FMcmq7too9bxCwX/w==", "requires": { "@types/express": "*" } }, "@types/node": { - "version": "20.3.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.3.1.tgz", - "integrity": "sha512-EhcH/wvidPy1WeML3TtYFGR83UzjxeWRen9V402T8aUGYsCHOmfoisV3ZSg03gAFIbLq8TnWOJ0f4cALtnSEUg==" + "version": "20.11.27", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.27.tgz", + "integrity": "sha512-qyUZfMnCg1KEz57r7pzFtSGt49f6RPkPBis3Vo4PbS7roQEDn22hiHzl/Lo1q4i4hDEgBJmBF/NTNg2XR0HbFg==", + "requires": { + "undici-types": "~5.26.4" + } }, "@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + "version": "6.9.12", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.12.tgz", + "integrity": "sha512-bZcOkJ6uWrL0Qb2NAWKa7TBU+mJHPzhx9jjLL1KHF+XpzEcR7EXHvjbHlGtR/IsP1vyPrehuS6XqkmaePy//mg==" }, "@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" }, "@types/send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz", - "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", "requires": { "@types/mime": "^1", "@types/node": "*" } }, "@types/serve-static": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.1.tgz", - "integrity": "sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==", + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", + "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", "requires": { + "@types/http-errors": "*", "@types/mime": "*", "@types/node": "*" } }, + "@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, "accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -310,16 +3000,17 @@ } }, "acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", "dev": true }, "acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true + "dev": true, + "requires": {} }, "ajv": { "version": "6.12.6", @@ -366,9 +3057,9 @@ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" }, "async-lock": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/async-lock/-/async-lock-1.4.0.tgz", - "integrity": "sha512-coglx5yIWuetakm3/1dsX9hxCNox22h7+V80RQOu2XUUMidtArxKoZoOtHUPuR84SycKTXzgGzAUR5hJxujyJQ==" + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/async-lock/-/async-lock-1.4.1.tgz", + "integrity": "sha512-Az2ZTpuytrtqENulXwO3GGv1Bztugx6TT37NIo7imr/Qo0gsYiGtSdBa2B6fsXhTpVZDNfu1Qn3pk531e3q+nQ==" }, "axios": { "version": "0.21.4", @@ -405,12 +3096,12 @@ } }, "body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", "requires": { "bytes": "3.1.2", - "content-type": "~1.0.4", + "content-type": "~1.0.5", "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", @@ -418,16 +3109,11 @@ "iconv-lite": "0.4.24", "on-finished": "2.4.1", "qs": "6.11.0", - "raw-body": "2.5.1", + "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" }, "dependencies": { - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" - }, "on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", @@ -467,12 +3153,15 @@ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" }, "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" } }, "call-me-maybe": { @@ -610,10 +3299,20 @@ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, + "define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "requires": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + } + }, "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" }, "destroy": { "version": "1.2.0", @@ -637,17 +3336,30 @@ "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + }, + "es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "requires": { + "get-intrinsic": "^1.2.4" + } + }, + "es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==" }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" }, "escape-string-regexp": { "version": "4.0.0", @@ -656,18 +3368,19 @@ "dev": true }, "eslint": { - "version": "8.46.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.46.0.tgz", - "integrity": "sha512-cIO74PvbW0qU8e0mIvk5IV3ToWdCq5FYG6gWPHHkx6gNdjlbAYvtfHmlCMXxjcoVaIdwy/IAt3+mDkZkfvb2Dg==", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.1", - "@eslint/js": "^8.46.0", - "@humanwhocodes/config-array": "^0.11.10", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -675,7 +3388,7 @@ "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.2", + "eslint-visitor-keys": "^3.4.3", "espree": "^9.6.1", "esquery": "^1.4.2", "esutils": "^2.0.2", @@ -743,9 +3456,9 @@ } }, "eslint-visitor-keys": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.2.tgz", - "integrity": "sha512-8drBzUEyZ2llkpCA67iYrgEssKDUu68V8ChqqOfFupIaG/LCVPUT+CoGJpT77zJprs4T/W7p07LP7zAIMuweVw==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true }, "espree": { @@ -800,13 +3513,13 @@ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" }, "express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "version": "4.18.3", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.3.tgz", + "integrity": "sha512-6VyCijWQ+9O7WuVMTRBTl+cjNNIzD5cY5mQ1WM8r/LEkI2u8EYpOotESNwzNlyCn3g+dmjKYI6BmNneSr/FSRw==", "requires": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.1", + "body-parser": "1.20.2", "content-disposition": "0.5.4", "content-type": "~1.0.4", "cookie": "0.5.0", @@ -842,11 +3555,6 @@ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" - }, "finalhandler": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", @@ -919,9 +3627,9 @@ "dev": true }, "fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dev": true, "requires": { "reusify": "^1.0.4" @@ -961,25 +3669,26 @@ } }, "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, "requires": { - "flatted": "^3.1.0", + "flatted": "^3.2.9", + "keyv": "^4.5.3", "rimraf": "^3.0.2" } }, "flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", "dev": true }, "follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==" + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==" }, "forwarded": { "version": "0.2.0", @@ -998,19 +3707,20 @@ "dev": true }, "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" }, "get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" } }, "glob": { @@ -1037,44 +3747,60 @@ } }, "globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "requires": { "type-fest": "^0.20.2" } }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "requires": { + "get-intrinsic": "^1.1.3" + } + }, "graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, + "has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "requires": { + "es-define-property": "^1.0.0" + } + }, "has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==" }, "has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" }, + "hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "requires": { + "function-bind": "^1.1.2" + } + }, "hpagent": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/hpagent/-/hpagent-0.1.2.tgz", @@ -1092,11 +3818,6 @@ "toidentifier": "1.0.1" }, "dependencies": { - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" - }, "statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", @@ -1113,9 +3834,9 @@ } }, "ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", "dev": true }, "import-fresh": { @@ -1195,6 +3916,12 @@ "esprima": "^4.0.0" } }, + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, "json-schema-ref-parser": { "version": "9.0.9", "resolved": "https://registry.npmjs.org/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz", @@ -1214,6 +3941,15 @@ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, + "keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "requires": { + "json-buffer": "3.0.1" + } + }, "levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -1320,9 +4056,9 @@ } }, "moment": { - "version": "2.29.4", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", - "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==" + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==" }, "morgan": { "version": "1.10.0", @@ -1334,19 +4070,12 @@ "depd": "~2.0.0", "on-finished": "~2.3.0", "on-headers": "~1.0.2" - }, - "dependencies": { - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" - } } }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "multer": { "version": "1.4.5-lts.1", @@ -1384,14 +4113,14 @@ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" }, "object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==" + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==" }, "on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", "requires": { "ee-first": "1.1.1" } @@ -1411,9 +4140,9 @@ } }, "onf-core-model-ap": { - "version": "2.0.2-alpha.2", - "resolved": "https://registry.npmjs.org/onf-core-model-ap/-/onf-core-model-ap-2.0.2-alpha.2.tgz", - "integrity": "sha512-Ezl7YG/7Nqu8pn6rozj2cT8pvoDMVAzMQsp1NxgGeTxfmMsFGeQQZsWqF2TrNJTL6riIQW8aJiOhG2ip1PtLJA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/onf-core-model-ap/-/onf-core-model-ap-2.1.1.tgz", + "integrity": "sha512-l+F2ycuLdXGR+Z2m//oLfzyewcnEUX0e6+cjNlzLb6te9orQLsY/H1TOG0z2jwDKN78YPjDVq+p9QkG6NQu8kQ==", "requires": { "@elastic/elasticsearch": "~7.17.0", "async-lock": "^1.4.0", @@ -1430,9 +4159,9 @@ } }, "onf-core-model-ap-bs": { - "version": "2.0.2-alpha.2", - "resolved": "https://registry.npmjs.org/onf-core-model-ap-bs/-/onf-core-model-ap-bs-2.0.2-alpha.2.tgz", - "integrity": "sha512-cCwfCqT+8KlsEvJ++hku1G8E8o49x4Dj9+4L+LIhBuVGNTOmJ9SEOfB5DFzDZhn5/NuAjYwYo1FVP3L7TtpCpg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/onf-core-model-ap-bs/-/onf-core-model-ap-bs-2.1.1.tgz", + "integrity": "sha512-v6ZEtrmbu0Xc5vno6cW/Bra3syd2nTvMiq7XVDMQ47U5yF2XU87rpOKqH/ZlhgWFSR7PH71E8q2nlxmfMuxfdw==", "requires": { "axios": "^0.21.1", "base-64": "^1.0.0", @@ -1441,7 +4170,7 @@ "js-yaml": "^3.3.0", "moment": "^2.29.1", "node-statsd": "^0.1.1", - "onf-core-model-ap": "2.0.2-alpha.2", + "onf-core-model-ap": "2.1.1", "openbackhaul-oas3-tools": "2.3.1-alpha.3", "randexp": "^0.5.3", "response-time": "^2.3.2" @@ -1590,9 +4319,9 @@ } }, "punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==" }, "qs": { "version": "6.11.0", @@ -1623,9 +4352,9 @@ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" }, "raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", "requires": { "bytes": "3.1.2", "http-errors": "2.0.0", @@ -1667,6 +4396,13 @@ "requires": { "depd": "~1.1.0", "on-headers": "~1.0.1" + }, + "dependencies": { + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==" + } } }, "ret": { @@ -1733,11 +4469,6 @@ "statuses": "2.0.1" }, "dependencies": { - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" - }, "ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -1769,6 +4500,19 @@ "send": "0.18.0" } }, + "set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "requires": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + } + }, "setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", @@ -1790,24 +4534,25 @@ "dev": true }, "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" } }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" }, "statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==" }, "streamsearch": { "version": "1.1.0", @@ -1900,10 +4645,15 @@ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" }, + "undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" }, "uri-js": { "version": "4.4.1", @@ -1921,7 +4671,7 @@ "utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" }, "vary": { "version": "1.1.2", diff --git a/server/package.json b/server/package.json index c6a2f63..479fee4 100644 --- a/server/package.json +++ b/server/package.json @@ -1,6 +1,6 @@ { "name": "registryoffice", - "version": "2.0.1", + "version": "2.1.1", "description": "No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)", "main": "index.js", "scripts": { @@ -16,8 +16,8 @@ "connect": "^3.2.0", "http-errors": "^2.0.0", "js-yaml": "^3.3.0", - "onf-core-model-ap": "2.0.2-alpha.2", - "onf-core-model-ap-bs": "2.0.2-alpha.2", + "onf-core-model-ap": "2.1.1", + "onf-core-model-ap-bs": "2.1.1", "openbackhaul-oas3-tools": "2.3.1-alpha.3" }, "devDependencies": { diff --git a/server/service/FileProfileService.js b/server/service/FileProfileService.js index f11432c..060c2a6 100644 --- a/server/service/FileProfileService.js +++ b/server/service/FileProfileService.js @@ -33,10 +33,10 @@ exports.getFileProfileFileIdentifier = async function(url) { * uuid String * returns inline_response_200_18 **/ -exports.getFileProfileFilePath = async function(url) { +exports.getFileProfileFileName = async function(url) { const value = await fileOperation.readFromDatabaseAsync(url); return { - "file-profile-1-0:file-path": value + "file-profile-1-0:file-name": value }; } @@ -53,40 +53,14 @@ exports.getFileProfileOperation = async function(url) { }; } -/** - * Returns the password for acccessing the file - * - * uuid String - * returns inline_response_200_20 - **/ -exports.getFileProfilePassword = async function(url) { - const value = await fileOperation.readFromDatabaseAsync(url); - return { - "file-profile-1-0:password": value - }; -} - -/** - * Returns the user name for acccessing the file - * - * uuid String - * returns inline_response_200_19 - **/ -exports.getFileProfileUserName = async function(url) { - const value = await fileOperation.readFromDatabaseAsync(url); - return { - "file-profile-1-0:user-name": value - }; -} - /** * Configures path of the file * - * body Fileprofileconfiguration_filepath_body + * body Fileprofileconfiguration_FileName_body * uuid String * no response value expected for this operation **/ -exports.putFileProfileFilePath = async function(body, url) { +exports.putFileProfileFileName = async function(body, url) { await fileOperation.writeToDatabaseAsync(url, body, false); } @@ -99,26 +73,4 @@ exports.putFileProfileFilePath = async function(body, url) { **/ exports.putFileProfileOperation = async function(body, url) { await fileOperation.writeToDatabaseAsync(url, body, false); -} - -/** - * Configures the password for acccessing the file - * - * body Fileprofileconfiguration_password_body - * uuid String - * no response value expected for this operation - **/ -exports.putFileProfilePassword = async function(body, url) { - await fileOperation.writeToDatabaseAsync(url, body, false); -} - -/** - * Configures the user name for acccessing the file - * - * body Fileprofileconfiguration_username_body - * uuid String - * no response value expected for this operation - **/ -exports.putFileProfileUserName = async function(body, url) { - await fileOperation.writeToDatabaseAsync(url, body, false); -} +} \ No newline at end of file diff --git a/server/service/IndividualServicesService.js b/server/service/IndividualServicesService.js index 227d50c..3a2cc26 100644 --- a/server/service/IndividualServicesService.js +++ b/server/service/IndividualServicesService.js @@ -1,4 +1,3 @@ -// @ts-check 'use strict'; const LogicalTerminationPointConfigurationInput = require('onf-core-model-ap/applicationPattern/onfModel/services/models/logicalTerminationPoint/ConfigurationInputV2'); @@ -14,13 +13,11 @@ const httpServerInterface = require('onf-core-model-ap/applicationPattern/onfMod const tcpServerInterface = require('onf-core-model-ap/applicationPattern/onfModel/models/layerProtocols/TcpServerInterface'); const operationServerInterface = require('onf-core-model-ap/applicationPattern/onfModel/models/layerProtocols/OperationServerInterface'); const httpClientInterface = require('onf-core-model-ap/applicationPattern/onfModel/models/layerProtocols/HttpClientInterface'); -const OperationClientInterface = require('onf-core-model-ap/applicationPattern/onfModel/models/layerProtocols/OperationClientInterface'); const onfAttributeFormatter = require('onf-core-model-ap/applicationPattern/onfModel/utility/OnfAttributeFormatter'); const consequentAction = require('onf-core-model-ap/applicationPattern/rest/server/responseBody/ConsequentAction'); const responseValue = require('onf-core-model-ap/applicationPattern/rest/server/responseBody/ResponseValue'); const logicalTerminationPoint = require('onf-core-model-ap/applicationPattern/onfModel/models/LogicalTerminationPoint'); const tcpClientInterface = require('onf-core-model-ap/applicationPattern/onfModel/models/layerProtocols/TcpClientInterface'); -const FcPort = require('onf-core-model-ap/applicationPattern/onfModel/models/FcPort'); const MonitorTypeApprovalChannel = require('./individualServices/MonitorTypeApprovalChannel'); const ApplicationPreceedingVersion = require('./individualServices/ApplicationPreceedingVersion'); const individualServicesOperationsMapping = require('./individualServices/IndividualServicesOperationsMapping'); @@ -762,9 +759,9 @@ exports.registerApplication2 = async function (body, user, originator, xCorrelat let disposeRemaindersOperation; let precedingReleaseOperation; let subsequentReleaseOperation; - if (body.hasOwnProperty("tcp-server-list")) { + if (Object.prototype.hasOwnProperty.call(body, "tcp-server-list")) { tcpServer = body["tcp-server-list"][0]; - } else if (body.hasOwnProperty("tcp-server")) { + } else if (Object.prototype.hasOwnProperty.call(body, "tcp-server")) { tcpServer = body["tcp-server"]; disposeRemaindersOperation = body["dispose-remainders-operation"]; precedingReleaseOperation = body["preceding-release-operation"]; diff --git a/server/service/individualServices/EventDispatcherWithResponse.js b/server/service/individualServices/EventDispatcherWithResponse.js new file mode 100644 index 0000000..585cc65 --- /dev/null +++ b/server/service/individualServices/EventDispatcherWithResponse.js @@ -0,0 +1,161 @@ +'use strict'; + +const LogicalTerminationPoint = require('onf-core-model-ap/applicationPattern/onfModel/models/LogicalTerminationPoint'); +const OperationClientInterface = require('onf-core-model-ap/applicationPattern/onfModel/models/layerProtocols/OperationClientInterface'); +const HttpServerInterface = require('onf-core-model-ap/applicationPattern/onfModel/models/layerProtocols/HttpServerInterface'); +const HttpClientInterface = require('onf-core-model-ap/applicationPattern/onfModel/models/layerProtocols/HttpClientInterface'); +const OnfAttributeFormatter = require('onf-core-model-ap/applicationPattern/onfModel/utility/OnfAttributeFormatter'); +const RequestHeader = require('onf-core-model-ap/applicationPattern/rest/client/RequestHeader'); +const RestRequestBuilder = require('onf-core-model-ap/applicationPattern/rest/client/RequestBuilder'); +const ExecutionAndTraceService = require('onf-core-model-ap/applicationPattern/services/ExecutionAndTraceService'); +const OperationServerInterface = require('onf-core-model-ap/applicationPattern/onfModel/models/layerProtocols/OperationServerInterface'); +const restClient = require('onf-core-model-ap/applicationPattern/rest/client/Client'); +const Qs = require('qs'); +const createHttpError = require('http-errors'); + +/** + * This function formulates the request body based on the operation name and application + * @param {String} operationClientUuid uuid of the client operation that needs to be addressed + * @param {object} httpRequestBody request body for the operation + * @param {String} user username of the request initiator. + * @param {String} xCorrelator UUID for the service execution flow that allows to correlate requests and responses. + * @param {String} traceIndicator Sequence number of the request. + * @param {String} customerJourney Holds information supporting customer’s journey to which the execution applies. + * @param {String} httpMethod method of the request if undefined defaults to POST + * @param {Object} params path and query parameters + */ +exports.dispatchEvent = async function (operationClientUuid, httpRequestBody, user, xCorrelator, traceIndicator, customerJourney, httpMethod, params) { + let response = {}; + let operationKey = await OperationClientInterface.getOperationKeyAsync( + operationClientUuid); + let operationName = await OperationClientInterface.getOperationNameAsync( + operationClientUuid); + + let httpClientUuid = await LogicalTerminationPoint.getServerLtpListAsync(operationClientUuid); + let serverApplicationName = await HttpClientInterface.getApplicationNameAsync(httpClientUuid[0]); + let serverApplicationReleaseNumber = await HttpClientInterface.getReleaseNumberAsync(httpClientUuid[0]); + let originator = await HttpServerInterface.getApplicationNameAsync(); + + let httpRequestHeader = new RequestHeader( + user, + originator, + xCorrelator, + traceIndicator, + customerJourney, + operationKey + ); + httpRequestHeader = OnfAttributeFormatter.modifyJsonObjectKeysToKebabCase(httpRequestHeader); + + let responseReceived = await RestRequestBuilder.BuildAndTriggerRestRequest( + operationClientUuid, + httpMethod, + httpRequestHeader, + httpRequestBody, + params + ); + response.code = responseReceived.status; + if (response.code.toString().startsWith("2")) { + response.data = responseReceived.data; + } else { + ExecutionAndTraceService.recordServiceRequestFromClient( + serverApplicationName, + serverApplicationReleaseNumber, + xCorrelator, + traceIndicator, + user, + originator, + operationName, + response.code, + httpRequestBody, + response.data) + .catch((error) => console.log(`record service request ${JSON.stringify({ + xCorrelator, + traceIndicator, + user, + originator, + serverApplicationName, + serverApplicationReleaseNumber, + operationName, + resCode : response.code, + reqBody: httpRequestBody, + resBody: response.data + })} failed with error: ${error.message}`)); + } + return response; +} + +/** + * This function Builds and trigger request to the requestor + * @param {String} requestorProtocol protocol to address the requestor + * @param {String} requestorAddress address of the requestor + * @param {String} requestorPort port to address the requestor + * @param {String} requestorReceiveOperation operation name to address the requestor. + * @param {Object} requestHeaders Holds information of the requestHeaders like Xcorrelator , CustomerJourney,User etc. + * @param {Object} requestBody request body for the operation + * @param {String} method method of the request + * @param {Integer} traceIndicatorIncrementer traceIndicatorIncrementer to increment the trace indicator + * @param {Object} params object of pathParams and queryParams + * (Example : params = {"query" : {},"path" : new Map()}) + **/ +exports.BuildAndTriggerRestRequestToRequestor = async function (requestorProtocol, requestorAddress, requestorPort, requestorReceiveOperation, requestHeaders, requestBody, method, traceIndicatorIncrementer, params) { + try { + let queryParams; + let pathParams; + if (requestorReceiveOperation.indexOf("/") !== 0) { + requestorReceiveOperation = "/" + requestorReceiveOperation; + } + let url = requestorProtocol.toLowerCase() + "://" + requestorAddress + ":" + requestorPort + + requestorReceiveOperation; + if (params) { + queryParams = params.query; + pathParams = params.path; + if (pathParams) { + pathParams.forEach((value, param) => { + requestorReceiveOperation = requestorReceiveOperation.replace(param, value) + }); + } + } + /****************************************************************************************************************** + * Fetching of Operation key to be updated based on the decision made on issue + * https://github.com/openBackhaul/AirInterfacePowerSaver/issues/114 + *****************************************************************************************************************/ + + let operationUuid = await OperationServerInterface.getOperationServerUuidAsync(requestorReceiveOperation); + let operationKey = await OperationServerInterface.getOperationKeyAsync(operationUuid); + let originator = await HttpServerInterface.getApplicationNameAsync(); + let requestHeader = new RequestHeader( + requestHeaders.user, + originator, + requestHeaders.xCorrelator, + requestHeaders.traceIndicator + "." + traceIndicatorIncrementer, + requestHeaders.customerJourney, + operationKey + ); + requestHeader = OnfAttributeFormatter.modifyJsonObjectKeysToKebabCase(requestHeader); + let request = { + params: queryParams, + method: method, + url: url, + headers: requestHeader, + data: requestBody, + paramsSerializer: function (params) { + return Qs.stringify(params, { + arrayFormat: 'brackets' + }) + } + } + let response = await restClient.post(request); + console.log("\n callback : " + method + " " + url + " header :" + JSON.stringify(requestHeader) + + "body :" + JSON.stringify(requestBody) + "response code:" + response.status); + return response; + } catch (error) { + if (error.response) { + return error.response; + } else if (error.request) { + console.log(`Request errored with ${error}`); + return new createHttpError.RequestTimeout(); + } + console.log(`Unknown request error: ${error}`); + return new createHttpError.InternalServerError(); + } +} \ No newline at end of file diff --git a/server/service/individualServices/IndividualServicesOperationsMapping.js b/server/service/individualServices/IndividualServicesOperationsMapping.js index 56269de..65146d1 100644 --- a/server/service/individualServices/IndividualServicesOperationsMapping.js +++ b/server/service/individualServices/IndividualServicesOperationsMapping.js @@ -14,6 +14,32 @@ module.exports.individualServicesOperationsMapping = "sequence": "002" } }, + "/v2/register-application": { + "embedding-operation": { + "api-segment": "im", + "sequence": "000" + }, + "client-update-operation": { + "api-segment": "im", + "sequence": "001" + }, + "operation-client-update-operation": { + "api-segment": "im", + "sequence": "002" + }, + "dispose-remainders-operation": { + "api-segment": "im", + "sequence": "006" + }, + "preceding-release-operation": { + "api-segment": "im", + "sequence": "008" + }, + "subsequent-release-operation": { + "api-segment": "im", + "sequence": "009" + } + }, "/v1/inquire-application-type-approvals": { "approval-operation": { "api-segment": "im", @@ -37,5 +63,11 @@ module.exports.individualServicesOperationsMapping = "api-segment": "im", "sequence": "004" } + }, + "/v1/notify-embedding-status-changes": { + "subscriber-operation": { + "api-segment": "im", + "sequence": "007" + } } } \ No newline at end of file diff --git a/server/service/individualServices/IndividualServicesUtility.js b/server/service/individualServices/IndividualServicesUtility.js new file mode 100644 index 0000000..6bd8180 --- /dev/null +++ b/server/service/individualServices/IndividualServicesUtility.js @@ -0,0 +1,285 @@ +'use strict'; + +const eventDispatcher = require('onf-core-model-ap/applicationPattern/rest/client/eventDispatcher'); +const httpClientInterface = require('onf-core-model-ap/applicationPattern/onfModel/models/layerProtocols/HttpClientInterface'); +const onfPaths = require('onf-core-model-ap/applicationPattern/onfModel/constants/OnfPaths'); +const ResponseProfile = require('onf-core-model-ap/applicationPattern/onfModel/models/profile/ResponseProfile'); +const ProfileCollection = require('onf-core-model-ap/applicationPattern/onfModel/models/ProfileCollection'); +const ForwardingDomain = require('onf-core-model-ap/applicationPattern/onfModel/models/ForwardingDomain'); +const ForwardingConstruct = require('onf-core-model-ap/applicationPattern/onfModel/models/ForwardingConstruct'); +const logicalTerminationPoint = require('onf-core-model-ap/applicationPattern/onfModel/models/LogicalTerminationPoint'); +const tcpClientInterface = require('onf-core-model-ap/applicationPattern/onfModel/models/layerProtocols/TcpClientInterface'); +const onfAttributes = require('onf-core-model-ap/applicationPattern/onfModel/constants/OnfAttributes'); +const FcPort = require('onf-core-model-ap/applicationPattern/onfModel/models/FcPort'); + +/** + * @description This function returns list of registered application information application-name , release-number, application-address, application-port. + * @return {Promise} return the list of application information + * Procedure :
+ * step 1 : Get forwarding-construct based on ForwardingName + * step 2 : Get forwarding-construct UUID + * step 3 : Get fc-port list using forwarding-construct UUID + * step 4 : Fetch http-client-list using logical-termination-point uuid from fc-port + * step 5 : get the application name, release number and server-ltp
+ * step 6 : get the ipaddress and port name of each associated tcp-client
+ **/ +exports.getAllRegisteredApplicationList = function (protocol) { + return new Promise(async function (resolve, reject) { + let clientApplicationList = []; + const forwardingName = "ApprovingApplicationCausesPreparingTheEmbedding.RequestForEmbedding"; + try { + + /** + * This class instantiate objects that holds the application name , release number, + * IpAddress and port information of the registered client applications + */ + let clientApplicationInformation = class ClientApplicationInformation { + + /** + * @constructor + * @param {String} applicationName name of the client application. + * @param {String} applicationReleaseNumber release number of the application. + * @param {String} applicationAddress ip address of the application. + * @param {String} applicationPort port of the application. + **/ + constructor(applicationName, applicationReleaseNumber, applicationAddress, applicationPort) { + this.applicationName = applicationName; + this.releaseNumber = applicationReleaseNumber; + if (applicationAddress != undefined) { + this.address = applicationAddress; + } + if (applicationPort != undefined) { + this.port = applicationPort; + } + } + }; + let forwardingConstructForTheForwardingName = await ForwardingDomain.getForwardingConstructForTheForwardingNameAsync(forwardingName); + let forwardingConstructUuid = forwardingConstructForTheForwardingName[onfAttributes.GLOBAL_CLASS.UUID]; + let fcPortList = await ForwardingConstruct.getOutputFcPortsAsync(forwardingConstructUuid); + let httpClientUuidList = [] + + for (let fcPort of fcPortList) { + let serverLtpList = await logicalTerminationPoint.getServerLtpListAsync(fcPort[onfAttributes.FC_PORT.LOGICAL_TERMINATION_POINT]) + httpClientUuidList = httpClientUuidList.concat(serverLtpList) + } + + for (let i = 0; i < httpClientUuidList.length; i++) { + let httpClientUuid = httpClientUuidList[i]; + let applicationName = await httpClientInterface.getApplicationNameAsync(httpClientUuid); + let applicationReleaseNumber = await httpClientInterface.getReleaseNumberAsync(httpClientUuid); + if (protocol == undefined) { + let clientApplication = new clientApplicationInformation(applicationName, applicationReleaseNumber); + clientApplicationList.push(clientApplication); + } else { + let tcpClientUuidList = await logicalTerminationPoint.getServerLtpListAsync(httpClientUuid); + for (let i = 0; i < tcpClientUuidList.length; i++) { + let tcpClientUuid = tcpClientUuidList[i]; + let tcpClientProtocol = await tcpClientInterface.getRemoteProtocolAsync(tcpClientUuid); + if (tcpClientProtocol.toLowerCase() == protocol.toLowerCase()) { + let address = await tcpClientInterface.getRemoteAddressAsync(tcpClientUuid); + let applicationAddress = "domain-name" in address ? address["domain-name"] : address["ip-address"]["ipv-4-address"]; + let applicationPort = await tcpClientInterface.getRemotePortAsync(tcpClientUuid); + let clientApplication = new clientApplicationInformation(applicationName, applicationReleaseNumber, applicationAddress, applicationPort); + clientApplicationList.push(clientApplication); + } + } + } + } + resolve(clientApplicationList); + } catch (error) { + reject(); + } + }); +} + +/** + * @description This function includes a new response profile if not exists for a registered application + * @return {Promise} return true if operation is successful + **/ +exports.includeGenericResponseProfile = function (applicationName, releaseNumber) { + return new Promise(async function (resolve, reject) { + let isUpdated = true; + try { + let httpClientUuid = await httpClientInterface.getHttpClientUuidAsync(applicationName, releaseNumber); + if (httpClientUuid != undefined) { + let applicationNameReference = onfPaths.HTTP_CLIENT_APPLICATION_NAME.replace("{uuid}", httpClientUuid); + let isResponseProfileAlreadyExist = await ResponseProfile.findProfileUuidForFieldNameReferenceAsync(applicationNameReference); + if (!isResponseProfileAlreadyExist) { + let releaseNumberReference = onfPaths.HTTP_CLIENT_RELEASE_NUMBER.replace("{uuid}", httpClientUuid); + let operationName = "/v1/list-applications-in-generic-representation"; + let description = "List of registered application names and release numbers"; + let datatype = "string"; + let responseProfile = await ResponseProfile.createProfileAsync(operationName, + applicationNameReference, + description, + datatype, + releaseNumberReference); + isUpdated = await ProfileCollection.addProfileAsync(responseProfile); + } + } + resolve(isUpdated); + } catch (error) { + reject(error); + } + }); +} + +/** + * @description This function excludes an existing response profile if not exists for a registered application + * @return {Promise} return true if operation is successful + **/ +exports.excludeGenericResponseProfile = function (applicationName, releaseNumber) { + return new Promise(async function (resolve, reject) { + let isUpdated = true; + try { + let httpClientUuid = await httpClientInterface.getHttpClientUuidAsync(applicationName, releaseNumber); + if (httpClientUuid != undefined) { + let applicationNameReference = onfPaths.HTTP_CLIENT_APPLICATION_NAME.replace("{uuid}", httpClientUuid); + let responseProfileUuid = await ResponseProfile.findProfileUuidForFieldNameReferenceAsync(applicationNameReference); + if (responseProfileUuid) { + isUpdated = await ProfileCollection.deleteProfileAsync(responseProfileUuid); + } + } + resolve(isUpdated); + } catch (error) { + reject(); + } + }); +} + +/** +* @description This function helps to get the APISegment of the operationClient uuid +* @return {Promise} returns the APISegment +**/ +exports.getApiSegmentOfOperationClient = function (operationClientUuid) { + let APISegment; + try { + APISegment = operationClientUuid.split("-")[6]; + } catch (error) { + console.log("error in extracting the APISegment"); + } + return APISegment; +} + +exports.resolveApplicationNameAndHttpClientLtpUuidFromForwardingNameOfTypeSubscription = async function (forwardingName, applicationName, releaseNumber) { + let httpClientUuidOfTheSubscribedApplication = undefined; + const forwardingConstruct = await ForwardingDomain.getForwardingConstructForTheForwardingNameAsync(forwardingName); + if (forwardingConstruct === undefined) { + return null; + } + + let fcPortOutputDirectionLogicalTerminationPointList = []; + const fcPortList = forwardingConstruct[onfAttributes.FORWARDING_CONSTRUCT.FC_PORT]; + for (const fcPort of fcPortList) { + const portDirection = fcPort[onfAttributes.FC_PORT.PORT_DIRECTION]; + if (FcPort.portDirectionEnum.OUTPUT === portDirection) { + fcPortOutputDirectionLogicalTerminationPointList.push(fcPort[onfAttributes.FC_PORT.LOGICAL_TERMINATION_POINT]); + } + } + + if (fcPortOutputDirectionLogicalTerminationPointList.length == 0) { + return null; + } + + for (let i = 0; i < fcPortOutputDirectionLogicalTerminationPointList.length; i++) { + const opLtpUuid = fcPortOutputDirectionLogicalTerminationPointList[i]; + const httpLtpUuidList = await logicalTerminationPoint.getServerLtpListAsync(opLtpUuid); + const httpClientLtpUuid = httpLtpUuidList[0]; + const _applicationName = await httpClientInterface.getApplicationNameAsync(httpClientLtpUuid); + const _releaseNumber = await httpClientInterface.getReleaseNumberAsync(httpClientLtpUuid); + if (_applicationName == applicationName && _releaseNumber == releaseNumber) { + httpClientUuidOfTheSubscribedApplication = httpClientLtpUuid; + } + } + return httpClientUuidOfTheSubscribedApplication; +} + +/** + * @description This function automates the forwarding construct by calling the appropriate call back operations based on the fcPort input and output directions. + * @param {String} forwardingKindName Name of forwarding which has to be triggered + * @param {list} attributeList list of attributes required during forwarding construct automation(to send in the request body) + * @param {String} user user who initiates this request + * @param {string} originator originator of the request + * @param {string} xCorrelator flow id of this request + * @param {string} traceIndicator trace indicator of the request + * @param {string} customerJourney customer journey of the request + **/ +exports.forwardRequest = function (forwardingKindName, attributeList, user, xCorrelator, traceIndicator, customerJourney, context) { + return new Promise(async function (resolve, reject) { + try { + let forwardingConstructInstance = await ForwardingDomain.getForwardingConstructForTheForwardingNameAsync(forwardingKindName); + let operationClientUuid = ""; + if (context) { + let fcPortList = forwardingConstructInstance["fc-port"]; + for (let fcPort of fcPortList) { + let fcPortDirection = fcPort["port-direction"]; + if (fcPortDirection == FcPort.portDirectionEnum.OUTPUT) { + let isOutputMatchesContext = await isOutputMatchesContextAsync(fcPort, context); + if (isOutputMatchesContext) { + operationClientUuid = fcPort["logical-termination-point"]; + } + } + } + } else { + operationClientUuid = (await exports.getFcPortOutputLogicalTerminationPointList(forwardingConstructInstance))[0]; + } + let result = await eventDispatcher.dispatchEvent( + operationClientUuid, + attributeList, + user, + xCorrelator, + traceIndicator, + customerJourney, + "POST", + undefined, + true + ); + resolve(result); + } catch (error) { + reject(error); + } + }); +} + +exports.getFcPortOutputLogicalTerminationPointList = async function (forwardingConstructInstance) { + let fcPortOutputLogicalTerminationPointList = []; + let fcPortList = forwardingConstructInstance[onfAttributes.FORWARDING_CONSTRUCT.FC_PORT]; + for (let i = 0; i < fcPortList.length; i++) { + let fcPort = fcPortList[i]; + let fcPortPortDirection = fcPort[onfAttributes.FC_PORT.PORT_DIRECTION]; + if (fcPortPortDirection == FcPort.portDirectionEnum.OUTPUT) { + let fclogicalTerminationPoint = fcPort[onfAttributes.FC_PORT.LOGICAL_TERMINATION_POINT]; + fcPortOutputLogicalTerminationPointList.push(fclogicalTerminationPoint); + } + } + return fcPortOutputLogicalTerminationPointList; +} + +exports.getConsequentOperationClientUuid = async function (forwardingName, applicationName, releaseNumber) { + let forwardingConstruct = await ForwardingDomain.getForwardingConstructForTheForwardingNameAsync( + forwardingName); + let fcPortList = forwardingConstruct["fc-port"]; + for (let fcPort of fcPortList) { + let fcPortDirection = fcPort["port-direction"]; + if (fcPortDirection == FcPort.portDirectionEnum.OUTPUT) { + let fcLogicalTerminationPoint = fcPort["logical-termination-point"]; + let serverLtpList = await logicalTerminationPoint.getServerLtpListAsync(fcLogicalTerminationPoint); + let httpClientUuid = serverLtpList[0]; + let applicationNameOfClient = await httpClientInterface.getApplicationNameAsync(httpClientUuid); + let releaseNumberOfClient = await httpClientInterface.getReleaseNumberAsync(httpClientUuid); + if (applicationNameOfClient == applicationName && releaseNumberOfClient == releaseNumber) { + return fcLogicalTerminationPoint; + } + } + } + return undefined; +} + +async function isOutputMatchesContextAsync(fcPort, context) { + let fcLogicalTerminationPoint = fcPort["logical-termination-point"]; + let serverLtpList = await logicalTerminationPoint.getServerLtpListAsync(fcLogicalTerminationPoint); + let httpClientUuid = serverLtpList[0]; + let applicationName = await httpClientInterface.getApplicationNameAsync(httpClientUuid); + let releaseNumber = await httpClientInterface.getReleaseNumberAsync(httpClientUuid); + return (context == (applicationName + releaseNumber)); +} \ No newline at end of file diff --git a/server/service/individualServices/PrepareForwardingAutomation.js b/server/service/individualServices/PrepareForwardingAutomation.js index 0e62a80..722e66f 100644 --- a/server/service/individualServices/PrepareForwardingAutomation.js +++ b/server/service/individualServices/PrepareForwardingAutomation.js @@ -1,16 +1,8 @@ const forwardingConstructAutomationInput = require('onf-core-model-ap/applicationPattern/onfModel/services/models/forwardingConstruct/AutomationInput'); -const httpServerInterface = require('onf-core-model-ap/applicationPattern/onfModel/models/layerProtocols/HttpServerInterface'); -const tcpServerInterface = require('onf-core-model-ap/applicationPattern/onfModel/models/layerProtocols/TcpServerInterface'); const onfFormatter = require('onf-core-model-ap/applicationPattern/onfModel/utility/OnfAttributeFormatter'); const prepareALTForwardingAutomation = require('onf-core-model-ap-bs/basicServices/services/PrepareALTForwardingAutomation'); -const logicalTerminationPoint = require('onf-core-model-ap/applicationPattern/onfModel/models/LogicalTerminationPoint'); -const operationServerInterface = require('onf-core-model-ap/applicationPattern/onfModel/models/layerProtocols/OperationServerInterface'); -const httpClientInterface = require('onf-core-model-ap/applicationPattern/onfModel/models/layerProtocols/HttpClientInterface'); -const tcpClientInterface = require('onf-core-model-ap/applicationPattern/onfModel/models/layerProtocols/TcpClientInterface'); const ControlConstruct = require('onf-core-model-ap/applicationPattern/onfModel/models/ControlConstruct'); -const ApplicationPreceedingVersion = require('./ApplicationPreceedingVersion'); -const LogicalTerminationPoint = require('onf-core-model-ap/applicationPattern/onfModel/models/LogicalTerminationPoint'); exports.registerApplication = function (logicalTerminationPointconfigurationStatus, forwardingConstructConfigurationStatus, applicationName, applicationReleaseNumber) { @@ -69,12 +61,28 @@ exports.deregisterApplication = function (logicalTerminationPointconfigurationSt deregistrationNotificationRequestBody.applicationName = applicationName; deregistrationNotificationRequestBody.releaseNumber = applicationReleaseNumber; deregistrationNotificationRequestBody = onfFormatter.modifyJsonObjectKeysToKebabCase(deregistrationNotificationRequestBody); - let forwardingAutomation = new forwardingConstructAutomationInput( + let forwardingAutomationForDeregistrationNotification = new forwardingConstructAutomationInput( deregistrationNotificationForwardingName, deregistrationNotificationRequestBody, deregistrationNotificationContext ); - forwardingConstructAutomationList.push(forwardingAutomation); + forwardingConstructAutomationList.push(forwardingAutomationForDeregistrationNotification); + + /*********************************************************************************** + * DeRegistrationBroadcast /v1/dispose-remainders-of-deregistered-application + ************************************************************************************/ + let deregistrationBroadcastForwardingName = "DeRegistrationBroadcast"; + let deregistrationBroadcastContext; + let deregistrationBroadcastRequestBody = {}; + deregistrationBroadcastRequestBody.applicationName = applicationName; + deregistrationBroadcastRequestBody.releaseNumber = applicationReleaseNumber; + deregistrationBroadcastRequestBody = onfFormatter.modifyJsonObjectKeysToKebabCase(deregistrationBroadcastRequestBody); + let forwardingAutomationForDeregistrationBroadcast = new forwardingConstructAutomationInput( + deregistrationBroadcastForwardingName, + deregistrationBroadcastRequestBody, + deregistrationBroadcastContext + ); + forwardingConstructAutomationList.push(forwardingAutomationForDeregistrationBroadcast); /*********************************************************************************** * forwardings for application layer topology @@ -98,109 +106,40 @@ exports.deregisterApplication = function (logicalTerminationPointconfigurationSt }); } -exports.updateApprovalStatusApproved = function (logicalTerminationPointconfigurationStatus, forwardingConstructConfigurationStatus, - applicationName, releaseNumber) { +exports.updateApprovalStatusApproved = function (logicalTerminationPointconfigurationStatus, forwardingConstructConfigurationStatus) { return new Promise(async function (resolve, reject) { let forwardingConstructAutomationList = []; - let forwardingAutomation; try { /*********************************************************************************** - * TypeApprovalCausesRequestForEmbedding /v1/embed-yourself + * forwardings for application layer topology ************************************************************************************/ - let embedYourselfForwardingName = "TypeApprovalCausesRequestForEmbedding"; - let embedYourselfContext = applicationName + releaseNumber; - let embedYourselfRequestBody = {}; - embedYourselfRequestBody.registryOfficeApplication = await httpServerInterface.getApplicationNameAsync(); - embedYourselfRequestBody.registryOfficeApplicationReleaseNumber = await httpServerInterface.getReleaseNumberAsync(); - - let controlConstructUuid = await ControlConstruct.getUuidAsync(); - - let relayServerReplacementOperationUuid = controlConstructUuid + "-op-s-is-010"; - embedYourselfRequestBody.relayServerReplacementOperation = await operationServerInterface.getOperationNameAsync(relayServerReplacementOperationUuid); - - let relayOperationUpdateOperationUuid = controlConstructUuid + "-op-s-is-011"; - embedYourselfRequestBody.relayOperationUpdateOperation = await operationServerInterface.getOperationNameAsync(relayOperationUpdateOperationUuid); - - let deregistrationOperationUuid = controlConstructUuid + "-op-s-is-002"; - embedYourselfRequestBody.deregistrationOperation = await operationServerInterface.getOperationNameAsync(deregistrationOperationUuid); - - embedYourselfRequestBody.registryOfficeAddress = await tcpServerInterface.getLocalAddressForForwarding(); - embedYourselfRequestBody.registryOfficePort = await tcpServerInterface.getLocalPort(); - embedYourselfRequestBody.registryOfficeProtocol = await tcpServerInterface.getLocalProtocol() - - //What is the preceeding release number and application for the embedding one - let preceedingApplicationName = applicationName; - let preceedingApplicationReleaseNumber = releaseNumber; - let preceedingApplicationInformation = await ApplicationPreceedingVersion.getPreceedingApplicationInformation( - applicationName, - releaseNumber + let applicationLayerTopologyForwardingInputList = await prepareALTForwardingAutomation.getALTForwardingAutomationInputAsync( + logicalTerminationPointconfigurationStatus, + forwardingConstructConfigurationStatus ); - let httpClientOfpreceedingApplication; - if (preceedingApplicationInformation != undefined) { - let _preceedingApplicationName = preceedingApplicationInformation.preceedingApplicationName; - let _preceedingApplicationReleaseNumber = preceedingApplicationInformation.preceedingReleaseNumber; - httpClientOfpreceedingApplication = await httpClientInterface.getHttpClientUuidAsync( - _preceedingApplicationName, - _preceedingApplicationReleaseNumber); - if (httpClientOfpreceedingApplication != undefined) { - preceedingApplicationName = _preceedingApplicationName; - preceedingApplicationReleaseNumber = _preceedingApplicationReleaseNumber; - } - } - - if(httpClientOfpreceedingApplication == undefined){ - httpClientOfpreceedingApplication = await httpClientInterface.getHttpClientUuidAsync( - preceedingApplicationName, - preceedingApplicationReleaseNumber); - } - - //get the oldRelease tcp client information - - if(httpClientOfpreceedingApplication!=undefined){ - let serverLtpsOfPreceedingApplication = await LogicalTerminationPoint.getServerLtpListAsync(httpClientOfpreceedingApplication); - let tcpClientUuidOfPreceedingApplication = serverLtpsOfPreceedingApplication[0]; - if(tcpClientUuidOfPreceedingApplication != undefined){ - embedYourselfRequestBody.oldReleaseProtocol = await tcpClientInterface.getRemoteProtocolAsync(tcpClientUuidOfPreceedingApplication); - embedYourselfRequestBody.oldReleaseAddress = await tcpClientInterface.getRemoteAddressAsync(tcpClientUuidOfPreceedingApplication); - embedYourselfRequestBody.oldReleasePort = await tcpClientInterface.getRemotePortAsync(tcpClientUuidOfPreceedingApplication); + if (applicationLayerTopologyForwardingInputList) { + for (let i = 0; i < applicationLayerTopologyForwardingInputList.length; i++) { + let applicationLayerTopologyForwardingInput = applicationLayerTopologyForwardingInputList[i]; + forwardingConstructAutomationList.push(applicationLayerTopologyForwardingInput); } } - embedYourselfRequestBody = onfFormatter.modifyJsonObjectKeysToKebabCase(embedYourselfRequestBody); - forwardingAutomation = new forwardingConstructAutomationInput( - embedYourselfForwardingName, - embedYourselfRequestBody, - embedYourselfContext - ); - forwardingConstructAutomationList.push(forwardingAutomation); - - /*********************************************************************************** - * ApprovalNotification /v1/regard-application - ************************************************************************************/ - let approvalNotificationForwardingName = "ApprovalNotification"; - let approvalNotificationContext; - let approvalNotificationRequestBody = {}; - let httpClientUuid = await httpClientInterface.getHttpClientUuidAsync(applicationName, releaseNumber) - let tcpClientUuid = (await logicalTerminationPoint.getServerLtpListAsync(httpClientUuid))[0]; - approvalNotificationRequestBody.applicationName = applicationName; - approvalNotificationRequestBody.releaseNumber = releaseNumber; - approvalNotificationRequestBody.protocol = await tcpClientInterface.getRemoteProtocolAsync(tcpClientUuid); - approvalNotificationRequestBody.address = await tcpClientInterface.getRemoteAddressAsync(tcpClientUuid); - approvalNotificationRequestBody.port = await tcpClientInterface.getRemotePortAsync(tcpClientUuid); - approvalNotificationRequestBody = onfFormatter.modifyJsonObjectKeysToKebabCase(approvalNotificationRequestBody); - forwardingAutomation = new forwardingConstructAutomationInput( - approvalNotificationForwardingName, - approvalNotificationRequestBody, - approvalNotificationContext - ); - forwardingConstructAutomationList.push(forwardingAutomation); + resolve(forwardingConstructAutomationList); + } catch (error) { + reject(error); + } + }); +} +exports.updateApprovalStatusRegistered = function (forwardingConstructConfigurationStatus) { + return new Promise(async function (resolve, reject) { + let forwardingConstructAutomationList = []; + try { /*********************************************************************************** * forwardings for application layer topology ************************************************************************************/ - let applicationLayerTopologyForwardingInputList = await prepareALTForwardingAutomation.getALTForwardingAutomationInputAsync( - logicalTerminationPointconfigurationStatus, + let applicationLayerTopologyForwardingInputList = await prepareALTForwardingAutomation.getFDUnconfigureForwardingAutomationInputList( forwardingConstructConfigurationStatus ); @@ -218,32 +157,15 @@ exports.updateApprovalStatusApproved = function (logicalTerminationPointconfigur }); } -exports.updateApprovalStatusBarred = function (logicalTerminationPointconfigurationStatus, forwardingConstructConfigurationStatus, - applicationName, releaseNumber) { +exports.notifyWithdrawnApprovals = function (logicalTerminationPointconfigurationStatus, forwardingConstructConfigurationStatus) { return new Promise(async function (resolve, reject) { let forwardingConstructAutomationList = []; try { - /*********************************************************************************** - * WithdrawnApprovalNotification /v1/disregard-application - ************************************************************************************/ - let withdrawnApprovalNotificationForwardingName = "WithdrawnApprovalNotification"; - let withdrawnApprovalNotificationContext; - let withdrawnApprovalNotificationRequestBody = {}; - withdrawnApprovalNotificationRequestBody.applicationName = applicationName; - withdrawnApprovalNotificationRequestBody.releaseNumber = releaseNumber; - withdrawnApprovalNotificationRequestBody = onfFormatter.modifyJsonObjectKeysToKebabCase(withdrawnApprovalNotificationRequestBody); - let forwardingAutomation = new forwardingConstructAutomationInput( - withdrawnApprovalNotificationForwardingName, - withdrawnApprovalNotificationRequestBody, - withdrawnApprovalNotificationContext - ); - forwardingConstructAutomationList.push(forwardingAutomation); - /*********************************************************************************** * forwardings for application layer topology ************************************************************************************/ - let applicationLayerTopologyForwardingInputList = await prepareALTForwardingAutomation.getALTUnConfigureForwardingAutomationInputAsync( + let applicationLayerTopologyForwardingInputList = await prepareALTForwardingAutomation.getALTForwardingAutomationInputAsync( logicalTerminationPointconfigurationStatus, forwardingConstructConfigurationStatus ); @@ -262,7 +184,7 @@ exports.updateApprovalStatusBarred = function (logicalTerminationPointconfigurat }); } -exports.notifyWithdrawnApprovals = function (logicalTerminationPointconfigurationStatus, forwardingConstructConfigurationStatus) { +exports.notifyDeregistrations = function (logicalTerminationPointconfigurationStatus, forwardingConstructConfigurationStatus) { return new Promise(async function (resolve, reject) { let forwardingConstructAutomationList = []; try { @@ -289,7 +211,7 @@ exports.notifyWithdrawnApprovals = function (logicalTerminationPointconfiguratio }); } -exports.notifyDeregistrations = function (logicalTerminationPointconfigurationStatus, forwardingConstructConfigurationStatus) { +exports.notifyApprovals = function (logicalTerminationPointconfigurationStatus, forwardingConstructConfigurationStatus) { return new Promise(async function (resolve, reject) { let forwardingConstructAutomationList = []; try { @@ -316,7 +238,7 @@ exports.notifyDeregistrations = function (logicalTerminationPointconfigurationSt }); } -exports.notifyApprovals = function (logicalTerminationPointconfigurationStatus, forwardingConstructConfigurationStatus) { +exports.notifyEmbeddingStatusChange = function (logicalTerminationPointconfigurationStatus, forwardingConstructConfigurationStatus) { return new Promise(async function (resolve, reject) { let forwardingConstructAutomationList = []; try { @@ -486,3 +408,32 @@ exports.OAMLayerRequest = function (uuid) { } }); } + + +exports.getOperationClientForwardingAutomationInputListAsync = async function(operationClientConfigurationStatusList) { + let forwardingConstructAutomationList = []; + let fwName = "ServiceRequestCausesLtpUpdateRequest"; + if (operationClientConfigurationStatusList) { + for (let operationClientConfigurationStatus of operationClientConfigurationStatusList) { + if (operationClientConfigurationStatus.updated) { + let body = await ControlConstruct.getLogicalTerminationPointAsync( + operationClientConfigurationStatus.uuid); + body = removeAttribute(body, "operation-key") + let forwardingAutomation = new forwardingConstructAutomationInput(fwName, body, undefined); + forwardingConstructAutomationList.push(forwardingAutomation); + } + } + } + return forwardingConstructAutomationList; +} + +function removeAttribute(jsonObject, attributeName) { + for (var element in jsonObject) { + if (element == attributeName) { + delete jsonObject[element]; + } else if (typeof jsonObject[element] == 'object') { + removeAttribute(jsonObject[element], attributeName); + } + } + return jsonObject; +} \ No newline at end of file diff --git a/server/service/individualServices/PrepareForwardingConfiguration.js b/server/service/individualServices/PrepareForwardingConfiguration.js index 93424b7..8d533d0 100644 --- a/server/service/individualServices/PrepareForwardingConfiguration.js +++ b/server/service/individualServices/PrepareForwardingConfiguration.js @@ -11,12 +11,12 @@ exports.registerApplication = function (operationClientConfigurationStatusList, let configurationStatus = operationClientConfigurationStatusList[i]; let operationClientUuid = configurationStatus.uuid; let operationClientName = await operationClientInterface. - getOperationNameAsync(operationClientUuid); + getOperationNameAsync(operationClientUuid); let forwardingConfigurationInput; let forwardingName; if (operationClientName == embeddingOperation) { forwardingName = - "TypeApprovalCausesRequestForEmbedding"; + "ApprovingApplicationCausesPreparingTheEmbedding.RequestForEmbedding"; forwardingConfigurationInput = new forwardingConstructConfigurationInput( forwardingName, operationClientUuid @@ -33,6 +33,41 @@ exports.registerApplication = function (operationClientConfigurationStatusList, }); } +exports.registerApplication2 = function (operationClientConfigurationStatusList, embeddingOperation, precedingReleaseOperation, subsequentReleaseOperation) { + return new Promise(async function (resolve, reject) { + let forwardingConfigurationInputList = []; + try { + for (let i = 0; i < operationClientConfigurationStatusList.length; i++) { + let configurationStatus = operationClientConfigurationStatusList[i]; + let operationClientUuid = configurationStatus.uuid; + let operationClientName = await operationClientInterface. + getOperationNameAsync(operationClientUuid); + let forwardingConfigurationInput; + let forwardingName; + if (operationClientName == embeddingOperation) { + forwardingName = + "ApprovingApplicationCausesPreparingTheEmbedding.RequestForEmbedding"; + forwardingConfigurationInput = new forwardingConstructConfigurationInput(forwardingName, operationClientUuid); + forwardingConfigurationInputList.push(forwardingConfigurationInput); + } else if(operationClientName == precedingReleaseOperation) { + forwardingName = + "ApprovingApplicationCausesPreparingTheEmbedding.RequestForOldRelease"; + forwardingConfigurationInput = new forwardingConstructConfigurationInput(forwardingName, operationClientUuid); + forwardingConfigurationInputList.push(forwardingConfigurationInput); + } else if(operationClientName == subsequentReleaseOperation) { + forwardingName = + "ApprovingApplicationCausesPreparingTheEmbedding.RequestForUpdatingNewReleaseClient"; + forwardingConfigurationInput = new forwardingConstructConfigurationInput(forwardingName, operationClientUuid); + forwardingConfigurationInputList.push(forwardingConfigurationInput); + } + } + resolve(forwardingConfigurationInputList); + } catch (error) { + reject(error); + } + }); +} + exports.deregisterApplication = function (operationClientConfigurationStatusList) { return new Promise(async function (resolve, reject) { let forwardingConfigurationInputList = []; @@ -56,7 +91,7 @@ exports.deregisterApplication = function (operationClientConfigurationStatusList forwardingConfigurationInputList.push( forwardingConfigurationInput ); - } + } } resolve(forwardingConfigurationInputList); } catch (error) { @@ -87,7 +122,7 @@ exports.updateApprovalStatusBarred = function (operationClientList) { forwardingConfigurationInputList.push( forwardingConfigurationInput ); - } + } } resolve(forwardingConfigurationInputList); } catch (error) { @@ -96,14 +131,13 @@ exports.updateApprovalStatusBarred = function (operationClientList) { }); } -exports.updateApprovalStatus = function (operationClientList, updateClientOperationName, updateOperationClientOperationName, embeddingOperation) { +exports.updateApprovalStatus = function (operationClientList, updateClientOperationName, updateOperationClientOperationName, disposeRemaindersOperationName) { return new Promise(async function (resolve, reject) { let forwardingConfigurationInputList = []; try { for (let i = 0; i < operationClientList.length; i++) { let operationClientUuid = operationClientList[i]; - let operationClientName = await operationClientInterface. - getOperationNameAsync(operationClientUuid); + let operationClientName = await operationClientInterface.getOperationNameAsync(operationClientUuid); let forwardingConfigurationInput; let forwardingName; if (operationClientName == updateClientOperationName) { @@ -126,9 +160,9 @@ exports.updateApprovalStatus = function (operationClientList, updateClientOperat forwardingConfigurationInputList.push( forwardingConfigurationInput ); - } else if (operationClientName == embeddingOperation) { + } else if (operationClientName == disposeRemaindersOperationName) { forwardingName = - "TypeApprovalCausesRequestForEmbedding"; + "DeRegistrationBroadcast"; forwardingConfigurationInput = new forwardingConstructConfigurationInput( forwardingName, operationClientUuid @@ -153,7 +187,7 @@ exports.notifyWithdrawnApprovals = function (operationClientConfigurationStatusL let configurationStatus = operationClientConfigurationStatusList[i]; let operationClientUuid = configurationStatus.uuid; let operationClientName = await operationClientInterface. - getOperationNameAsync(operationClientUuid); + getOperationNameAsync(operationClientUuid); let forwardingConfigurationInput; let forwardingName; if (operationClientName == subscriberOperation) { @@ -183,7 +217,7 @@ exports.notifyDeregistrations = function (operationClientConfigurationStatusList let configurationStatus = operationClientConfigurationStatusList[i]; let operationClientUuid = configurationStatus.uuid; let operationClientName = await operationClientInterface. - getOperationNameAsync(operationClientUuid); + getOperationNameAsync(operationClientUuid); let forwardingConfigurationInput; let forwardingName; if (operationClientName == subscriberOperation) { @@ -213,7 +247,7 @@ exports.notifyApprovals = function (operationClientConfigurationStatusList, subs let configurationStatus = operationClientConfigurationStatusList[i]; let operationClientUuid = configurationStatus.uuid; let operationClientName = await operationClientInterface. - getOperationNameAsync(operationClientUuid); + getOperationNameAsync(operationClientUuid); let forwardingConfigurationInput; let forwardingName; if (operationClientName == subscriberOperation) { @@ -243,7 +277,7 @@ exports.inquireApplicationTypeApprovals = function (operationClientConfiguration let configurationStatus = operationClientConfigurationStatusList[i]; let operationClientUuid = configurationStatus.uuid; let operationClientName = await operationClientInterface. - getOperationNameAsync(operationClientUuid); + getOperationNameAsync(operationClientUuid); let forwardingConfigurationInput; let forwardingName; if (operationClientName == subscriberOperation) { @@ -265,6 +299,36 @@ exports.inquireApplicationTypeApprovals = function (operationClientConfiguration }); } +exports.notifyEmbeddingStatusChange = function (operationClientConfigurationStatusList, subscriberOperation) { + return new Promise(async function (resolve, reject) { + let forwardingConfigurationInputList = []; + try { + for (let i = 0; i < operationClientConfigurationStatusList.length; i++) { + let configurationStatus = operationClientConfigurationStatusList[i]; + let operationClientUuid = configurationStatus.uuid; + let operationClientName = await operationClientInterface. + getOperationNameAsync(operationClientUuid); + let forwardingConfigurationInput; + let forwardingName; + if (operationClientName == subscriberOperation) { + forwardingName = + "EmbeddingStatusNotification"; + forwardingConfigurationInput = new forwardingConstructConfigurationInput( + forwardingName, + operationClientUuid + ); + } + forwardingConfigurationInputList.push( + forwardingConfigurationInput + ); + } + resolve(forwardingConfigurationInputList); + } catch (error) { + reject(error); + } + }); +} + /** * @description This function automates the forwarding construct by calling the appropriate call back operations based on the fcPort input and output directions. diff --git a/server/service/individualServices/RegardUpdatedApprovalProcess.js b/server/service/individualServices/RegardUpdatedApprovalProcess.js new file mode 100644 index 0000000..0afa10c --- /dev/null +++ b/server/service/individualServices/RegardUpdatedApprovalProcess.js @@ -0,0 +1,1155 @@ +'use strict'; + +const onfAttributeFormatter = require('onf-core-model-ap/applicationPattern/onfModel/utility/OnfAttributeFormatter'); +const httpServerInterface = require('onf-core-model-ap/applicationPattern/onfModel/models/layerProtocols/HttpServerInterface'); +const httpClientInterface = require('onf-core-model-ap/applicationPattern/onfModel/models/layerProtocols/HttpClientInterface'); +const tcpClientInterface = require('onf-core-model-ap/applicationPattern/onfModel/models/layerProtocols/TcpClientInterface'); +const logicalTerminationPoint = require('onf-core-model-ap/applicationPattern/onfModel/models/LogicalTerminationPoint'); +const operationServerInterface = require('onf-core-model-ap/applicationPattern/onfModel/models/layerProtocols/OperationServerInterface'); +const OperationClientInterface = require('onf-core-model-ap/applicationPattern/onfModel/models/layerProtocols/OperationClientInterface'); +const ForwardingConfigurationService = require('onf-core-model-ap/applicationPattern/onfModel/services/ForwardingConstructConfigurationServices'); +const ForwardingAutomationService = require('onf-core-model-ap/applicationPattern/onfModel/services/ForwardingConstructAutomationServices'); +const operationKeyUpdateNotificationService = require('onf-core-model-ap/applicationPattern/onfModel/services/OperationKeyUpdateNotificationService'); +const ForwardingDomain = require('onf-core-model-ap/applicationPattern/onfModel/models/ForwardingDomain'); +const ForwardingConstruct = require('onf-core-model-ap/applicationPattern/onfModel/models/ForwardingConstruct'); +const ConfigurationStatus = require('onf-core-model-ap/applicationPattern/onfModel/services/models/ConfigurationStatus'); +const onfAttributes = require('onf-core-model-ap/applicationPattern/onfModel/constants/OnfAttributes'); +const forwardingConstructAutomationInput = require('onf-core-model-ap/applicationPattern/onfModel/services/models/forwardingConstruct/AutomationInput'); +const tcpServerInterface = require('onf-core-model-ap/applicationPattern/onfModel/models/layerProtocols/TcpServerInterface'); +const integerProfileOperation = require('onf-core-model-ap/applicationPattern/onfModel/models/profile/IntegerProfile'); +const ControlConstruct = require('onf-core-model-ap/applicationPattern/onfModel/models/ControlConstruct'); +const MonitorTypeApprovalChannel = require('./MonitorTypeApprovalChannel'); +const IndividualServicesUtility = require('./IndividualServicesUtility'); +const prepareForwardingConfiguration = require('./PrepareForwardingConfiguration'); +const prepareForwardingAutomation = require('./PrepareForwardingAutomation'); +const createHttpError = require('http-errors'); + +const NEW_RELEASE_FORWARDING_NAME = 'PromptForBequeathingDataCausesTransferOfListOfAlreadyRegisteredApplications'; +const AsyncLock = require('async-lock'); +const lock = new AsyncLock(); + +/** + * This function is responsible for making initial configurations in config file as soon as regard-updated-approval-status has been received. + * {String} applicationName of application regarded + * {String} releaseNumber of application regarded + * {String} approvalStatus of application regarded + * {Object} requestHeaders that came in incoming requests + * {return} processId identifier for a request + */ +exports.updateApprovalStatusInConfig = async function (requestBody, requestHeaders, operationServerName) { + let processId; + requestHeaders.traceIndicatorIncrementer = 1; + try { + //extracting data from request-body + let applicationName = requestBody["application-name"]; + let releaseNumber = requestBody["release-number"]; + let approvalStatus = requestBody["approval-status"]; + + let forwardingAutomationInputList = []; + /**************************************************************************************** + * updating response-receiver-operation to corresponding LTP using ApprovingApplicationCausesResponding + ****************************************************************************************/ + if (Object.prototype.hasOwnProperty.call(requestBody, "response-receiver-operation")) { + processId = await generateProcessId(applicationName, releaseNumber); + let responseReceiverOperation = requestBody["response-receiver-operation"]; + let forwardingName = "ApprovingApplicationCausesResponding"; + let forwardingConstructForTheForwardingName = await ForwardingDomain.getForwardingConstructForTheForwardingNameAsync(forwardingName); + let forwardingConstructUuid = forwardingConstructForTheForwardingName[onfAttributes.GLOBAL_CLASS.UUID]; + let fcPortList = await ForwardingConstruct.getOutputFcPortsAsync(forwardingConstructUuid); + let operationClientUuid = fcPortList[0][onfAttributes.FC_PORT.LOGICAL_TERMINATION_POINT]; + let existingOperationName = await OperationClientInterface.getOperationNameAsync(operationClientUuid); + if (existingOperationName != responseReceiverOperation) { + let isOperationNameUpdated = await OperationClientInterface.setOperationNameAsync(operationClientUuid, responseReceiverOperation); + if (isOperationNameUpdated) { + let configurationStatus = new ConfigurationStatus( + operationClientUuid, + '', + true); + forwardingAutomationInputList = await prepareForwardingAutomation.getOperationClientForwardingAutomationInputListAsync([configurationStatus]); + } + } + } + + if (approvalStatus == 'BARRED') { + // need not send explicit requests to update ALT because /v1/deregister-application will send delete notifications to ALT + BarringApplicationCausesDeregisteringOfApplication(applicationName, releaseNumber, requestHeaders); + return processId; + } + /**************************************************************************************** + * code block to check if application is registered to registry office (finding if LTP instances is present in config file) + ****************************************************************************************/ + if (approvalStatus == "APPROVED" || approvalStatus == "REGISTERED") { + let isApplicationExists = await httpClientInterface.isApplicationExists( + applicationName, + releaseNumber + ); + if (!isApplicationExists) { + throw createHttpError.BadRequest(`The application-name ${applicationName} was not found.`); + } + } + /**************************************************************************************** + * find the operation client uuid for the operations 'update-client', 'update-operation-client', + * 'dispose-remainders-of-deregistered-application' that shall be updated in fc-ports + ****************************************************************************************/ + let updateClientOperationName; + let updateOperationClientOperationName; + let disposeRemaindersOperationName; + let operationClientUuidList; + let httpClientUuid = await httpClientInterface.getHttpClientUuidAsync(applicationName, releaseNumber); + if (httpClientUuid) { + operationClientUuidList = await logicalTerminationPoint.getClientLtpListAsync(httpClientUuid); + } + let operationListForConfiguration = []; + if (operationClientUuidList) { + for (let i = 0; i < operationClientUuidList.length; i++) { + let operationClientUuid = operationClientUuidList[i]; + let apiSegment = IndividualServicesUtility.getApiSegmentOfOperationClient(operationClientUuid); + if (apiSegment == "im") { + if (operationClientUuid.endsWith("001")) { + updateClientOperationName = await OperationClientInterface.getOperationNameAsync(operationClientUuid); + operationListForConfiguration.push(operationClientUuid); + } else if (operationClientUuid.endsWith("002")) { + updateOperationClientOperationName = await OperationClientInterface.getOperationNameAsync(operationClientUuid); + operationListForConfiguration.push(operationClientUuid); + } else if (operationClientUuid.endsWith("006")) { + disposeRemaindersOperationName = await OperationClientInterface.getOperationNameAsync(operationClientUuid); + operationListForConfiguration.push(operationClientUuid); + } + } + } + } + /**************************************************************************************** + * Prepare attributes to configure forwarding-construct + * If the approval status is approved , then create forwarding construct for update-operation-client and update-client + * If the approval status is not approved , check if any fc-port created, if so delete them + ****************************************************************************************/ + let forwardingConfigurationInputList; + let ltpConfigurationStatus; + let forwardingConstructConfigurationStatus; + let isApplicationAlreadyApproved; + await lock.acquire("regard updated approval status", async () => { + if (operationListForConfiguration.length > 0) { + forwardingConfigurationInputList = await prepareForwardingConfiguration.updateApprovalStatus( + operationListForConfiguration, + updateClientOperationName, + updateOperationClientOperationName, + disposeRemaindersOperationName + ); + + isApplicationAlreadyApproved = await checkApplicationApprovalStatus(operationClientUuidList) + + if (approvalStatus == 'APPROVED') { + forwardingConstructConfigurationStatus = await ForwardingConfigurationService. + configureForwardingConstructAsync( + operationServerName, + forwardingConfigurationInputList + ); + await MonitorTypeApprovalChannel.removeEntryFromMonitorApprovalStatusChannel(applicationName, releaseNumber); + } else if (isApplicationAlreadyApproved && approvalStatus == 'REGISTERED') { + forwardingConstructConfigurationStatus = await ForwardingConfigurationService. + unConfigureForwardingConstructAsync( + operationServerName, + forwardingConfigurationInputList + ); + await MonitorTypeApprovalChannel.AddEntryToMonitorApprovalStatusChannel(applicationName, releaseNumber); + } + } + }); + /**************************************************************************************** + * Prepare attributes to automate forwarding-construct + * If the approval status is approved , then embed-yourself, regard-application will be executed + * If the approval status is barred , then disregard-application will be executed + ****************************************************************************************/ + let forwardingInputList = []; + if (approvalStatus == 'APPROVED') { + forwardingInputList = await prepareForwardingAutomation.updateApprovalStatusApproved( + ltpConfigurationStatus, + forwardingConstructConfigurationStatus + ); + } else if (approvalStatus == 'REGISTERED' && isApplicationAlreadyApproved) { + forwardingInputList = await prepareForwardingAutomation.updateApprovalStatusRegistered(forwardingConstructConfigurationStatus); + } + if (forwardingInputList.length >= 1) forwardingAutomationInputList.push.apply(forwardingAutomationInputList, forwardingInputList); + if (forwardingAutomationInputList) { + await ForwardingAutomationService.automateForwardingConstructAsync( + operationServerName, + forwardingAutomationInputList, + requestHeaders.user, + requestHeaders.xCorrelator, + requestHeaders.traceIndicator, + requestHeaders.customerJourney + ); + } + // formulate trace-indicator for further requests + requestHeaders.traceIndicatorIncrementer = forwardingAutomationInputList.length + 1; + + /**************************************************************************************** + * Initiating sequence to start embedding of the approved application into architecture + * Reference:https://github.com/openBackhaul/RegistryOffice/blob/develop/spec/diagrams/is010_regardApprovalStatusCausesSequence.plantuml + ****************************************************************************************/ + if (approvalStatus == 'APPROVED' && processId) { + let timestampOfCurrentRequest = new Date(); + requestHeaders.timestampOfCurrentRequest = timestampOfCurrentRequest; + operationKeyUpdateNotificationService.turnONNotificationChannel(timestampOfCurrentRequest); + applicationApprovalCausesSequenceForEmbedding(requestBody, requestHeaders, operationServerName, processId); + } + return processId; + } catch (error) { + console.log(`error in updateApprovalStatus`, error); + throw createHttpError.InternalServerError(`${error}`); + } +} + +/** +* This method initiates embedding sequence for an approved application +* @param {Object} requestBody incoming request body in request +* @param {Object} requestHeaders request header from incoming request and attached traceIndicatorIncrementor to be used for further callbacks +* @param {String} operationServerName +* @param {String} processId request Identifier +*/ +async function applicationApprovalCausesSequenceForEmbedding(requestBody, requestHeaders, operationServerName, processId) { + try { + let applicationName = requestBody["application-name"]; + let releaseNumber = requestBody["release-number"]; + + let connectionWithTACResult = await ApprovingApplicationCausesConnectingWith(processId, applicationName, releaseNumber, requestHeaders); + + if (!connectionWithTACResult["successfully-embedded"]) { + ApprovingApplicationCausesResponding(connectionWithTACResult, requestHeaders); + return; + } + ApprovalNotification(applicationName, releaseNumber, requestHeaders, operationServerName); + ApprovingApplicationCausesPreparingTheEmbedding(processId, applicationName, releaseNumber, requestHeaders); + + } catch (error) { + console.log(error); + } +} + +/** +* This method is to check if application is APPROVED +* @param {List} clientLtps list of op-c uuid(s) +* @returns {Boolean} true if op-c is present in OUTPUT fc-port list of ServerReplacementBroadcast +*/ +async function checkApplicationApprovalStatus(clientLTPs) { + return new Promise(async function (resolve, reject) { + try { + if (clientLTPs.length > 0) { + let applicationApproved = false + let fcPortList + let forwardingConstruct = await ForwardingDomain.getForwardingConstructForTheForwardingNameAsync("ServerReplacementBroadcast"); + fcPortList = forwardingConstruct["fc-port"] + let fcPort = fcPortList.filter(fcport => clientLTPs.includes(fcport["logical-termination-point"])); + if (fcPort != undefined && fcPort.length > 0) { + applicationApproved = true + } + resolve(applicationApproved) + } + } catch (error) { + reject(error); + } + }) +} +/** + * This method generates a new process-id based on + * - current date and time + * - incoming application-name and release-number of application + * @param {String} applicationName name of the application for which approval-status is updated + * @param {String} releaseNumber release of the application for which approval-status is updated + * @returns {String} processId - identifier of a request + */ +const generateProcessId = async function (applicationName, releaseNumber) { + try { + let currentDate = new Date(); + let processId = + applicationName + releaseNumber.replaceAll(".", "") + ":" + + currentDate.getFullYear().toString() + + (currentDate.getMonth() + 1).toString().padStart(2, '0') + + currentDate.getDate().toString().padStart(2, '0') + ':' + + currentDate.getHours().toString() + + currentDate.getMinutes().toString() + + currentDate.getSeconds().toString(); + return processId; + } catch (error) { + console.log(error); + return (new createHttpError.InternalServerError(`${error}`)); + } +} + +/** + * Prepare attributes and automate BarringApplicationCausesDeregisteringOfApplication + * @param {String} applicationName name of the application for which approval-status is updated + * @param {String} releaseNumber release of the application for which approval-status is updated + * @param {Object} requestHeaders this object contains all request header attributes like user, xCorrelator, + * traceIndicator, customerJourney as well as traceIndicatorIncrementor + */ +async function BarringApplicationCausesDeregisteringOfApplication(applicationName, releaseNumber, requestHeaders) { + let result = false; + let forwardingName = "BarringApplicationCausesDeregisteringOfApplication"; + try { + let httpServerApplicationName = await httpServerInterface.getApplicationNameAsync(); + let httpServerReleaseNumber = await httpServerInterface.getReleaseNumberAsync(); + let requestBody = {}; + requestBody.applicationName = applicationName; + requestBody.releaseNumber = releaseNumber; + requestBody = onfAttributeFormatter.modifyJsonObjectKeysToKebabCase(requestBody); + if (httpServerApplicationName != applicationName || httpServerReleaseNumber != releaseNumber) { + result = await IndividualServicesUtility.forwardRequest( + forwardingName, + requestBody, + requestHeaders.user, + requestHeaders.xCorrelator, + requestHeaders.traceIndicator + "." + requestHeaders.traceIndicatorIncrementer++, + requestHeaders.customerJourney + ); + } + console.log(`${forwardingName} responded with ${result.status}`) + return result; + } catch (error) { + console.log(error); + } +} + +/** + * Prepare attributes and automate ApprovingApplicationCausesConnectingWith series that notifies to Alt, OKM, EATL, AA, OL + * @param {String} processId identifier for a request + * @param {String} applicationName name of the application for which approval-status is updated + * @param {String} releaseNumber release of the application for which approval-status is updated + * @param {Object} requestHeaders this object contains all request header attributes like user, xCorrelator, + * traceIndicator, customerJourney as well as traceIndicatorIncrementor + * @returns {Object} result Object that contains actual embedding status + */ +async function ApprovingApplicationCausesConnectingWith(processId, applicationName, releaseNumber, requestHeaders) { + let result = {}; + result["process-id"] = processId; + try { + let forwardingsList = [ + "ApprovingApplicationCausesConnectingWith.Alt", + "ApprovingApplicationCausesConnectingWith.Okm", + "ApprovingApplicationCausesConnectingWith.Eatl", + "ApprovingApplicationCausesConnectingWith.Aa", + "ApprovingApplicationCausesConnectingWith.Ol" + ]; + /* form request body for regard-application */ + let httpClientUuid = await httpClientInterface.getHttpClientUuidExcludingOldReleaseAndNewRelease( + applicationName, + releaseNumber, + NEW_RELEASE_FORWARDING_NAME + ); + let requestBody = { applicationName, releaseNumber }; + let tcpClient = (await logicalTerminationPoint.getServerLtpListAsync(httpClientUuid))[0]; + requestBody.protocol = await tcpClientInterface.getRemoteProtocolAsync(tcpClient); + requestBody.address = await tcpClientInterface.getRemoteAddressAsync(tcpClient); + requestBody.port = await tcpClientInterface.getRemotePortAsync(tcpClient); + requestBody = onfAttributeFormatter.modifyJsonObjectKeysToKebabCase(requestBody); + /* send regard-application to each application based on forwardingList */ + for (let i = 0; i < forwardingsList.length; i++) { + let forwardingName = forwardingsList[i]; + let response = await IndividualServicesUtility.forwardRequest( + forwardingName, + requestBody, + requestHeaders.user, + requestHeaders.xCorrelator, + requestHeaders.traceIndicator + "." + requestHeaders.traceIndicatorIncrementer++, + requestHeaders.customerJourney + ); + let responseCode = response.status; + let responseData = response.data; + if (!responseCode.toString().startsWith("2")) { + result["successfully-embedded"] = false; + result["reason-of-failure"] = `RO_REQUEST_UNANSWERED`; + } else if (!responseData["successfully-connected"]) { + result["successfully-embedded"] = responseData["successfully-connected"]; + result["reason-of-failure"] = `RO_${responseData["reason-of-failure"]}`; + } else { + result["successfully-embedded"] = responseData["successfully-connected"]; + } + if (!result["successfully-embedded"]) { + console.log(`embedding sequence terminated at ${forwardingName} because of ${result["reason-of-failure"]}`); + return result; + } + console.log(`${forwardingName} responded with ${responseCode}`); + } + return result; + } catch (error) { + console.log(error); + return error; + } +} + +/** + * Prepare attributes and automate ApprovingApplicationCausesResponding + * @param {Object} requestBody Object containing request-body to the request + * @param {Object} requestHeaders this object contains all request header attributes like user, xCorrelator, + * traceIndicator, customerJourney as well as traceIndicatorIncrementor + */ +async function ApprovingApplicationCausesResponding(requestBody, requestHeaders) { + try { + let forwardingName = "ApprovingApplicationCausesResponding"; + operationKeyUpdateNotificationService.turnOFFNotificationChannel(requestHeaders.timestampOfCurrentRequest); + let result = await IndividualServicesUtility.forwardRequest( + forwardingName, + requestBody, + requestHeaders.user, + requestHeaders.xCorrelator, + requestHeaders.traceIndicator + "." + requestHeaders.traceIndicatorIncrementer++, + requestHeaders.customerJourney + ); + console.log(`Embedding status is sent to TypeApprovalRegister through ${forwardingName} for ${JSON.stringify(requestBody)} with response code: ${result.status} `); + } catch (error) { + console.log(error); + } +} + +/** + * Prepare attributes and automate ApprovalNotification + * @param {String} applicationName name of the application for which approval-status is updated + * @param {String} releaseNumber release of the application for which approval-status is updated + * @param {Object} requestHeaders this object contains all request header attributes like user, xCorrelator, + * traceIndicator, customerJourney as well as traceIndicatorIncrementor + * @param {String} operationServerName op-s that has been called + */ +async function ApprovalNotification(applicationName, releaseNumber, requestHeaders, operationServerName) { + let forwardingConstructAutomationList = []; + try { + let forwardingName = "ApprovalNotification"; + let httpClientUuid = await httpClientInterface.getHttpClientUuidExcludingOldReleaseAndNewRelease( + applicationName, + releaseNumber, + NEW_RELEASE_FORWARDING_NAME + ); + let requestBody = { applicationName, releaseNumber }; + let tcpClient = (await logicalTerminationPoint.getServerLtpListAsync(httpClientUuid))[0]; + requestBody.protocol = await tcpClientInterface.getRemoteProtocolAsync(tcpClient); + requestBody.address = await tcpClientInterface.getRemoteAddressAsync(tcpClient); + requestBody.port = await tcpClientInterface.getRemotePortAsync(tcpClient); + requestBody = onfAttributeFormatter.modifyJsonObjectKeysToKebabCase(requestBody); + let forwardingAutomation = new forwardingConstructAutomationInput(forwardingName, requestBody); + forwardingConstructAutomationList.push(forwardingAutomation); + ForwardingAutomationService.automateForwardingConstructAsync( + operationServerName, + forwardingConstructAutomationList, + requestHeaders.user, + requestHeaders.xCorrelator, + requestHeaders.traceIndicator + "." + requestHeaders.traceIndicatorIncrementer++, + requestHeaders.customerJourney + ); + console.log(`${forwardingName} has been triggered`) + } catch (error) { + console.log(error); + } +} + +/** + * Prepare attributes for initiating embedding process with callback ApprovingApplicationCausesPreparingTheEmbedding + * @param {String} processId identifier for a request + * @param {String} applicationName name of the application for which approval-status is updated + * @param {String} releaseNumber release of the application for which approval-status is updated + * @param {Object} requestHeaders this object contains all request header attributes like user, xCorrelator, + * traceIndicator, customerJourney as well as traceIndicatorIncrementor + * @returns {Object} result Object that contains actual embedding status + */ +async function ApprovingApplicationCausesPreparingTheEmbedding(processId, applicationName, releaseNumber, requestHeaders) { + let result = {}; + let responseData = {}; + result["process-id"] = processId; + try { + /* requesting old-release information from the approved application*/ + [result, responseData] = await RequestForOldRelease(applicationName, releaseNumber, requestHeaders, result); + + if (!result["successfully-embedded"]) { + ApprovingApplicationCausesResponding(result, requestHeaders); + return; + } + + /* processing old release data for deciding further callbacks */ + let isCallBackEligible = true; + let oldReleaseApplicationName = responseData["application-name"]; + let oldReleaseReleaseNumber = responseData["release-number"]; + let oldReleaseHttpClientUuid = await httpClientInterface.getHttpClientUuidExcludingOldReleaseAndNewRelease(oldReleaseApplicationName, oldReleaseReleaseNumber, NEW_RELEASE_FORWARDING_NAME); + if (oldReleaseApplicationName == "OldRelease" || !oldReleaseHttpClientUuid) { + isCallBackEligible = false; + } + /* if old-release of an application is actually present, further callbacks to be triggered */ + if (isCallBackEligible) { + /* CreateLinkToUpdateNewReleaseClient */ + result = await CreateLinkToUpdateNewReleaseClient(oldReleaseApplicationName, oldReleaseReleaseNumber, requestHeaders, result); + if (!result["successfully-embedded"]) { + ApprovingApplicationCausesResponding(result, requestHeaders); + return; + } + } + proceedToUpdatingNewReleaseClientAfterReceivingOperationKey(applicationName, releaseNumber, oldReleaseApplicationName, oldReleaseReleaseNumber, requestHeaders, result, isCallBackEligible); + } catch (error) { + console.log(error); + throw error; + } + return; +} + +/** + * Prepare attributes and automate ApprovingApplicationCausesPreparingTheEmbedding.RequestForOldRelease + * @param {String} applicationName name of the application for which approval-status is updated + * @param {String} releaseNumber release of the application for which approval-status is updated + * @param {Object} requestHeaders this object contains all request header attributes like user, xCorrelator, + * traceIndicator, customerJourney as well as traceIndicatorIncrementor + * @returns {Object, Object} {result, responseData} + * result contains the embedding status, responseData contains the actual response for request in case of success + */ +async function RequestForOldRelease(applicationName, releaseNumber, requestHeaders, result) { + let responseData = {}; + let forwardingName = "ApprovingApplicationCausesPreparingTheEmbedding.RequestForOldRelease"; + try { + let response = await IndividualServicesUtility.forwardRequest( + forwardingName, + {}, + requestHeaders.user, + requestHeaders.xCorrelator, + requestHeaders.traceIndicator + "." + requestHeaders.traceIndicatorIncrementer++, + requestHeaders.customerJourney, + applicationName + releaseNumber + ); + let responseCode = response.status; + if (!responseCode.toString().startsWith("2")) { + result["successfully-embedded"] = false; + result["reason-of-failure"] = `RO_REQUEST_UNANSWERED`; + } else { + responseData = response.data; + result["successfully-embedded"] = true; + } + console.log(`${forwardingName} has been triggered`); + } catch (error) { + console.log(error); + result["successfully-embedded"] = false; + result["reason-of-failure"] = `RO_OTHERS`; + } + return [result, responseData]; +} + +/** + * Prepare attributes and automate ApprovingApplicationCausesPreparingTheEmbedding.CreateLinkToUpdateNewReleaseClient + * This callback helps creating link between old-release of application and RegistryOffice for /v1/update-client-of-subsequent-release + * @param {String} oldReleaseApplicationName name of old-release of the application for which approval-status is updated + * @param {String} oldReleaseReleaseNumber release of old-release of the application for which approval-status is updated + * @param {Object} requestHeaders this object contains all request header attributes like user, xCorrelator, + * traceIndicator, customerJourney as well as traceIndicatorIncrementor + * @param {Object} result contains process-id and previous result + * @returns {Object} result contains the embedding status and process-id + */ +async function CreateLinkToUpdateNewReleaseClient(oldReleaseApplicationName, oldReleaseReleaseNumber, requestHeaders, result) { + let forwardingName = "ApprovingApplicationCausesPreparingTheEmbedding.CreateLinkToUpdateNewReleaseClient"; + let forwardingForUpdatingNewReleaseClient = "ApprovingApplicationCausesPreparingTheEmbedding.RequestForUpdatingNewReleaseClient"; + try { + /* formulating request body*/ + let requestBody = {}; + requestBody["serving-application-name"] = oldReleaseApplicationName; + requestBody["serving-application-release-number"] = oldReleaseReleaseNumber; + let operationClientUuid = await IndividualServicesUtility.getConsequentOperationClientUuid(forwardingForUpdatingNewReleaseClient, oldReleaseApplicationName, oldReleaseReleaseNumber); + requestBody["operation-name"] = await OperationClientInterface.getOperationNameAsync(operationClientUuid); + requestBody["consuming-application-name"] = await httpServerInterface.getApplicationNameAsync(); + requestBody["consuming-application-release-number"] = await httpServerInterface.getReleaseNumberAsync(); + + let response = await IndividualServicesUtility.forwardRequest( + forwardingName, + requestBody, + requestHeaders.user, + requestHeaders.xCorrelator, + requestHeaders.traceIndicator + "." + requestHeaders.traceIndicatorIncrementer++, + requestHeaders.customerJourney + ); + /* processing the response */ + let responseCode = response.status; + if (!responseCode.toString().startsWith("2")) { + result["successfully-embedded"] = false; + result["reason-of-failure"] = `RO_REQUEST_UNANSWERED`; + } else { + let responseData = response.data; + if (!responseData["client-successfully-added"]) { + result["successfully-embedded"] = false; + result["reason-of-failure"] = `RO_${responseData["reason-of-failure"]}`; + } else { + result["successfully-embedded"] = true; + } + } + console.log(`${forwardingName} has been triggered`); + } catch (error) { + console.log(error); + result["successfully-embedded"] = false; + result["reason-of-failure"] = `RO_OTHERS`; + } + return result; +} + +/** + * After ApprovingApplicationCausesPreparingTheEmbedding.CreateLinkToUpdateNewReleaseClient, this function autmates further callbacks after receiving /v1/update-operation-key for OR://v1/update-client-of-subsequent-release + * @param {String} oldReleaseApplicationName name of old-release of the application for which approval-status is updated + * @param {String} oldReleaseReleaseNumber release of old-release of the application for which approval-status is updated + * @param {Object} requestHeaders this object contains all request header attributes like user, xCorrelator, + * traceIndicator, customerJourney as well as traceIndicatorIncrementor + * @param {Object} result contains process-id and previous result + */ +async function proceedToUpdatingNewReleaseClientAfterReceivingOperationKey(applicationName, releaseNumber, oldReleaseApplicationName, oldReleaseReleaseNumber, requestHeaders, result, isCallBackEligible) { + let isOperationKeyUpdated = false; + let responseData = {}; + try { + if (isCallBackEligible) { + let forwardingNameForUpdatingNewReleaseClient = "ApprovingApplicationCausesPreparingTheEmbedding.RequestForUpdatingNewReleaseClient"; + let operationClientUuid = await IndividualServicesUtility.getConsequentOperationClientUuid(forwardingNameForUpdatingNewReleaseClient, oldReleaseApplicationName, oldReleaseReleaseNumber); + let waitingTime = await integerProfileOperation.getIntegerValueForTheIntegerProfileNameAsync("maximumWaitTimeToReceiveOperationKey"); + isOperationKeyUpdated = await operationKeyUpdateNotificationService.waitUntilOperationKeyIsUpdated(operationClientUuid, requestHeaders.timestampOfCurrentRequest, waitingTime); + if (!isOperationKeyUpdated) { + result["successfully-embedded"] = 'false'; + result["reason-of-failure"] = `RO_MAXIMUM_WAIT_TIME_TO_RECEIVE_OPERATION_KEY_EXCEEDED`; + ApprovingApplicationCausesResponding(result, requestHeaders); + return; + } + + /* RequestForUpdatingNewReleaseClient */ + [result, responseData] = await RequestForUpdatingNewReleaseClient(oldReleaseApplicationName, oldReleaseReleaseNumber, applicationName, releaseNumber, requestHeaders, result); + if (!result["successfully-embedded"]) { + ApprovingApplicationCausesResponding(result, requestHeaders); + return; + } + + /* CreateLinkForBequeathYourData */ + result = await CreateLinkForBequeathYourData(oldReleaseApplicationName, oldReleaseReleaseNumber, responseData, applicationName, releaseNumber, requestHeaders, result); + if (!result["successfully-embedded"]) { + ApprovingApplicationCausesResponding(result, requestHeaders); + return; + } + + /* CreateFurtherLinksForTransferringData */ + result = await CreateFurtherLinksForTransferringData(applicationName, releaseNumber, responseData, oldReleaseApplicationName, oldReleaseReleaseNumber, requestHeaders, result); + if (!result["successfully-embedded"]) { + ApprovingApplicationCausesResponding(result, requestHeaders); + return; + } + } + /* CreateLinkForPromptingEmbedding */ + result = await CreateLinkForPromptingEmbedding(applicationName, releaseNumber, requestHeaders, result); + if (!result["successfully-embedded"]) { + ApprovingApplicationCausesResponding(result, requestHeaders); + return; + } + proceedToEmbeddingAfterReceivingOperationKey(applicationName, releaseNumber, oldReleaseApplicationName, oldReleaseReleaseNumber, requestHeaders, result); + } catch (error) { + console.log(error); + throw error; + } + return; +} + +/** + * Prepare attributes and automate ApprovingApplicationCausesPreparingTheEmbedding.RequestForUpdatingNewReleaseClient + * @param {String} oldReleaseApplicationName name of old-release of the application for which approval-status is updated + * @param {String} oldReleaseReleaseNumber release of old-release of the application for which approval-status is updated + * @param {String} applicationName name of the application for which approval-status is updated + * @param {String} releaseNumber release of the application for which approval-status is updated + * @param {Object} requestHeaders this object contains all request header attributes like user, xCorrelator, + * traceIndicator, customerJourney as well as traceIndicatorIncrementor + * @param {Object} result contains process-id and previous result + * @returns {Object, Object} {result, responseData} result contains the embedding status and process-id while responseData contains actual response body on success + */ +async function RequestForUpdatingNewReleaseClient(oldReleaseApplicationName, oldReleaseReleaseNumber, applicationName, releaseNumber, requestHeaders, result) { + let forwardingName = "ApprovingApplicationCausesPreparingTheEmbedding.RequestForUpdatingNewReleaseClient"; + let responseData = {}; + try { + /* formulating request body*/ + let requestBody = {}; + requestBody["application-name"] = applicationName; + requestBody["release-number"] = releaseNumber; + let httpClientUuid = await httpClientInterface.getHttpClientUuidAsync(applicationName, releaseNumber); + let tcpClient = (await logicalTerminationPoint.getServerLtpListAsync(httpClientUuid))[0]; + requestBody.protocol = await tcpClientInterface.getRemoteProtocolAsync(tcpClient); + requestBody.address = await tcpClientInterface.getRemoteAddressAsync(tcpClient); + requestBody.port = await tcpClientInterface.getRemotePortAsync(tcpClient); + let response = await IndividualServicesUtility.forwardRequest( + forwardingName, + requestBody, + requestHeaders.user, + requestHeaders.xCorrelator, + requestHeaders.traceIndicator + "." + requestHeaders.traceIndicatorIncrementer++, + requestHeaders.customerJourney, + oldReleaseApplicationName + oldReleaseReleaseNumber + ); + /* processing the response */ + let responseCode = response.status; + if (!responseCode.toString().startsWith("2")) { + result["successfully-embedded"] = false; + result["reason-of-failure"] = `RO_REQUEST_UNANSWERED`; + } else { + responseData = response.data; + result["successfully-embedded"] = true; + } + console.log(`${forwardingName} has been triggered`); + } catch (error) { + console.log(error); + result["successfully-embedded"] = false; + result["reason-of-failure"] = `RO_OTHERS`; + } + return [result, responseData]; +} + +/** + * Prepare attributes and automate ApprovingApplicationCausesPreparingTheEmbedding.CreateLinkForBequeathYourData + * This callback helps creating link between old-release and new-release of application for /v1/bequeath-your-data-and-die + * @param {String} oldReleaseApplicationName name of old-release of the application for which approval-status is updated + * @param {String} oldReleaseReleaseNumber release of old-release of the application for which approval-status is updated + * @param {Object} responseDataOfRequestForUpdatingNewReleaseClient response received from RequestForUpdatingNewReleaseClient callback + * @param {String} applicationName name of the application for which approval-status is updated + * @param {String} releaseNumber release of the application for which approval-status is updated + * @param {Object} requestHeaders this object contains all request header attributes like user, xCorrelator, + * traceIndicator, customerJourney as well as traceIndicatorIncrementor + * @param {Object} result contains process-id and previous result + * @returns {Object} result contains the embedding status and process-id + */ +async function CreateLinkForBequeathYourData(oldReleaseApplicationName, oldReleaseReleaseNumber, responseDataOfRequestForUpdatingNewReleaseClient, applicationName, releaseNumber, requestHeaders, result) { + let forwardingName = "ApprovingApplicationCausesPreparingTheEmbedding.CreateLinkForBequeathYourData"; + try { + /* formulating request body*/ + let requestBody = {}; + requestBody["serving-application-name"] = oldReleaseApplicationName; + requestBody["serving-application-release-number"] = oldReleaseReleaseNumber; + requestBody["operation-name"] = responseDataOfRequestForUpdatingNewReleaseClient["bequeath-your-data-and-die-operation"]; + requestBody["consuming-application-name"] = applicationName; + requestBody["consuming-application-release-number"] = releaseNumber; + + let response = await IndividualServicesUtility.forwardRequest( + forwardingName, + requestBody, + requestHeaders.user, + requestHeaders.xCorrelator, + requestHeaders.traceIndicator + "." + requestHeaders.traceIndicatorIncrementer++, + requestHeaders.customerJourney + ); + /* processing the response */ + let responseCode = response.status; + if (!responseCode.toString().startsWith("2")) { + result["successfully-embedded"] = false; + result["reason-of-failure"] = `RO_REQUEST_UNANSWERED`; + } else { + let responseData = response.data; + if (!responseData["client-successfully-added"]) { + result["successfully-embedded"] = false; + result["reason-of-failure"] = `RO_${responseData["reason-of-failure"]}`; + } else { + result["successfully-embedded"] = true; + } + } + console.log(`${forwardingName} has been triggered`); + } catch (error) { + console.log(error); + result["successfully-embedded"] = false; + result["reason-of-failure"] = `RO_OTHERS`; + } + return result; +} + +/** + * Prepare attributes and automate ApprovingApplicationCausesPreparingTheEmbedding.CreateFurtherLinksForTransferringData + * This callback helps creating link between old-release and new-release of application for each operation-clients received in RequestForUpdatingNewReleaseClient["data-transfer-operations-list"] + * @param {String} oldReleaseApplicationName name of old-release of the application for which approval-status is updated + * @param {String} oldReleaseReleaseNumber release of old-release of the application for which approval-status is updated + * @param {Object} responseDataOfRequestForUpdatingNewReleaseClient response received from RequestForUpdatingNewReleaseClient callback + * @param {String} applicationName name of the application for which approval-status is updated + * @param {String} releaseNumber release of the application for which approval-status is updated + * @param {Object} requestHeaders this object contains all request header attributes like user, xCorrelator, + * traceIndicator, customerJourney as well as traceIndicatorIncrementor + * @param {Object} result contains process-id and previous result + * @returns {Object} result contains the embedding status and process-id + */ +async function CreateFurtherLinksForTransferringData(applicationName, releaseNumber, responseDataOfRequestForUpdatingNewReleaseClient, oldReleaseApplicationName, oldReleaseReleaseNumber, requestHeaders, result) { + let forwardingName = "ApprovingApplicationCausesPreparingTheEmbedding.CreateFurtherLinksForTransferringData"; + try { + /* formulating request body*/ + let requestBody = {}; + requestBody["serving-application-name"] = applicationName; + requestBody["serving-application-release-number"] = releaseNumber; + requestBody["consuming-application-name"] = oldReleaseApplicationName; + requestBody["consuming-application-release-number"] = oldReleaseReleaseNumber; + let operationNameList = responseDataOfRequestForUpdatingNewReleaseClient["data-transfer-operations-list"]; + for (let i = 0; i < operationNameList.length; i++) { + requestBody["operation-name"] = operationNameList[i]; + let response = await IndividualServicesUtility.forwardRequest( + forwardingName, + requestBody, + requestHeaders.user, + requestHeaders.xCorrelator, + requestHeaders.traceIndicator + "." + requestHeaders.traceIndicatorIncrementer++, + requestHeaders.customerJourney + ); + /* processing the response */ + let responseCode = response.status; + if (!responseCode.toString().startsWith("2")) { + result["successfully-embedded"] = false; + result["reason-of-failure"] = `RO_REQUEST_UNANSWERED`; + break; + } else { + let responseData = response.data; + if (!responseData["client-successfully-added"]) { + result["successfully-embedded"] = false; + result["reason-of-failure"] = `RO_${responseData["reason-of-failure"]}`; + break; + } else { + result["successfully-embedded"] = true; + } + } + } + console.log(`${forwardingName} has been triggered`); + } catch (error) { + console.log(error); + result["successfully-embedded"] = false; + result["reason-of-failure"] = `RO_OTHERS`; + } + return result; +} + +/** + * Prepare attributes and automate ApprovingApplicationCausesPreparingTheEmbedding.CreateLinkForPromptingEmbedding + * This callback helps creating link between new-release of application and RegistryOffice for /v1/embed-yourself + * @param {String} applicationName name of the application for which approval-status is updated + * @param {String} releaseNumber release of the application for which approval-status is updated + * @param {Object} requestHeaders this object contains all request header attributes like user, xCorrelator, + * traceIndicator, customerJourney as well as traceIndicatorIncrementor + * @param {Object} result contains process-id and previous result + * @returns {Object} result contains the embedding status and process-id + */ +async function CreateLinkForPromptingEmbedding(applicationName, releaseNumber, requestHeaders, result) { + let forwardingName = "ApprovingApplicationCausesPreparingTheEmbedding.CreateLinkForPromptingEmbedding"; + let forwardingForEmbedding = "ApprovingApplicationCausesPreparingTheEmbedding.RequestForEmbedding"; + try { + /* formulating request body*/ + let requestBody = {}; + requestBody["serving-application-name"] = applicationName; + requestBody["serving-application-release-number"] = releaseNumber; + let operationClientUuid = await IndividualServicesUtility.getConsequentOperationClientUuid(forwardingForEmbedding, applicationName, releaseNumber); + requestBody["operation-name"] = await OperationClientInterface.getOperationNameAsync(operationClientUuid); + requestBody["consuming-application-name"] = await httpServerInterface.getApplicationNameAsync(); + requestBody["consuming-application-release-number"] = await httpServerInterface.getReleaseNumberAsync(); + + let response = await IndividualServicesUtility.forwardRequest( + forwardingName, + requestBody, + requestHeaders.user, + requestHeaders.xCorrelator, + requestHeaders.traceIndicator + "." + requestHeaders.traceIndicatorIncrementer++, + requestHeaders.customerJourney + ); + /* processing the response */ + let responseCode = response.status; + if (!responseCode.toString().startsWith("2")) { + result["successfully-embedded"] = false; + result["reason-of-failure"] = `RO_REQUEST_UNANSWERED`; + } else { + let responseData = response.data; + if (!responseData["client-successfully-added"]) { + result["successfully-embedded"] = false; + result["reason-of-failure"] = `RO_${responseData["reason-of-failure"]}`; + } else { + result["successfully-embedded"] = true; + } + } + console.log(`${forwardingName} has been triggered`); + } catch (error) { + console.log(error); + result["successfully-embedded"] = false; + result["reason-of-failure"] = `RO_OTHERS`; + } + return result; +} + +/** + * After ApprovingApplicationCausesPreparingTheEmbedding.CreateLinkForPromptingEmbedding, this function autmates further callbacks after receiving /v1/update-operation-key for NR://v1/embed-yourself + * @param {String} applicationName name of the application for which approval-status is updated + * @param {String} releaseNumber release of the application for which approval-status is updated + * @param {String} oldReleaseApplicationName name of old-release of the application for which approval-status is updated + * @param {String} oldReleaseReleaseNumber release of old-release of the application for which approval-status is updated + * @param {Object} requestHeaders this object contains all request header attributes like user, xCorrelator, + * traceIndicator, customerJourney as well as traceIndicatorIncrementor + * @param {Object} result contains process-id and previous result + */ +async function proceedToEmbeddingAfterReceivingOperationKey(applicationName, releaseNumber, oldReleaseApplicationName, oldReleaseReleaseNumber, requestHeaders, result) { + let isOperationKeyUpdated = false; + try { + let forwardingNameForEmbedding = "ApprovingApplicationCausesPreparingTheEmbedding.RequestForEmbedding"; + let operationClientUuid = await IndividualServicesUtility.getConsequentOperationClientUuid(forwardingNameForEmbedding, applicationName, releaseNumber); + let waitingTime = await integerProfileOperation.getIntegerValueForTheIntegerProfileNameAsync("maximumWaitTimeToReceiveOperationKey"); + isOperationKeyUpdated = await operationKeyUpdateNotificationService.waitUntilOperationKeyIsUpdated(operationClientUuid, requestHeaders.timestampOfCurrentRequest, waitingTime); + if (!isOperationKeyUpdated) { + result["successfully-embedded"] = 'false'; + result["reason-of-failure"] = `RO_MAXIMUM_WAIT_TIME_TO_RECEIVE_OPERATION_KEY_EXCEEDED`; + ApprovingApplicationCausesResponding(result, requestHeaders); + return; + } + /* RequestForEmbedding */ + result = await RequestForEmbedding(applicationName, releaseNumber, oldReleaseApplicationName, oldReleaseReleaseNumber, requestHeaders, result); // to be initiated by update-operation-key + if (!result["successfully-embedded"]) { + ApprovingApplicationCausesResponding(result, requestHeaders); + return; + } + /** + * ApprovingApplicationCausesConnectingToBroadcast has been triggered after successful embedding of application + */ + result = await ApprovingApplicationCausesConnectingToBroadcast(applicationName, releaseNumber, requestHeaders, result); + ApprovingApplicationCausesResponding(result, requestHeaders); + } catch (error) { + console.log(error); + throw error; + } + return; +} + +/** + * Prepare attributes and automate ApprovingApplicationCausesPreparingTheEmbedding.RequestForEmbedding + * @param {String} applicationName name of the application for which approval-status is updated + * @param {String} releaseNumber release of the application for which approval-status is updated + * @param {String} oldReleaseApplicationName name of old-release of the application for which approval-status is updated + * @param {String} oldReleaseReleaseNumber release of old-release of the application for which approval-status is updated + * @param {Object} requestHeaders this object contains all request header attributes like user, xCorrelator, + * traceIndicator, customerJourney as well as traceIndicatorIncrementor + * @param {Object} result contains process-id and previous result + * @returns {Object} result result contains the embedding status and process-id + */ +async function RequestForEmbedding(applicationName, releaseNumber, oldReleaseApplicationName, oldReleaseReleaseNumber, requestHeaders, result) { + let forwardingName = "ApprovingApplicationCausesPreparingTheEmbedding.RequestForEmbedding"; + try { + /* formulating request body*/ + let requestBody = {}; + requestBody["registry-office-application"] = await httpServerInterface.getApplicationNameAsync(); + requestBody["registry-office-application-release-number"] = await httpServerInterface.getReleaseNumberAsync(); + requestBody["registry-office-address"] = await tcpServerInterface.getLocalAddressForForwarding(); + requestBody["registry-office-port"] = await tcpServerInterface.getLocalPort(); + requestBody["registry-office-protocol"] = await tcpServerInterface.getLocalProtocol() + + let controlConstructUuid = await ControlConstruct.getUuidAsync(); + + let relayServerReplacementOperationUuid = controlConstructUuid + "-op-s-is-010"; + requestBody["relay-server-replacement-operation"] = await operationServerInterface.getOperationNameAsync(relayServerReplacementOperationUuid); + + let relayOperationUpdateOperationUuid = controlConstructUuid + "-op-s-is-011"; + requestBody["relay-operation-update-operation"] = await operationServerInterface.getOperationNameAsync(relayOperationUpdateOperationUuid); + + let deregistrationOperationUuid = controlConstructUuid + "-op-s-is-002"; + requestBody["deregistration-operation"] = await operationServerInterface.getOperationNameAsync(deregistrationOperationUuid); + + let oldReleaseHttpClientUuid = await httpClientInterface.getHttpClientUuidAsync(oldReleaseApplicationName, oldReleaseReleaseNumber); + + //get the oldRelease tcp client information + if (oldReleaseHttpClientUuid) { + let tcpClientOfOldRelease = (await logicalTerminationPoint.getServerLtpListAsync(oldReleaseHttpClientUuid))[0]; + if (tcpClientOfOldRelease) { + requestBody["old-release-protocol"] = await tcpClientInterface.getRemoteProtocolAsync(tcpClientOfOldRelease); + requestBody["old-release-address"] = await tcpClientInterface.getRemoteAddressAsync(tcpClientOfOldRelease); + requestBody["old-release-port"] = await tcpClientInterface.getRemotePortAsync(tcpClientOfOldRelease); + } + } + let response = await IndividualServicesUtility.forwardRequest( + forwardingName, + requestBody, + requestHeaders.user, + requestHeaders.xCorrelator, + requestHeaders.traceIndicator + "." + requestHeaders.traceIndicatorIncrementer++, + requestHeaders.customerJourney, + applicationName + releaseNumber + ); + /* processing the response */ + let responseCode = response.status; + if (!responseCode.toString().startsWith("2")) { + result["successfully-embedded"] = false; + result["reason-of-failure"] = `RO_REQUEST_UNANSWERED`; + } else { + result["successfully-embedded"] = true; + } + console.log(`${forwardingName} has been triggered`); + } catch (error) { + console.log(error) + result["successfully-embedded"] = false; + result["reason-of-failure"] = `RO_OTHERS`; + } + return result; +} + +/** + * ApprovingApplicationCausesConnectingToBroadcast further calls broadcasting services to broadcast information about new application to all other applications. + * @param {String} applicationName name of approved application + * @param {String} releaseNumber release of approved application + * @param {Object} requestHeaders header parameters came along with request + * @param {Object} result contains previous result and process-id + * @returns {Object} result contains current result for the given process-id + */ +async function ApprovingApplicationCausesConnectingToBroadcast(applicationName, releaseNumber, requestHeaders, result) { + try { + result = await CreateLinkForUpdatingClient(applicationName, releaseNumber, requestHeaders, result); + if (!result["successfully-embedded"]) return result; + result = await CreateLinkForUpdatingOperationClient(applicationName, releaseNumber, requestHeaders, result); + if (!result["successfully-embedded"]) return result; + result = await CreateLinkForDisposingRemainders(applicationName, releaseNumber, requestHeaders, result); + if (!result["successfully-embedded"]) return result; + } catch (error) { + console.log(error); + throw error; + } + return result; +} + +/** + * Prepare attributes and automate ApprovingApplicationCausesConnectingToBroadcast.CreateLinkForUpdatingClient + * This callback helps creating link between new-release of application and RegistryOffice for /v1/update-client + * @param {String} applicationName name of the application for which approval-status is updated + * @param {String} releaseNumber release of the application for which approval-status is updated + * @param {Object} requestHeaders this object contains all request header attributes like user, xCorrelator, + * traceIndicator, customerJourney as well as traceIndicatorIncrementor + * @param {Object} result contains process-id and previous result + * @returns {Object} result contains the embedding status and process-id + */ +async function CreateLinkForUpdatingClient(applicationName, releaseNumber, requestHeaders, result) { + let forwardingName = "ApprovingApplicationCausesConnectingToBroadcast.CreateLinkForUpdatingClient"; + let forwardingForBroadcast = "ServerReplacementBroadcast"; + try { + /* formulating request body*/ + let requestBody = {}; + requestBody["serving-application-name"] = applicationName; + requestBody["serving-application-release-number"] = releaseNumber; + let operationClientUuid = await IndividualServicesUtility.getConsequentOperationClientUuid(forwardingForBroadcast, applicationName, releaseNumber); + requestBody["operation-name"] = await OperationClientInterface.getOperationNameAsync(operationClientUuid); + requestBody["consuming-application-name"] = await httpServerInterface.getApplicationNameAsync(); + requestBody["consuming-application-release-number"] = await httpServerInterface.getReleaseNumberAsync(); + + let response = await IndividualServicesUtility.forwardRequest( + forwardingName, + requestBody, + requestHeaders.user, + requestHeaders.xCorrelator, + requestHeaders.traceIndicator + "." + requestHeaders.traceIndicatorIncrementer++, + requestHeaders.customerJourney + ); + /* processing the response */ + let responseCode = response.status; + if (!responseCode.toString().startsWith("2")) { + result["successfully-embedded"] = false; + result["reason-of-failure"] = `RO_REQUEST_UNANSWERED`; + } else { + let responseData = response.data; + if (!responseData["client-successfully-added"]) { + result["successfully-embedded"] = false; + result["reason-of-failure"] = `RO_${responseData["reason-of-failure"]}`; + } else { + result["successfully-embedded"] = true; + } + } + console.log(`${forwardingName} has been triggered`); + } catch (error) { + console.log(error); + result["successfully-embedded"] = false; + result["reason-of-failure"] = `RO_OTHERS`; + } + return result; +} + +/** + * Prepare attributes and automate ApprovingApplicationCausesConnectingToBroadcast.CreateLinkForUpdatingOperationClient + * This callback helps creating link between new-release of application and RegistryOffice for /v1/update-operation-client + * @param {String} applicationName name of the application for which approval-status is updated + * @param {String} releaseNumber release of the application for which approval-status is updated + * @param {Object} requestHeaders this object contains all request header attributes like user, xCorrelator, + * traceIndicator, customerJourney as well as traceIndicatorIncrementor + * @param {Object} result contains process-id and previous result + * @returns {Object} result contains the embedding status and process-id + */ +async function CreateLinkForUpdatingOperationClient(applicationName, releaseNumber, requestHeaders, result) { + let forwardingName = "ApprovingApplicationCausesConnectingToBroadcast.CreateLinkForUpdatingOperationClient"; + let forwardingForBroadcast = "OperationUpdateBroadcast"; + try { + /* formulating request body*/ + let requestBody = {}; + requestBody["serving-application-name"] = applicationName; + requestBody["serving-application-release-number"] = releaseNumber; + let operationClientUuid = await IndividualServicesUtility.getConsequentOperationClientUuid(forwardingForBroadcast, applicationName, releaseNumber); + requestBody["operation-name"] = await OperationClientInterface.getOperationNameAsync(operationClientUuid); + requestBody["consuming-application-name"] = await httpServerInterface.getApplicationNameAsync(); + requestBody["consuming-application-release-number"] = await httpServerInterface.getReleaseNumberAsync(); + + let response = await IndividualServicesUtility.forwardRequest( + forwardingName, + requestBody, + requestHeaders.user, + requestHeaders.xCorrelator, + requestHeaders.traceIndicator + "." + requestHeaders.traceIndicatorIncrementer++, + requestHeaders.customerJourney + ); + /* processing the response */ + let responseCode = response.status; + if (!responseCode.toString().startsWith("2")) { + result["successfully-embedded"] = false; + result["reason-of-failure"] = `RO_REQUEST_UNANSWERED`; + } else { + let responseData = response.data; + if (!responseData["client-successfully-added"]) { + result["successfully-embedded"] = false; + result["reason-of-failure"] = `RO_${responseData["reason-of-failure"]}`; + } else { + result["successfully-embedded"] = true; + } + } + console.log(`${forwardingName} has been triggered`); + } catch (error) { + console.log(error); + result["successfully-embedded"] = false; + result["reason-of-failure"] = `RO_OTHERS`; + } + return result; +} + +/** + * Prepare attributes and automate ApprovingApplicationCausesConnectingToBroadcast.CreateLinkForDisposingRemainders + * This callback helps creating link between new-release of application and RegistryOffice for /v1/dispose-remainders-of-deregistered-application + * @param {String} applicationName name of the application for which approval-status is updated + * @param {String} releaseNumber release of the application for which approval-status is updated + * @param {Object} requestHeaders this object contains all request header attributes like user, xCorrelator, + * traceIndicator, customerJourney as well as traceIndicatorIncrementor + * @param {Object} result contains process-id and previous result + * @returns {Object} result contains the embedding status and process-id + */ +async function CreateLinkForDisposingRemainders(applicationName, releaseNumber, requestHeaders, result) { + let forwardingName = "ApprovingApplicationCausesConnectingToBroadcast.CreateLinkForDisposingRemainders"; + let forwardingForBroadcast = "DeRegistrationBroadcast"; + try { + /* formulating request body*/ + let requestBody = {}; + requestBody["serving-application-name"] = applicationName; + requestBody["serving-application-release-number"] = releaseNumber; + let operationClientUuid = await IndividualServicesUtility.getConsequentOperationClientUuid(forwardingForBroadcast, applicationName, releaseNumber); + requestBody["operation-name"] = await OperationClientInterface.getOperationNameAsync(operationClientUuid); + requestBody["consuming-application-name"] = await httpServerInterface.getApplicationNameAsync(); + requestBody["consuming-application-release-number"] = await httpServerInterface.getReleaseNumberAsync(); + + let response = await IndividualServicesUtility.forwardRequest( + forwardingName, + requestBody, + requestHeaders.user, + requestHeaders.xCorrelator, + requestHeaders.traceIndicator + "." + requestHeaders.traceIndicatorIncrementer++, + requestHeaders.customerJourney + ); + /* processing the response */ + let responseCode = response.status; + if (!responseCode.toString().startsWith("2")) { + result["successfully-embedded"] = false; + result["reason-of-failure"] = `RO_REQUEST_UNANSWERED`; + } else { + let responseData = response.data; + if (!responseData["client-successfully-added"]) { + result["successfully-embedded"] = false; + result["reason-of-failure"] = `RO_${responseData["reason-of-failure"]}`; + } else { + result["successfully-embedded"] = true; + } + } + console.log(`${forwardingName} has been triggered`); + } catch (error) { + console.log(error); + result["successfully-embedded"] = false; + result["reason-of-failure"] = `RO_OTHERS`; + } + return result; +} \ No newline at end of file diff --git a/server/service/individualServices/SoftwareUpgrade.js b/server/service/individualServices/SoftwareUpgrade.js index 12189ec..5467b9e 100644 --- a/server/service/individualServices/SoftwareUpgrade.js +++ b/server/service/individualServices/SoftwareUpgrade.js @@ -13,10 +13,10 @@ const ForwardingDomain = require('onf-core-model-ap/applicationPattern/onfModel/ const onfAttributes = require('onf-core-model-ap/applicationPattern/onfModel/constants/OnfAttributes'); const FcPort = require('onf-core-model-ap/applicationPattern/onfModel/models/FcPort'); const onfAttributeFormatter = require('onf-core-model-ap/applicationPattern/onfModel/utility/OnfAttributeFormatter'); -const eventDispatcher = require('onf-core-model-ap/applicationPattern/rest/client/eventDispatcher'); const OperationServerInterface = require('onf-core-model-ap/applicationPattern/onfModel/models/layerProtocols/OperationServerInterface'); const ApplicationPreceedingVersion = require('./ApplicationPreceedingVersion'); const ControlConstruct = require('onf-core-model-ap/applicationPattern/onfModel/models/ControlConstruct'); +const IndividualServicesUtility = require('./IndividualServicesUtility'); var traceIndicatorIncrementer = 1; /** * This method performs the set of procedure to transfer the data from this version to next version of the application
@@ -44,6 +44,7 @@ exports.upgradeSoftwareVersion = async function (user, xCorrelator, traceIndicat await redirectNotificationNewRelease(user, xCorrelator, traceIndicator, customerJourney); await replaceOldReleaseWithNewRelease(user, xCorrelator, traceIndicator, customerJourney); resolve(); + } catch (error) { reject(error); } @@ -54,10 +55,8 @@ async function transferDataToTheNewRelease(user, xCorrelator, traceIndicator, cu return new Promise(async function (resolve, reject) { try { await promptForBequeathingDataCausesNewApplicationBeingRequestedToInquireForApplicationTypeApprovals(user, xCorrelator, traceIndicator, customerJourney); - await promptForBequeathingDataCausesNewApplicationBeingRequestedToDocumentSubscriptionsForDeregistrationNotifications(user, xCorrelator, traceIndicator, customerJourney); - await promptForBequeathingDataCausesNewApplicationBeingRequestedToDocumentSubscriptionsForApprovalNotifications(user, xCorrelator, traceIndicator, customerJourney); - await promptForBequeathingDataCausesNewApplicationBeingRequestedToDocumentSubscriptionsForWithdrawnApprovalNotifications(user, xCorrelator, traceIndicator, customerJourney); await promptForBequeathingDataCausesTransferOfListOfAlreadyRegisteredApplications(user, xCorrelator, traceIndicator, customerJourney); + await PromptForBequeathingDataCausesTransferOfListOfSubscriptionsForEmbeddingStatusChanges(user, xCorrelator, traceIndicator, customerJourney); resolve(); } catch (error) { reject(error); @@ -112,7 +111,7 @@ async function promptForBequeathingDataCausesNewApplicationBeingRequestedToInqui let inquiryForApplicationTypeApprovalFCName = "RegistrationCausesInquiryForApplicationTypeApproval"; let forwardingConstructInstance = await ForwardingDomain.getForwardingConstructForTheForwardingNameAsync(inquiryForApplicationTypeApprovalFCName); - let operationClientUuidList = getFcPortOutputLogicalTerminationPointList(forwardingConstructInstance); + let operationClientUuidList = await IndividualServicesUtility.getFcPortOutputLogicalTerminationPointList(forwardingConstructInstance); for (let i = 0; i < operationClientUuidList.length; i++) { try { @@ -139,7 +138,7 @@ async function promptForBequeathingDataCausesNewApplicationBeingRequestedToInqui requestBody.approvalApplicationAddress = applicationAddress; requestBody.approvalApplicationPort = applicationPort; requestBody = onfAttributeFormatter.modifyJsonObjectKeysToKebabCase(requestBody); - result = await forwardRequest( + result = await IndividualServicesUtility.forwardRequest( forwardingKindNameOfTheBequeathOperation, requestBody, user, @@ -172,7 +171,8 @@ async function promptForBequeathingDataCausesNewApplicationBeingRequestedToInqui * @returns {boolean} return true if the operation is success or else return false
* steps : * 1. Get information about the application that provides approval for the registered application by using the fc-name "TypeApprovalCausesRequestForEmbedding" - * 2. Collect the application-name, release-number, remote-address, embed-yourself operation,update-client operation information to formulate the request body + * 2. Collect the application-name, release-number, tcp-client, embed-yourself,update-client, update-operation-client, dispose-remainders-of-deregistered-application, + * inform-about-preceding-release, update-client-of-subsequent-release operations, preceding-release information to formulate the request body * 3. push the collected attribute for each registered application and send it to the method automateForwardingConstructForNIteration * to automate the forwarding. */ @@ -186,9 +186,9 @@ async function promptForBequeathingDataCausesTransferOfListOfAlreadyRegisteredAp * Preparing requestBody and transfering the data one by one ************************************************************************************/ - let typeApprovalCausesRequestForEmbeddingFCName = "TypeApprovalCausesRequestForEmbedding"; - let forwardingConstructInstance = await ForwardingDomain.getForwardingConstructForTheForwardingNameAsync(typeApprovalCausesRequestForEmbeddingFCName); - let operationClientUuidList = getFcPortOutputLogicalTerminationPointList(forwardingConstructInstance); + let approvalCausesRequestForEmbeddingFCName = "ApprovingApplicationCausesPreparingTheEmbedding.RequestForEmbedding"; + let forwardingConstructInstance = await ForwardingDomain.getForwardingConstructForTheForwardingNameAsync(approvalCausesRequestForEmbeddingFCName); + let operationClientUuidList = await IndividualServicesUtility.getFcPortOutputLogicalTerminationPointList(forwardingConstructInstance); for (let i = 0; i < operationClientUuidList.length; i++) { try { @@ -199,7 +199,10 @@ async function promptForBequeathingDataCausesTransferOfListOfAlreadyRegisteredAp let embeddingOperationName; let clientUpdateOperationName; let operationClientUpdateOperation; - let tcpServerList = []; + let disposeRemaindersOperation; + let precedingReleaseOperation; + let subsequentReleaseOperation; + let tcpServer = {}; let preceedingApplicationName; let preceedingApplicationReleaseNumber; @@ -211,7 +214,7 @@ async function promptForBequeathingDataCausesTransferOfListOfAlreadyRegisteredAp * in version 3.0.0 after deciding https://github.com/openBackhaul/RegistryOffice/issues/98 ********************************************************************************************/ embeddingOperationName = await resolveOperationNameForAHttpClientFromForwardingName( - "TypeApprovalCausesRequestForEmbedding", + "ApprovingApplicationCausesPreparingTheEmbedding.RequestForEmbedding", httpClientUuid ); if (embeddingOperationName == undefined) { @@ -234,24 +237,38 @@ async function promptForBequeathingDataCausesTransferOfListOfAlreadyRegisteredAp operationClientUpdateOperation = "/v1/update-operation-client" } - /****************************************************************************************** - * formulate tcp-server-list attribute - ********************************************************************************************/ + disposeRemaindersOperation = await resolveOperationNameForAHttpClientFromForwardingName( + "DeRegistrationBroadcast", + httpClientUuid + ); + if (disposeRemaindersOperation == undefined) { + disposeRemaindersOperation = "/v1/dispose-remainders-of-deregistered-application" + } - let tcpClientUuidList = await logicalTerminationPoint.getServerLtpListAsync(httpClientUuid); - for (let i = 0; i < tcpClientUuidList.length; i++) { - let tcpClientUuid = tcpClientUuidList[i]; - let protocol = await tcpClientInterface.getRemoteProtocolAsync(tcpClientUuid); - let address = await tcpClientInterface.getRemoteAddressAsync(tcpClientUuid); - let port = await tcpClientInterface.getRemotePortAsync(tcpClientUuid); - let tcpServer = { - protocol: protocol, - address: address, - port: port - } - tcpServerList.push(tcpServer); + precedingReleaseOperation = await resolveOperationNameForAHttpClientFromForwardingName( + "ApprovingApplicationCausesPreparingTheEmbedding.RequestForOldRelease", + httpClientUuid + ); + if (precedingReleaseOperation == undefined) { + precedingReleaseOperation = "/v1/inform-about-preceding-release" + } + + subsequentReleaseOperation = await resolveOperationNameForAHttpClientFromForwardingName( + "ApprovingApplicationCausesPreparingTheEmbedding.RequestForUpdatingNewReleaseClient", + httpClientUuid + ); + if (subsequentReleaseOperation == undefined) { + subsequentReleaseOperation = "/v1/update-client-of-subsequent-release" } + /****************************************************************************************** + * formulate tcp-server attribute + ********************************************************************************************/ + let tcpClientUuid = (await logicalTerminationPoint.getServerLtpListAsync(httpClientUuid))[0]; + tcpServer.protocol = await tcpClientInterface.getRemoteProtocolAsync(tcpClientUuid); + tcpServer.address = await tcpClientInterface.getRemoteAddressAsync(tcpClientUuid); + tcpServer.port = await tcpClientInterface.getRemotePortAsync(tcpClientUuid); + /****************************************************************************************** * formulate preceeding application infomration ********************************************************************************************/ @@ -275,7 +292,10 @@ async function promptForBequeathingDataCausesTransferOfListOfAlreadyRegisteredAp requestBody.embeddingOperation = embeddingOperationName; requestBody.clientUpdateOperation = clientUpdateOperationName; requestBody.operationClientUpdateOperation = operationClientUpdateOperation; - requestBody.tcpServerList = tcpServerList; + requestBody.disposeRemaindersOperation = disposeRemaindersOperation; + requestBody.precedingReleaseOperation = precedingReleaseOperation; + requestBody.subsequentReleaseOperation = subsequentReleaseOperation; + requestBody.tcpServer = tcpServer; if (preceedingApplicationName != undefined) { requestBody.precedingApplicationName = preceedingApplicationName; } @@ -283,158 +303,7 @@ async function promptForBequeathingDataCausesTransferOfListOfAlreadyRegisteredAp requestBody.precedingReleaseNumber = preceedingApplicationReleaseNumber; } requestBody = onfAttributeFormatter.modifyJsonObjectKeysToKebabCase(requestBody); - result = await forwardRequest( - forwardingKindNameOfTheBequeathOperation, - requestBody, - user, - xCorrelator, - traceIndicator + "." + traceIndicatorIncrementer++, - customerJourney - ); - if (!result) { - throw forwardingKindNameOfTheBequeathOperation + "forwarding is not success for the input" + requestBody; - } - } catch (error) { - console.log(error); - throw "operation is not success"; - } - } - resolve(result); - } catch (error) { - reject(error); - } - }); -} - -/** - * Prepare attributes and automate PromptForBequeathingDataCausesNewApplicationBeingRequestedToDocumentSubscriptionsForDeregistrationNotifications
- * @param {String} user String User identifier from the system starting the service call - * @param {String} xCorrelator String UUID for the service execution flow that allows to correlate requests and responses - * @param {String} traceIndicator String Sequence of request numbers along the flow - * @param {String} customerJourney String Holds information supporting customer’s journey to which the execution applies - * @returns {boolean} return true if the operation is success or else return false
- * steps : - * 1. Get all applications that are subscribed for deregistration by using the fc-name "DeregistrationNotification" - * 2. Collect the subscriber-application,subscriber-release-number,subscriber-operation,subscriber-address,subscriber-address information to formulate the request body - * 3. push the collected attribute for each registered application and send it to the method automateForwardingConstructForNIteration - * to automate the forwarding. - */ -async function promptForBequeathingDataCausesNewApplicationBeingRequestedToDocumentSubscriptionsForDeregistrationNotifications(user, xCorrelator, traceIndicator, customerJourney) { - return new Promise(async function (resolve, reject) { - try { - let result = true; - let forwardingKindNameOfTheBequeathOperation = "PromptForBequeathingDataCausesNewApplicationBeingRequestedToDocumentSubscriptionsForDeregistrationNotifications"; - - /*********************************************************************************** - * Preparing requestBody and transfering the data one by one - ************************************************************************************/ - - let inquiryForApplicationTypeApprovalFCName = "DeregistrationNotification"; - let forwardingConstructInstance = await ForwardingDomain.getForwardingConstructForTheForwardingNameAsync(inquiryForApplicationTypeApprovalFCName); - let operationClientUuidList = getFcPortOutputLogicalTerminationPointList(forwardingConstructInstance); - - for (let i = 0; i < operationClientUuidList.length; i++) { - try { - let operationClientUuid = operationClientUuidList[i]; - let httpClientUuid = (await logicalTerminationPoint.getServerLtpListAsync(operationClientUuid))[0]; - let tcpClientUuid = (await logicalTerminationPoint.getServerLtpListAsync(httpClientUuid))[0]; - - let applicationName = await httpClientInterface.getApplicationNameAsync(httpClientUuid); - let releaseNumber = await httpClientInterface.getReleaseNumberAsync(httpClientUuid); - let deregistrationNotificationOperation = await operationClientInterface.getOperationNameAsync(operationClientUuid); - let applicationProtocol = await tcpClientInterface.getRemoteProtocolAsync(tcpClientUuid); - let applicationAddress = await tcpClientInterface.getRemoteAddressAsync(tcpClientUuid); - let applicationPort = await tcpClientInterface.getRemotePortAsync(tcpClientUuid); - - /*********************************************************************************** - * PromptForBequeathingDataCausesNewApplicationBeingRequestedToInquireForApplicationTypeApprovals - * /v1/inquire-application-type-approvals - ************************************************************************************/ - let requestBody = {}; - requestBody.subscriberApplication = applicationName; - requestBody.subscriberReleaseNumber = releaseNumber; - requestBody.subscriberOperation = deregistrationNotificationOperation; - requestBody.subscriberProtocol = applicationProtocol; - requestBody.subscriberAddress = applicationAddress; - requestBody.subscriberPort = applicationPort; - requestBody = onfAttributeFormatter.modifyJsonObjectKeysToKebabCase(requestBody); - result = await forwardRequest( - forwardingKindNameOfTheBequeathOperation, - requestBody, - user, - xCorrelator, - traceIndicator + "." + traceIndicatorIncrementer++, - customerJourney - ); - if (!result) { - throw forwardingKindNameOfTheBequeathOperation + "forwarding is not success for the input" + requestBody; - } - } catch (error) { - console.log(error); - throw "operation is not success"; - } - } - resolve(result); - } catch (error) { - reject(error); - } - }); -} - - -/** - * Prepare attributes and automate PromptForBequeathingDataCausesNewApplicationBeingRequestedToDocumentSubscriptionsForApprovalNotifications
- * @param {String} user String User identifier from the system starting the service call - * @param {String} xCorrelator String UUID for the service execution flow that allows to correlate requests and responses - * @param {String} traceIndicator String Sequence of request numbers along the flow - * @param {String} customerJourney String Holds information supporting customer’s journey to which the execution applies - * @returns {boolean} return true if the operation is success or else return false
- * steps : - * 1. Get all applications that are subscribed for deregistration by using the fc-name "ApprovalNotification" - * 2. Collect the subscriber-application,subscriber-release-number,subscriber-operation,subscriber-address,subscriber-address information to formulate the request body - * 3. push the collected attribute for each registered application and send it to the method automateForwardingConstructForNIteration - * to automate the forwarding. - */ -async function promptForBequeathingDataCausesNewApplicationBeingRequestedToDocumentSubscriptionsForApprovalNotifications(user, xCorrelator, traceIndicator, customerJourney) { - return new Promise(async function (resolve, reject) { - try { - let result = true; - let forwardingKindNameOfTheBequeathOperation = "PromptForBequeathingDataCausesNewApplicationBeingRequestedToDocumentSubscriptionsForApprovalNotifications"; - - /*********************************************************************************** - * Preparing requestBody and transfering the data one by one - ************************************************************************************/ - - let inquiryForApplicationTypeApprovalFCName = "ApprovalNotification"; - let forwardingConstructInstance = await ForwardingDomain.getForwardingConstructForTheForwardingNameAsync(inquiryForApplicationTypeApprovalFCName); - let operationClientUuidList = getFcPortOutputLogicalTerminationPointList(forwardingConstructInstance); - - for (let i = 0; i < operationClientUuidList.length; i++) { - try { - let operationClientUuid = operationClientUuidList[i]; - let httpClientUuid = (await logicalTerminationPoint.getServerLtpListAsync(operationClientUuid))[0]; - let tcpClientUuid = (await logicalTerminationPoint.getServerLtpListAsync(httpClientUuid))[0]; - - let applicationName = await httpClientInterface.getApplicationNameAsync(httpClientUuid); - let releaseNumber = await httpClientInterface.getReleaseNumberAsync(httpClientUuid); - let approvalNotificationOperation = await operationClientInterface.getOperationNameAsync(operationClientUuid); - let applicationProtocol = await tcpClientInterface.getRemoteProtocolAsync(tcpClientUuid); - let applicationAddress = await tcpClientInterface.getRemoteAddressAsync(tcpClientUuid); - let applicationPort = await tcpClientInterface.getRemotePortAsync(tcpClientUuid); - - /*********************************************************************************** - * PromptForBequeathingDataCausesNewApplicationBeingRequestedToInquireForApplicationTypeApprovals - * /v1/inquire-application-type-approvals - ************************************************************************************/ - let requestBody = {}; - requestBody.subscriberApplication = applicationName; - requestBody.subscriberReleaseNumber = releaseNumber; - requestBody.subscriberOperation = approvalNotificationOperation; - requestBody.subscriberProtocol = applicationProtocol; - requestBody.subscriberAddress = applicationAddress; - requestBody.subscriberPort = applicationPort; - requestBody = onfAttributeFormatter.modifyJsonObjectKeysToKebabCase(requestBody); - result = await forwardRequest( + result = await IndividualServicesUtility.forwardRequest( forwardingKindNameOfTheBequeathOperation, requestBody, user, @@ -443,9 +312,8 @@ async function promptForBequeathingDataCausesNewApplicationBeingRequestedToDocum customerJourney ); if (!result) { - throw forwardingKindNameOfTheBequeathOperation + "forwarding is not success for the input" + requestBody; + throw forwardingKindNameOfTheBequeathOperation + "forwarding is not success for the input" + JSON.stringify(requestBody); } - } catch (error) { console.log(error); throw "operation is not success"; @@ -459,31 +327,30 @@ async function promptForBequeathingDataCausesNewApplicationBeingRequestedToDocum } /** - * Prepare attributes and automate PromptForBequeathingDataCausesNewApplicationBeingRequestedToDocumentSubscriptionsForWithdrawnApprovalNotifications
+ * Prepare attributes and automate PromptForBequeathingDataCausesTransferOfListOfSubscriptionsForEmbeddingStatusChanges
* @param {String} user String User identifier from the system starting the service call * @param {String} xCorrelator String UUID for the service execution flow that allows to correlate requests and responses * @param {String} traceIndicator String Sequence of request numbers along the flow * @param {String} customerJourney String Holds information supporting customer’s journey to which the execution applies * @returns {boolean} return true if the operation is success or else return false
* steps : - * 1. Get all applications that are subscribed for WithdrawnApproval by using the fc-name "WithdrawnApprovalNotification" - * 2. Collect the subscriber-application,subscriber-release-number,subscriber-operation,subscriber-address,subscriber-address information to formulate the request body - * 3. push the collected attribute for each registered application and send it to the method automateForwardingConstructForNIteration - * to automate the forwarding. + * 1. Get information about the application that has subscribed for embedding notification fc-name "EmbeddingStatusNotification" + * 2. Collect the application-name, release-number, tcp-client and callback-operation information to formulate the request body + * 3. Post the information to the new application's service "/v1/notify-embedding-status-changes" */ -async function promptForBequeathingDataCausesNewApplicationBeingRequestedToDocumentSubscriptionsForWithdrawnApprovalNotifications(user, xCorrelator, traceIndicator, customerJourney) { +async function PromptForBequeathingDataCausesTransferOfListOfSubscriptionsForEmbeddingStatusChanges(user, xCorrelator, traceIndicator, customerJourney) { return new Promise(async function (resolve, reject) { try { let result = true; - let forwardingKindNameOfTheBequeathOperation = "PromptForBequeathingDataCausesNewApplicationBeingRequestedToDocumentSubscriptionsForWithdrawnApprovalNotifications"; + let forwardingKindNameOfTheBequeathOperation = "PromptForBequeathingDataCausesTransferOfListOfSubscriptionsForEmbeddingStatusChanges"; /*********************************************************************************** * Preparing requestBody and transfering the data one by one ************************************************************************************/ - let withdrawnApprovalNotificationFCName = "WithdrawnApprovalNotification"; - let forwardingConstructInstance = await ForwardingDomain.getForwardingConstructForTheForwardingNameAsync(withdrawnApprovalNotificationFCName); - let operationClientUuidList = getFcPortOutputLogicalTerminationPointList(forwardingConstructInstance); + let embeddingStatusNotificationFCName = "EmbeddingStatusNotification"; + let forwardingConstructInstance = await ForwardingDomain.getForwardingConstructForTheForwardingNameAsync(embeddingStatusNotificationFCName); + let operationClientUuidList = await IndividualServicesUtility.getFcPortOutputLogicalTerminationPointList(forwardingConstructInstance); for (let i = 0; i < operationClientUuidList.length; i++) { try { @@ -493,24 +360,24 @@ async function promptForBequeathingDataCausesNewApplicationBeingRequestedToDocum let applicationName = await httpClientInterface.getApplicationNameAsync(httpClientUuid); let releaseNumber = await httpClientInterface.getReleaseNumberAsync(httpClientUuid); - let withdrawnApprovalNotificationOperation = await operationClientInterface.getOperationNameAsync(operationClientUuid); - let applicationProtocol = await tcpClientInterface.getRemoteProtocolAsync(tcpClientUuid); - let applicationAddress = await tcpClientInterface.getRemoteAddressAsync(tcpClientUuid); - let applicationPort = await tcpClientInterface.getRemotePortAsync(tcpClientUuid); + let embeddingStatusNotificationOperation = await operationClientInterface.getOperationNameAsync(operationClientUuid); + let subscriberProtocol = await tcpClientInterface.getRemoteProtocolAsync(tcpClientUuid); + let subscriberAddress = await tcpClientInterface.getRemoteAddressAsync(tcpClientUuid); + let subscriberPort = await tcpClientInterface.getRemotePortAsync(tcpClientUuid); /*********************************************************************************** - * PromptForBequeathingDataCausesNewApplicationBeingRequestedToInquireForApplicationTypeApprovals - * /v1/inquire-application-type-approvals + * PromptForBequeathingDataCausesTransferOfListOfSubscriptionsForEmbeddingStatusChanges + * /v1/notify-embedding-status-changes ************************************************************************************/ let requestBody = {}; requestBody.subscriberApplication = applicationName; requestBody.subscriberReleaseNumber = releaseNumber; - requestBody.subscriberOperation = withdrawnApprovalNotificationOperation; - requestBody.subscriberProtocol = applicationProtocol; - requestBody.subscriberAddress = applicationAddress; - requestBody.subscriberPort = applicationPort; + requestBody.subscriberOperation = embeddingStatusNotificationOperation; + requestBody.subscriberProtocol = subscriberProtocol; + requestBody.subscriberAddress = subscriberAddress; + requestBody.subscriberPort = subscriberPort; requestBody = onfAttributeFormatter.modifyJsonObjectKeysToKebabCase(requestBody); - result = await forwardRequest( + result = await IndividualServicesUtility.forwardRequest( forwardingKindNameOfTheBequeathOperation, requestBody, user, @@ -557,15 +424,16 @@ async function promptForBequeathingDataCausesTARbeingRequestedToRedirectInfoAbou * Preparing requestBody ************************************************************************************/ try { - - let httpClientUuidOfNewRelease = await resolveApplicationNameAndHttpClientLtpUuidFromForwardingName("PromptForBequeathingDataCausesNewApplicationBeingRequestedToInquireForApplicationTypeApprovals"); - let newReleaseHttpClientUuid = httpClientUuidOfNewRelease.httpClientLtpUuid; + let newReleaseFcName = "PromptForBequeathingDataCausesNewApplicationBeingRequestedToInquireForApplicationTypeApprovals"; + let forwardingConstructInstance = await ForwardingDomain.getForwardingConstructForTheForwardingNameAsync(newReleaseFcName); + let operationClientUuid = (await IndividualServicesUtility.getFcPortOutputLogicalTerminationPointList(forwardingConstructInstance))[0]; + let newReleaseHttpClientUuid = (await logicalTerminationPoint.getServerLtpListAsync(operationClientUuid))[0]; let newReleaseTcpClientUuid = (await logicalTerminationPoint.getServerLtpListAsync(newReleaseHttpClientUuid))[0]; let regardUpdateApprovalOperationUuidSuffix = "-op-s-is-003"; let controlConstructUuid = await ControlConstruct.getUuidAsync(); let regardUpdateApprovalOperationUuid = controlConstructUuid + regardUpdateApprovalOperationUuidSuffix; - let applicationName = await httpServerInterface.getApplicationNameAsync(); + let applicationName = await httpClientInterface.getApplicationNameAsync(newReleaseHttpClientUuid); let releaseNumber = await httpClientInterface.getReleaseNumberAsync(newReleaseHttpClientUuid); let regardUpdateApprovalOperation = await OperationServerInterface.getOperationNameAsync(regardUpdateApprovalOperationUuid); let applicationProtocol = await tcpClientInterface.getRemoteProtocolAsync(newReleaseTcpClientUuid); @@ -584,7 +452,7 @@ async function promptForBequeathingDataCausesTARbeingRequestedToRedirectInfoAbou requestBody.subscriberAddress = applicationAddress; requestBody.subscriberPort = applicationPort; requestBody = onfAttributeFormatter.modifyJsonObjectKeysToKebabCase(requestBody); - result = await forwardRequest( + result = await IndividualServicesUtility.forwardRequest( forwardingKindNameOfTheBequeathOperation, requestBody, user, @@ -632,11 +500,12 @@ async function promptForBequeathingDataCausesRequestForBroadcastingInfoAboutServ ************************************************************************************/ try { - let httpClientUuidOfNewRelease = await resolveApplicationNameAndHttpClientLtpUuidFromForwardingName("PromptForBequeathingDataCausesNewApplicationBeingRequestedToInquireForApplicationTypeApprovals"); - let newReleaseHttpClientUuid = httpClientUuidOfNewRelease.httpClientLtpUuid; + let newReleaseFcName = "PromptForBequeathingDataCausesNewApplicationBeingRequestedToInquireForApplicationTypeApprovals"; + let forwardingConstructInstance = await ForwardingDomain.getForwardingConstructForTheForwardingNameAsync(newReleaseFcName); + let operationClientUuid = (await IndividualServicesUtility.getFcPortOutputLogicalTerminationPointList(forwardingConstructInstance))[0]; + let newReleaseHttpClientUuid = (await logicalTerminationPoint.getServerLtpListAsync(operationClientUuid))[0]; let newReleaseTcpClientUuid = (await logicalTerminationPoint.getServerLtpListAsync(newReleaseHttpClientUuid))[0]; - let currentApplicationName = await httpServerInterface.getApplicationNameAsync(); let currentReleaseNumber = await httpServerInterface.getReleaseNumberAsync(); let futureApplicationName = await httpClientInterface.getApplicationNameAsync(newReleaseHttpClientUuid); @@ -658,7 +527,7 @@ async function promptForBequeathingDataCausesRequestForBroadcastingInfoAboutServ requestBody.futureAddress = futureAddress; requestBody.futurePort = futurePort; requestBody = onfAttributeFormatter.modifyJsonObjectKeysToKebabCase(requestBody); - result = await forwardRequest( + result = await IndividualServicesUtility.forwardRequest( forwardingKindNameOfTheBequeathOperation, requestBody, user, @@ -705,8 +574,10 @@ async function promptForBequeathingDataCausesRequestForDeregisteringOfOldRelease * Preparing requestBody ************************************************************************************/ try { - let httpClientUuidOfNewRelease = await resolveApplicationNameAndHttpClientLtpUuidFromForwardingName("PromptForBequeathingDataCausesNewApplicationBeingRequestedToInquireForApplicationTypeApprovals"); - let newReleaseHttpClientUuid = httpClientUuidOfNewRelease.httpClientLtpUuid; + let newReleaseFcName = "PromptForBequeathingDataCausesNewApplicationBeingRequestedToInquireForApplicationTypeApprovals"; + let forwardingConstructInstance = await ForwardingDomain.getForwardingConstructForTheForwardingNameAsync(newReleaseFcName); + let operationClientUuid = (await IndividualServicesUtility.getFcPortOutputLogicalTerminationPointList(forwardingConstructInstance))[0]; + let newReleaseHttpClientUuid = (await logicalTerminationPoint.getServerLtpListAsync(operationClientUuid))[0]; let oldApplicationName = await httpServerInterface.getApplicationNameAsync(); let oldReleaseNumber = await httpServerInterface.getReleaseNumberAsync(); let newApplicationName = await httpClientInterface.getApplicationNameAsync(newReleaseHttpClientUuid); @@ -720,7 +591,7 @@ async function promptForBequeathingDataCausesRequestForDeregisteringOfOldRelease requestBody.applicationName = oldApplicationName; requestBody.releaseNumber = oldReleaseNumber; requestBody = onfAttributeFormatter.modifyJsonObjectKeysToKebabCase(requestBody); - result = await forwardRequest( + result = await IndividualServicesUtility.forwardRequest( forwardingKindNameOfTheBequeathOperation, requestBody, user, @@ -747,83 +618,7 @@ async function promptForBequeathingDataCausesRequestForDeregisteringOfOldRelease /**************************************************************************************** * Functions utilized by individual services ****************************************************************************************/ -function getFcPortOutputLogicalTerminationPointList(forwardingConstructInstance) { - let fcPortOutputLogicalTerminationPointList = []; - let fcPortList = forwardingConstructInstance[ - onfAttributes.FORWARDING_CONSTRUCT.FC_PORT]; - for (let i = 0; i < fcPortList.length; i++) { - let fcPort = fcPortList[i]; - let fcPortPortDirection = fcPort[onfAttributes.FC_PORT.PORT_DIRECTION]; - if (fcPortPortDirection == FcPort.portDirectionEnum.OUTPUT) { - let fclogicalTerminationPoint = fcPort[onfAttributes.FC_PORT.LOGICAL_TERMINATION_POINT]; - fcPortOutputLogicalTerminationPointList.push(fclogicalTerminationPoint); - } - } - return fcPortOutputLogicalTerminationPointList; - -} - -/** - * @description This function automates the forwarding construct by calling the appropriate call back operations based on the fcPort input and output directions. - * @param {String} operationServerUuid operation server uuid of the request url - * @param {list} attributeList list of attributes required during forwarding construct automation(to send in the request body) - * @param {String} user user who initiates this request - * @param {string} originator originator of the request - * @param {string} xCorrelator flow id of this request - * @param {string} traceIndicator trace indicator of the request - * @param {string} customerJourney customer journey of the request - **/ -function forwardRequest(forwardingKindName, attributeList, user, xCorrelator, traceIndicator, customerJourney) { - return new Promise(async function (resolve, reject) { - try { - let forwardingConstructInstance = await ForwardingDomain.getForwardingConstructForTheForwardingNameAsync(forwardingKindName); - let operationClientUuid = (getFcPortOutputLogicalTerminationPointList(forwardingConstructInstance))[0]; - let result = await eventDispatcher.dispatchEvent( - operationClientUuid, - attributeList, - user, - xCorrelator, - traceIndicator, - customerJourney - ); - resolve(result); - } catch (error) { - reject(error); - } - }); -} -async function resolveApplicationNameAndHttpClientLtpUuidFromForwardingName(forwardingName) { - const forwardingConstruct = await ForwardingDomain.getForwardingConstructForTheForwardingNameAsync(forwardingName); - if (forwardingConstruct === undefined) { - return null; - } - - let fcPortOutputDirectionLogicalTerminationPointList = []; - const fcPortList = forwardingConstruct[onfAttributes.FORWARDING_CONSTRUCT.FC_PORT]; - for (const fcPort of fcPortList) { - const portDirection = fcPort[onfAttributes.FC_PORT.PORT_DIRECTION]; - if (FcPort.portDirectionEnum.OUTPUT === portDirection) { - fcPortOutputDirectionLogicalTerminationPointList.push(fcPort[onfAttributes.FC_PORT.LOGICAL_TERMINATION_POINT]); - } - } - - if (fcPortOutputDirectionLogicalTerminationPointList.length !== 1) { - return null; - } - - const opLtpUuid = fcPortOutputDirectionLogicalTerminationPointList[0]; - const httpLtpUuidList = await logicalTerminationPoint.getServerLtpListAsync(opLtpUuid); - const httpClientLtpUuid = httpLtpUuidList[0]; - const applicationName = await httpClientInterface.getApplicationNameAsync(httpClientLtpUuid); - return applicationName === undefined ? { - applicationName: null, - httpClientLtpUuid - } : { - applicationName, - httpClientLtpUuid - }; -} async function resolveOperationNameForAHttpClientFromForwardingName(forwardingName, httpClientUuid) { @@ -851,4 +646,4 @@ async function resolveOperationNameForAHttpClientFromForwardingName(forwardingNa } } return operationName; -} +} \ No newline at end of file From d55e7699f62fd8ab2245050366646c9d7a917449 Mon Sep 17 00:00:00 2001 From: Prathiba Jeevan <62344562+PrathibaJee@users.noreply.github.com> Date: Wed, 24 Jul 2024 15:40:39 +0200 Subject: [PATCH 04/12] To update docker file to node version 18 (#598) Fixes #597 --- server/database/config.json | 18 +++++++++--------- server/dockerfile | 4 ++-- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/server/database/config.json b/server/database/config.json index aa0ff56..426f94b 100644 --- a/server/database/config.json +++ b/server/database/config.json @@ -1288,7 +1288,7 @@ "http-server-interface-1-0:http-server-interface-pac": { "http-server-interface-capability": { "application-name": "RegistryOffice", - "release-number": "2.1.0", + "release-number": "2.1.1", "application-purpose": "All applications being part of the MW SDN must register here.", "data-update-period": "http-server-interface-1-0:DATA_UPDATE_PERIOD_TYPE_REAL_TIME", "owner-name": "Thorsten Heinze", @@ -1503,7 +1503,7 @@ "http-client-interface-1-0:http-client-interface-pac": { "http-client-interface-configuration": { "application-name": "NewRelease", - "release-number": "2.1.0" + "release-number": "2.1.1" } } } @@ -1799,7 +1799,7 @@ "http-client-interface-1-0:http-client-interface-pac": { "http-client-interface-configuration": { "application-name": "RegistryOffice", - "release-number": "2.0.1" + "release-number": "2.1.1" } } } @@ -2095,7 +2095,7 @@ "http-client-interface-1-0:http-client-interface-pac": { "http-client-interface-configuration": { "application-name": "TypeApprovalRegister", - "release-number": "2.0.1" + "release-number": "2.1.1" } } } @@ -2367,7 +2367,7 @@ "http-client-interface-1-0:http-client-interface-pac": { "http-client-interface-configuration": { "application-name": "ExecutionAndTraceLog", - "release-number": "2.0.1" + "release-number": "2.1.1" } } } @@ -2638,7 +2638,7 @@ "http-client-interface-1-0:http-client-interface-pac": { "http-client-interface-configuration": { "application-name": "OamLog", - "release-number": "2.0.1" + "release-number": "2.1.1" } } } @@ -2909,7 +2909,7 @@ "http-client-interface-1-0:http-client-interface-pac": { "http-client-interface-configuration": { "application-name": "AdministratorAdministration", - "release-number": "2.0.1" + "release-number": "2.1.1" } } } @@ -3330,7 +3330,7 @@ "http-client-interface-1-0:http-client-interface-pac": { "http-client-interface-configuration": { "application-name": "ApplicationLayerTopology", - "release-number": "2.0.1" + "release-number": "2.1.1" } } } @@ -3576,7 +3576,7 @@ "http-client-interface-1-0:http-client-interface-pac": { "http-client-interface-configuration": { "application-name": "OperationKeyManagement", - "release-number": "2.0.1" + "release-number": "2.1.1" } } } diff --git a/server/dockerfile b/server/dockerfile index 6f38488..781e391 100644 --- a/server/dockerfile +++ b/server/dockerfile @@ -1,4 +1,4 @@ -FROM node:14 +FROM node:18 # Create app directory WORKDIR /home/openbackhaul/registryOffice @@ -13,7 +13,7 @@ RUN npm ci --only=production # Bundle app source COPY . . -EXPOSE 3000 +EXPOSE 3024 #Command to start the application CMD [ "node", "index.js" ] From 0603705b4128ff0f143f9a6483a7bdc89618676d Mon Sep 17 00:00:00 2001 From: IswaryaaS Date: Mon, 29 Jul 2024 13:05:36 +0530 Subject: [PATCH 05/12] To correct the trace-indicator for the forwardings of /v1/regard-updated-approval-status Fixes #584 --- server/controllers/IndividualServices.js | 2 +- server/database/config.json | 2 +- server/service/IndividualServicesService.js | 4 ++-- .../RegardUpdatedApprovalProcess.js | 24 ++++++++++++------- 4 files changed, 19 insertions(+), 13 deletions(-) diff --git a/server/controllers/IndividualServices.js b/server/controllers/IndividualServices.js index 2fc8040..58fd1d9 100644 --- a/server/controllers/IndividualServices.js +++ b/server/controllers/IndividualServices.js @@ -11,7 +11,7 @@ module.exports.bequeathYourDataAndDie = async function bequeathYourDataAndDie(re let startTime = process.hrtime(); let responseCode = responseCodeEnum.code.NO_CONTENT; let responseBodyToDocument; - await IndividualServices.bequeathYourDataAndDie(body, user, originator, xCorrelator, traceIndicator, customerJourney, req.url) + await IndividualServices.bequeathYourDataAndDie(body, user, xCorrelator, traceIndicator, customerJourney, req.url) .then(async function (responseBody) { responseBodyToDocument = responseBody; let responseHeader = await restResponseHeader.createResponseHeader(xCorrelator, startTime, req.url); diff --git a/server/database/config.json b/server/database/config.json index 426f94b..be4ed35 100644 --- a/server/database/config.json +++ b/server/database/config.json @@ -2908,7 +2908,7 @@ "layer-protocol-name": "http-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_HTTP_LAYER", "http-client-interface-1-0:http-client-interface-pac": { "http-client-interface-configuration": { - "application-name": "AdministratorAdministration", + "application-name": "AccessAdministration", "release-number": "2.1.1" } } diff --git a/server/service/IndividualServicesService.js b/server/service/IndividualServicesService.js index 3a2cc26..737a941 100644 --- a/server/service/IndividualServicesService.js +++ b/server/service/IndividualServicesService.js @@ -42,7 +42,7 @@ const lock = new AsyncLock(); * customerJourney String Holds information supporting customer’s journey to which the execution applies * no response value expected for this operation **/ -exports.bequeathYourDataAndDie = async function (body, user, originator, xCorrelator, traceIndicator, customerJourney, operationServerName) { +exports.bequeathYourDataAndDie = async function (body, user, xCorrelator, traceIndicator, customerJourney, operationServerName) { try { /**************************************************************************************** @@ -110,7 +110,7 @@ exports.bequeathYourDataAndDie = async function (body, user, originator, xCorrel customerJourney ); } - softwareUpgrade.upgradeSoftwareVersion(user, xCorrelator, traceIndicator, customerJourney, forwardingAutomationInputList.length) + softwareUpgrade.upgradeSoftwareVersion(user, xCorrelator, traceIndicator, customerJourney, (forwardingAutomationInputList.length + 1)) .catch(err => console.log(`upgradeSoftwareVersion failed with error: ${err}`)); } } catch (error) { diff --git a/server/service/individualServices/RegardUpdatedApprovalProcess.js b/server/service/individualServices/RegardUpdatedApprovalProcess.js index 0afa10c..70656f7 100644 --- a/server/service/individualServices/RegardUpdatedApprovalProcess.js +++ b/server/service/individualServices/RegardUpdatedApprovalProcess.js @@ -426,15 +426,21 @@ async function ApprovalNotification(applicationName, releaseNumber, requestHeade requestBody = onfAttributeFormatter.modifyJsonObjectKeysToKebabCase(requestBody); let forwardingAutomation = new forwardingConstructAutomationInput(forwardingName, requestBody); forwardingConstructAutomationList.push(forwardingAutomation); - ForwardingAutomationService.automateForwardingConstructAsync( - operationServerName, - forwardingConstructAutomationList, - requestHeaders.user, - requestHeaders.xCorrelator, - requestHeaders.traceIndicator + "." + requestHeaders.traceIndicatorIncrementer++, - requestHeaders.customerJourney - ); - console.log(`${forwardingName} has been triggered`) + let forwardingConstruct = await ForwardingDomain.getForwardingConstructForTheForwardingNameAsync( + forwardingName); + let fcUuid = forwardingConstruct["uuid"]; + let outputFcPortList = await ForwardingConstruct.getOutputFcPortsAsync(fcUuid); + if(outputFcPortList.length !=0 ) { + ForwardingAutomationService.automateForwardingConstructAsync( + operationServerName, + forwardingConstructAutomationList, + requestHeaders.user, + requestHeaders.xCorrelator, + requestHeaders.traceIndicator + "." + requestHeaders.traceIndicatorIncrementer++, + requestHeaders.customerJourney + ); + console.log(`${forwardingName} has been triggered`) + } } catch (error) { console.log(error); } From 90108dc7c2b156f06aa3c9a5924c91528671321d Mon Sep 17 00:00:00 2001 From: openBackhaul Date: Wed, 14 Aug 2024 11:53:33 +0200 Subject: [PATCH 06/12] Update file-path attribute to file-name (fixes #564) --- spec/RegistryOffice+config.json | 4 +--- spec/RegistryOffice+profileInstances.yaml | 4 +--- spec/RegistryOffice+profiles.yaml | 4 +--- 3 files changed, 3 insertions(+), 9 deletions(-) diff --git a/spec/RegistryOffice+config.json b/spec/RegistryOffice+config.json index 2cf900a..3614c9e 100644 --- a/spec/RegistryOffice+config.json +++ b/spec/RegistryOffice+config.json @@ -380,9 +380,7 @@ "file-description": "Application name, release number and registration time stamp" }, "file-profile-configuration": { - "file-path": "../application-data/application-data.json", - "user-name": "RegistryOffice", - "password": "Operations to add password", + "file-name": "application-data.json", "operation": "file-profile-1-0:OPERATION_TYPE_READ_WRITE" } } diff --git a/spec/RegistryOffice+profileInstances.yaml b/spec/RegistryOffice+profileInstances.yaml index 2692a83..c5bf0e5 100644 --- a/spec/RegistryOffice+profileInstances.yaml +++ b/spec/RegistryOffice+profileInstances.yaml @@ -194,9 +194,7 @@ profile-instances: file-identifier: 'LOADfile' file-description: 'Application name, release number, registration time stamp, preceding-application-name and preceding-release-number' configuration: - file-path: '../application-data/application-data.json' - user-name: 'RegistryOffice' - password: 'Operations to add password' + file-name: 'application-data.json' operation: 'write' diff --git a/spec/RegistryOffice+profiles.yaml b/spec/RegistryOffice+profiles.yaml index e43dd36..7e4b4d1 100644 --- a/spec/RegistryOffice+profiles.yaml +++ b/spec/RegistryOffice+profiles.yaml @@ -30,9 +30,7 @@ profiles: file-identifier: string file-description: string configuration: - file-path: string - user-name: string - password: string + file-name: string operation: string - profile-name: 'IntegerProfile' From f910b14b2a433fe7424b2d142203e7ac2bea47fe Mon Sep 17 00:00:00 2001 From: openBackhaul Date: Wed, 14 Aug 2024 12:20:42 +0200 Subject: [PATCH 07/12] Include ResponseProfiles for new releases (fixes #582) --- spec/RegistryOffice+config.json | 46 ++++++++++++++++++++++- spec/RegistryOffice+profileInstances.yaml | 30 +++++++++++++++ 2 files changed, 75 insertions(+), 1 deletion(-) diff --git a/spec/RegistryOffice+config.json b/spec/RegistryOffice+config.json index 3614c9e..e2ab0cf 100644 --- a/spec/RegistryOffice+config.json +++ b/spec/RegistryOffice+config.json @@ -361,7 +361,7 @@ "field-name": { "field-name-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=1/release-number" }, - "description": "Represents the first entry in the list of releases", + "description": "Represents v2.0.1", "datatype": "string" }, "response-profile-configuration": { @@ -371,6 +371,44 @@ } } }, + { + "uuid": "ro-2-1-0-response-p-017", + "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", + "response-profile-1-0:response-profile-pac": { + "response-profile-capability": { + "operation-name": "/v1/inform-about-release-history-in-generic-representation", + "field-name": { + "field-name-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=2/release-number" + }, + "description": "Represents v2.1.1", + "datatype": "string" + }, + "response-profile-configuration": { + "value": { + "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=2/changes" + } + } + } + }, + { + "uuid": "ro-2-1-0-response-p-018", + "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", + "response-profile-1-0:response-profile-pac": { + "response-profile-capability": { + "operation-name": "/v1/inform-about-release-history-in-generic-representation", + "field-name": { + "field-name-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=3/release-number" + }, + "description": "Represents v2.1.2", + "datatype": "string" + }, + "response-profile-configuration": { + "value": { + "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=3/changes" + } + } + } + }, { "uuid": "ro-2-1-0-file-p-000", "profile-name": "file-profile-1-0:PROFILE_NAME_TYPE_FILE_PROFILE", @@ -1348,6 +1386,12 @@ "release-number": "2.1.1", "release-date": "12.02.2024", "changes": "Update on ApplicationPattern 2.1.1 and fixing several findings." + }, + { + "local-id": "3", + "release-number": "2.1.2", + "release-date": "14.08.2024", + "changes": "Fixing several findings from 2.1.1." } ] } diff --git a/spec/RegistryOffice+profileInstances.yaml b/spec/RegistryOffice+profileInstances.yaml index c5bf0e5..7fbbce8 100644 --- a/spec/RegistryOffice+profileInstances.yaml +++ b/spec/RegistryOffice+profileInstances.yaml @@ -187,6 +187,36 @@ profile-instances: configuration: value-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-okm-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number' + - profile-name: 'GenericResponseProfile' + uuid: 'ro-2-1-0-response-p-016' + capability: + operation-name: '/v1/inform-about-release-history-in-generic-representation' + field-name-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=1/release-number' + description: 'Represents v2.0.1' + datatype: string + configuration: + value-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=1/changes' + + - profile-name: 'GenericResponseProfile' + uuid: 'ro-2-1-0-response-p-017' + capability: + operation-name: '/v1/inform-about-release-history-in-generic-representation' + field-name-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=2/release-number' + description: 'Represents v2.1.1' + datatype: string + configuration: + value-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=2/changes' + + - profile-name: 'GenericResponseProfile' + uuid: 'ro-2-1-0-response-p-018' + capability: + operation-name: '/v1/inform-about-release-history-in-generic-representation' + field-name-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=3/release-number' + description: 'Represents v2.1.2' + datatype: string + configuration: + value-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=3/changes' + - profile-name: 'FileProfile' uuid: 'ro-2-1-0-file-p-000' From 7cad00d8176682f6ba4af3ab8a5a4fabff84a54f Mon Sep 17 00:00:00 2001 From: openBackhaul Date: Mon, 19 Aug 2024 09:24:18 +0200 Subject: [PATCH 08/12] Correct input to LtpUpdate, forwarding kind name and http client uuid (fixes #567, #568, #569) --- spec/RegistryOffice+config.json | 29 ++++++++++++++++------------ spec/RegistryOffice+forwardings.yaml | 2 ++ 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/spec/RegistryOffice+config.json b/spec/RegistryOffice+config.json index e2ab0cf..ac0eadc 100644 --- a/spec/RegistryOffice+config.json +++ b/spec/RegistryOffice+config.json @@ -1828,7 +1828,7 @@ "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-okm-2-0-1-000" + "ro-2-1-0-http-c-ro-2-0-1-000" ], "layer-protocol": [ { @@ -1853,7 +1853,7 @@ "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-okm-2-0-1-000" + "ro-2-1-0-http-c-ro-2-0-1-000" ], "layer-protocol": [ { @@ -2135,7 +2135,7 @@ "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-okm-2-0-1-000" + "ro-2-1-0-http-c-tar-2-0-1-000" ], "layer-protocol": [ { @@ -2160,7 +2160,7 @@ "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-okm-2-0-1-000" + "ro-2-1-0-http-c-tar-2-0-1-000" ], "layer-protocol": [ { @@ -2418,7 +2418,7 @@ "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-okm-2-0-1-000" + "ro-2-1-0-http-c-eatl-2-0-1-000" ], "layer-protocol": [ { @@ -2443,7 +2443,7 @@ "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-okm-2-0-1-000" + "ro-2-1-0-http-c-eatl-2-0-1-000" ], "layer-protocol": [ { @@ -2699,7 +2699,7 @@ "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-okm-2-0-1-000" + "ro-2-1-0-http-c-ol-2-0-1-000" ], "layer-protocol": [ { @@ -2724,7 +2724,7 @@ "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-okm-2-0-1-000" + "ro-2-1-0-http-c-ol-2-0-1-000" ], "layer-protocol": [ { @@ -2980,7 +2980,7 @@ "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-okm-2-0-1-000" + "ro-2-1-0-http-c-aa-2-0-1-000" ], "layer-protocol": [ { @@ -3005,7 +3005,7 @@ "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-okm-2-0-1-000" + "ro-2-1-0-http-c-aa-2-0-1-000" ], "layer-protocol": [ { @@ -4380,6 +4380,11 @@ "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", "logical-termination-point": "ro-2-1-0-op-s-is-001" }, + { + "local-id": "143", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-1-0-op-s-is-003" + }, { "local-id": "146", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", @@ -5302,7 +5307,7 @@ "name": [ { "value-name": "ForwardingKind", - "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" + "value": "core-model-1-4:FORWARDING_KIND_TYPE_PROCESS_SNIPPET" }, { "value-name": "ForwardingName", @@ -5397,7 +5402,7 @@ "name": [ { "value-name": "ForwardingKind", - "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" + "value": "core-model-1-4:FORWARDING_KIND_TYPE_PROCESS_SNIPPET" }, { "value-name": "ForwardingName", diff --git a/spec/RegistryOffice+forwardings.yaml b/spec/RegistryOffice+forwardings.yaml index 47fb768..3614ef2 100644 --- a/spec/RegistryOffice+forwardings.yaml +++ b/spec/RegistryOffice+forwardings.yaml @@ -332,6 +332,8 @@ forwardings: uuid: ro-2-1-0-op-s-im-000 - server-name: /v1/register-application uuid: ro-2-1-0-op-s-is-001 + - server-name: /v1/regard-updated-approval-status + uuid: ro-2-1-0-op-s-is-003 - server-name: /v1/inquire-application-type-approvals uuid: ro-2-1-0-op-s-is-006 - server-name: /v1/notify-deregistrations From e0f20c5b27d96a71ec7bd69352706b04bc030372 Mon Sep 17 00:00:00 2001 From: openBackhaul Date: Mon, 26 Aug 2024 10:51:26 +0200 Subject: [PATCH 09/12] Update to AP2.1.2 --- spec/RegistryOffice+config.json | 1500 ++++++++++----------- spec/RegistryOffice+forwardings.yaml | 668 ++++----- spec/RegistryOffice+profileInstances.yaml | 120 +- spec/RegistryOffice+services.yaml | 286 ++-- spec/RegistryOffice.yaml | 992 +++++++------- 5 files changed, 1783 insertions(+), 1783 deletions(-) diff --git a/spec/RegistryOffice+config.json b/spec/RegistryOffice+config.json index ac0eadc..9914724 100644 --- a/spec/RegistryOffice+config.json +++ b/spec/RegistryOffice+config.json @@ -1,10 +1,10 @@ { "core-model-1-4:control-construct": { - "uuid": "ro-2-1-0", + "uuid": "ro-2-1-2", "profile-collection": { "profile": [ { - "uuid": "ro-2-1-0-action-p-000", + "uuid": "ro-2-1-2-action-p-000", "profile-name": "action-profile-1-0:PROFILE_NAME_TYPE_ACTION_PROFILE", "action-profile-1-0:action-profile-pac": { "action-profile-capability": { @@ -15,12 +15,12 @@ "display-in-new-browser-window": false }, "action-profile-configuration": { - "consequent-operation-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bs-002/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name" + "consequent-operation-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-bs-002/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name" } } }, { - "uuid": "ro-2-1-0-action-p-001", + "uuid": "ro-2-1-2-action-p-001", "profile-name": "action-profile-1-0:PROFILE_NAME_TYPE_ACTION_PROFILE", "action-profile-1-0:action-profile-pac": { "action-profile-capability": { @@ -31,12 +31,12 @@ "display-in-new-browser-window": false }, "action-profile-configuration": { - "consequent-operation-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bs-004/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name" + "consequent-operation-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-bs-004/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name" } } }, { - "uuid": "ro-2-1-0-action-p-002", + "uuid": "ro-2-1-2-action-p-002", "profile-name": "action-profile-1-0:PROFILE_NAME_TYPE_ACTION_PROFILE", "action-profile-1-0:action-profile-pac": { "action-profile-capability": { @@ -47,12 +47,12 @@ "display-in-new-browser-window": true }, "action-profile-configuration": { - "consequent-operation-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bs-005/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name" + "consequent-operation-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-bs-005/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name" } } }, { - "uuid": "ro-2-1-0-action-p-003", + "uuid": "ro-2-1-2-action-p-003", "profile-name": "action-profile-1-0:PROFILE_NAME_TYPE_ACTION_PROFILE", "action-profile-1-0:action-profile-pac": { "action-profile-capability": { @@ -63,12 +63,12 @@ "display-in-new-browser-window": false }, "action-profile-configuration": { - "consequent-operation-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-is-005/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name" + "consequent-operation-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-is-005/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name" } } }, { - "uuid": "ro-2-1-0-response-p-000", + "uuid": "ro-2-1-2-response-p-000", "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", "response-profile-1-0:response-profile-pac": { "response-profile-capability": { @@ -81,13 +81,13 @@ }, "response-profile-configuration": { "value": { - "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name" + "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name" } } } }, { - "uuid": "ro-2-1-0-response-p-001", + "uuid": "ro-2-1-2-response-p-001", "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", "response-profile-1-0:response-profile-pac": { "response-profile-capability": { @@ -100,13 +100,13 @@ }, "response-profile-configuration": { "value": { - "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name" + "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name" } } } }, { - "uuid": "ro-2-1-0-response-p-002", + "uuid": "ro-2-1-2-response-p-002", "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", "response-profile-1-0:response-profile-pac": { "response-profile-capability": { @@ -119,13 +119,13 @@ }, "response-profile-configuration": { "value": { - "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number" + "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number" } } } }, { - "uuid": "ro-2-1-0-response-p-003", + "uuid": "ro-2-1-2-response-p-003", "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", "response-profile-1-0:response-profile-pac": { "response-profile-capability": { @@ -138,13 +138,13 @@ }, "response-profile-configuration": { "value": { - "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-purpose" + "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-purpose" } } } }, { - "uuid": "ro-2-1-0-response-p-004", + "uuid": "ro-2-1-2-response-p-004", "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", "response-profile-1-0:response-profile-pac": { "response-profile-capability": { @@ -157,13 +157,13 @@ }, "response-profile-configuration": { "value": { - "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/data-update-period" + "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/data-update-period" } } } }, { - "uuid": "ro-2-1-0-response-p-005", + "uuid": "ro-2-1-2-response-p-005", "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", "response-profile-1-0:response-profile-pac": { "response-profile-capability": { @@ -176,13 +176,13 @@ }, "response-profile-configuration": { "value": { - "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/owner-name" + "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/owner-name" } } } }, { - "uuid": "ro-2-1-0-response-p-006", + "uuid": "ro-2-1-2-response-p-006", "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", "response-profile-1-0:response-profile-pac": { "response-profile-capability": { @@ -195,222 +195,222 @@ }, "response-profile-configuration": { "value": { - "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/owner-email-address" + "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/owner-email-address" } } } }, { - "uuid": "ro-2-1-0-response-p-007", + "uuid": "ro-2-1-2-response-p-007", "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", "response-profile-1-0:response-profile-pac": { "response-profile-capability": { "operation-name": "/v1/inform-about-release-history-in-generic-representation", "field-name": { - "field-name-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=0/release-number" + "field-name-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=0/release-number" }, "description": "Represents the first entry in the list of releases", "datatype": "string" }, "response-profile-configuration": { "value": { - "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=0/changes" + "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=0/changes" } } } }, { - "uuid": "ro-2-1-0-response-p-008", + "uuid": "ro-2-1-2-response-p-008", "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", "response-profile-1-0:response-profile-pac": { "response-profile-capability": { "operation-name": "/v1/list-applications-in-generic-representation", "field-name": { - "field-name-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-ro-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name" + "field-name-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-ro-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name" }, "description": "List of release numbers and changes", "datatype": "string" }, "response-profile-configuration": { "value": { - "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-ro-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number" + "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-ro-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number" } } } }, { - "uuid": "ro-2-1-0-response-p-009", + "uuid": "ro-2-1-2-response-p-009", "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", "response-profile-1-0:response-profile-pac": { "response-profile-capability": { "operation-name": "/v1/list-applications-in-generic-representation", "field-name": { - "field-name-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-tar-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name" + "field-name-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-tar-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name" }, "description": "List of registered application names and release numbers", "datatype": "string" }, "response-profile-configuration": { "value": { - "value-reference": "core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-tar-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number" + "value-reference": "core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-tar-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number" } } } }, { - "uuid": "ro-2-1-0-response-p-010", + "uuid": "ro-2-1-2-response-p-010", "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", "response-profile-1-0:response-profile-pac": { "response-profile-capability": { "operation-name": "/v1/list-applications-in-generic-representation", "field-name": { - "field-name-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-eatl-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name" + "field-name-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-eatl-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name" }, "description": "List of registered application names and release numbers", "datatype": "string" }, "response-profile-configuration": { "value": { - "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-eatl-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number" + "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-eatl-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number" } } } }, { - "uuid": "ro-2-1-0-response-p-011", + "uuid": "ro-2-1-2-response-p-011", "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", "response-profile-1-0:response-profile-pac": { "response-profile-capability": { "operation-name": "/v1/list-applications-in-generic-representation", "field-name": { - "field-name-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-ol-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name" + "field-name-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-ol-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name" }, "description": "List of registered application names and release numbers", "datatype": "string" }, "response-profile-configuration": { "value": { - "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-ol-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number" + "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-ol-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number" } } } }, { - "uuid": "ro-2-1-0-response-p-012", + "uuid": "ro-2-1-2-response-p-012", "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", "response-profile-1-0:response-profile-pac": { "response-profile-capability": { "operation-name": "/v1/list-applications-in-generic-representation", "field-name": { - "field-name-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-aa-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name" + "field-name-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-aa-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name" }, "description": "List of registered application names and release numbers", "datatype": "string" }, "response-profile-configuration": { "value": { - "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-aa-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number" + "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-aa-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number" } } } }, { - "uuid": "ro-2-1-0-response-p-013", + "uuid": "ro-2-1-2-response-p-013", "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", "response-profile-1-0:response-profile-pac": { "response-profile-capability": { "operation-name": "/v1/list-applications-in-generic-representation", "field-name": { - "field-name-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-alt-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name" + "field-name-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-alt-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name" }, "description": "List of registered application names and release numbers", "datatype": "string" }, "response-profile-configuration": { "value": { - "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-alt-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number" + "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-alt-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number" } } } }, { - "uuid": "ro-2-1-0-response-p-014", + "uuid": "ro-2-1-2-response-p-014", "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", "response-profile-1-0:response-profile-pac": { "response-profile-capability": { "operation-name": "/v1/list-applications-in-generic-representation", "field-name": { - "field-name-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-okm-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name" + "field-name-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-okm-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name" }, "description": "List of registered application names and release numbers", "datatype": "string" }, "response-profile-configuration": { "value": { - "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-okm-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number" + "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-okm-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number" } } } }, { - "uuid": "ro-2-1-0-response-p-016", + "uuid": "ro-2-1-2-response-p-016", "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", "response-profile-1-0:response-profile-pac": { "response-profile-capability": { "operation-name": "/v1/inform-about-release-history-in-generic-representation", "field-name": { - "field-name-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=1/release-number" + "field-name-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=1/release-number" }, "description": "Represents v2.0.1", "datatype": "string" }, "response-profile-configuration": { "value": { - "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=1/changes" + "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=1/changes" } } } }, { - "uuid": "ro-2-1-0-response-p-017", + "uuid": "ro-2-1-2-response-p-017", "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", "response-profile-1-0:response-profile-pac": { "response-profile-capability": { "operation-name": "/v1/inform-about-release-history-in-generic-representation", "field-name": { - "field-name-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=2/release-number" + "field-name-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=2/release-number" }, - "description": "Represents v2.1.1", + "description": "Represents v2.1.2", "datatype": "string" }, "response-profile-configuration": { "value": { - "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=2/changes" + "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=2/changes" } } } }, { - "uuid": "ro-2-1-0-response-p-018", + "uuid": "ro-2-1-2-response-p-018", "profile-name": "response-profile-1-0:PROFILE_NAME_TYPE_GENERIC_RESPONSE_PROFILE", "response-profile-1-0:response-profile-pac": { "response-profile-capability": { "operation-name": "/v1/inform-about-release-history-in-generic-representation", "field-name": { - "field-name-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=3/release-number" + "field-name-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=3/release-number" }, "description": "Represents v2.1.2", "datatype": "string" }, "response-profile-configuration": { "value": { - "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=3/changes" + "value-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=3/changes" } } } }, { - "uuid": "ro-2-1-0-file-p-000", + "uuid": "ro-2-1-2-file-p-000", "profile-name": "file-profile-1-0:PROFILE_NAME_TYPE_FILE_PROFILE", "file-profile-1-0:file-profile-pac": { "file-profile-capability": { @@ -424,7 +424,7 @@ } }, { - "uuid": "ro-2-1-0-integer-p-000", + "uuid": "ro-2-1-2-integer-p-000", "profile-name": "integer-profile-1-0:PROFILE_NAME_TYPE_INTEGER_PROFILE", "integer-profile-1-0:integer-profile-pac": { "integer-profile-capability": { @@ -440,7 +440,7 @@ } }, { - "uuid": "ro-2-1-0-integer-p-001", + "uuid": "ro-2-1-2-integer-p-001", "profile-name": "integer-profile-1-0:PROFILE_NAME_TYPE_INTEGER_PROFILE", "integer-profile-1-0:integer-profile-pac": { "integer-profile-capability": { @@ -456,7 +456,7 @@ } }, { - "uuid": "ro-2-1-0-integer-p-010", + "uuid": "ro-2-1-2-integer-p-010", "profile-name": "integer-profile-1-0:PROFILE_NAME_TYPE_INTEGER_PROFILE", "integer-profile-1-0:integer-profile-pac": { "integer-profile-capability": { @@ -474,12 +474,12 @@ }, "logical-termination-point": [ { - "uuid": "ro-2-1-0-op-s-bm-000", + "uuid": "ro-2-1-2-op-s-bm-000", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-s-000" + "ro-2-1-2-http-s-000" ], "layer-protocol": [ { @@ -498,12 +498,12 @@ ] }, { - "uuid": "ro-2-1-0-op-s-bm-001", + "uuid": "ro-2-1-2-op-s-bm-001", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-s-000" + "ro-2-1-2-http-s-000" ], "layer-protocol": [ { @@ -522,12 +522,12 @@ ] }, { - "uuid": "ro-2-1-0-op-s-bm-002", + "uuid": "ro-2-1-2-op-s-bm-002", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-s-000" + "ro-2-1-2-http-s-000" ], "layer-protocol": [ { @@ -546,12 +546,12 @@ ] }, { - "uuid": "ro-2-1-0-op-s-bm-003", + "uuid": "ro-2-1-2-op-s-bm-003", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-s-000" + "ro-2-1-2-http-s-000" ], "layer-protocol": [ { @@ -570,12 +570,12 @@ ] }, { - "uuid": "ro-2-1-0-op-s-bm-004", + "uuid": "ro-2-1-2-op-s-bm-004", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-s-000" + "ro-2-1-2-http-s-000" ], "layer-protocol": [ { @@ -594,12 +594,12 @@ ] }, { - "uuid": "ro-2-1-0-op-s-bm-005", + "uuid": "ro-2-1-2-op-s-bm-005", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-s-000" + "ro-2-1-2-http-s-000" ], "layer-protocol": [ { @@ -618,12 +618,12 @@ ] }, { - "uuid": "ro-2-1-0-op-s-bm-007", + "uuid": "ro-2-1-2-op-s-bm-007", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-s-000" + "ro-2-1-2-http-s-000" ], "layer-protocol": [ { @@ -642,12 +642,12 @@ ] }, { - "uuid": "ro-2-1-0-op-s-bm-008", + "uuid": "ro-2-1-2-op-s-bm-008", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-s-000" + "ro-2-1-2-http-s-000" ], "layer-protocol": [ { @@ -666,12 +666,12 @@ ] }, { - "uuid": "ro-2-1-0-op-s-bm-009", + "uuid": "ro-2-1-2-op-s-bm-009", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-s-000" + "ro-2-1-2-http-s-000" ], "layer-protocol": [ { @@ -690,12 +690,12 @@ ] }, { - "uuid": "ro-2-1-0-op-s-bm-010", + "uuid": "ro-2-1-2-op-s-bm-010", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-s-000" + "ro-2-1-2-http-s-000" ], "layer-protocol": [ { @@ -714,12 +714,12 @@ ] }, { - "uuid": "ro-2-1-0-op-s-bm-011", + "uuid": "ro-2-1-2-op-s-bm-011", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-s-000" + "ro-2-1-2-http-s-000" ], "layer-protocol": [ { @@ -738,12 +738,12 @@ ] }, { - "uuid": "ro-2-1-0-op-s-bm-012", + "uuid": "ro-2-1-2-op-s-bm-012", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-s-000" + "ro-2-1-2-http-s-000" ], "layer-protocol": [ { @@ -762,12 +762,12 @@ ] }, { - "uuid": "ro-2-1-0-op-s-bm-013", + "uuid": "ro-2-1-2-op-s-bm-013", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-s-000" + "ro-2-1-2-http-s-000" ], "layer-protocol": [ { @@ -786,12 +786,12 @@ ] }, { - "uuid": "ro-2-1-0-op-s-bm-014", + "uuid": "ro-2-1-2-op-s-bm-014", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-s-000" + "ro-2-1-2-http-s-000" ], "layer-protocol": [ { @@ -810,12 +810,12 @@ ] }, { - "uuid": "ro-2-1-0-op-s-bm-015", + "uuid": "ro-2-1-2-op-s-bm-015", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-s-000" + "ro-2-1-2-http-s-000" ], "layer-protocol": [ { @@ -834,12 +834,12 @@ ] }, { - "uuid": "ro-2-1-0-op-s-im-000", + "uuid": "ro-2-1-2-op-s-im-000", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-s-000" + "ro-2-1-2-http-s-000" ], "layer-protocol": [ { @@ -858,12 +858,12 @@ ] }, { - "uuid": "ro-2-1-0-op-s-bs-000", + "uuid": "ro-2-1-2-op-s-bs-000", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-s-000" + "ro-2-1-2-http-s-000" ], "layer-protocol": [ { @@ -882,12 +882,12 @@ ] }, { - "uuid": "ro-2-1-0-op-s-bs-001", + "uuid": "ro-2-1-2-op-s-bs-001", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-s-000" + "ro-2-1-2-http-s-000" ], "layer-protocol": [ { @@ -906,12 +906,12 @@ ] }, { - "uuid": "ro-2-1-0-op-s-bs-002", + "uuid": "ro-2-1-2-op-s-bs-002", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-s-000" + "ro-2-1-2-http-s-000" ], "layer-protocol": [ { @@ -930,12 +930,12 @@ ] }, { - "uuid": "ro-2-1-0-op-s-bs-003", + "uuid": "ro-2-1-2-op-s-bs-003", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-s-000" + "ro-2-1-2-http-s-000" ], "layer-protocol": [ { @@ -954,12 +954,12 @@ ] }, { - "uuid": "ro-2-1-0-op-s-bs-004", + "uuid": "ro-2-1-2-op-s-bs-004", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-s-000" + "ro-2-1-2-http-s-000" ], "layer-protocol": [ { @@ -978,12 +978,12 @@ ] }, { - "uuid": "ro-2-1-0-op-s-bs-005", + "uuid": "ro-2-1-2-op-s-bs-005", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-s-000" + "ro-2-1-2-http-s-000" ], "layer-protocol": [ { @@ -1002,12 +1002,12 @@ ] }, { - "uuid": "ro-2-1-0-op-s-is-001", + "uuid": "ro-2-1-2-op-s-is-001", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-s-000" + "ro-2-1-2-http-s-000" ], "layer-protocol": [ { @@ -1026,12 +1026,12 @@ ] }, { - "uuid": "ro-2-1-0-op-s-is-002", + "uuid": "ro-2-1-2-op-s-is-002", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-s-000" + "ro-2-1-2-http-s-000" ], "layer-protocol": [ { @@ -1050,12 +1050,12 @@ ] }, { - "uuid": "ro-2-1-0-op-s-is-003", + "uuid": "ro-2-1-2-op-s-is-003", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-s-000" + "ro-2-1-2-http-s-000" ], "layer-protocol": [ { @@ -1074,12 +1074,12 @@ ] }, { - "uuid": "ro-2-1-0-op-s-is-004", + "uuid": "ro-2-1-2-op-s-is-004", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-s-000" + "ro-2-1-2-http-s-000" ], "layer-protocol": [ { @@ -1098,12 +1098,12 @@ ] }, { - "uuid": "ro-2-1-0-op-s-is-005", + "uuid": "ro-2-1-2-op-s-is-005", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-s-000" + "ro-2-1-2-http-s-000" ], "layer-protocol": [ { @@ -1122,12 +1122,12 @@ ] }, { - "uuid": "ro-2-1-0-op-s-is-006", + "uuid": "ro-2-1-2-op-s-is-006", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-s-000" + "ro-2-1-2-http-s-000" ], "layer-protocol": [ { @@ -1146,12 +1146,12 @@ ] }, { - "uuid": "ro-2-1-0-op-s-is-007", + "uuid": "ro-2-1-2-op-s-is-007", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-s-000" + "ro-2-1-2-http-s-000" ], "layer-protocol": [ { @@ -1170,12 +1170,12 @@ ] }, { - "uuid": "ro-2-1-0-op-s-is-008", + "uuid": "ro-2-1-2-op-s-is-008", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-s-000" + "ro-2-1-2-http-s-000" ], "layer-protocol": [ { @@ -1194,12 +1194,12 @@ ] }, { - "uuid": "ro-2-1-0-op-s-is-009", + "uuid": "ro-2-1-2-op-s-is-009", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-s-000" + "ro-2-1-2-http-s-000" ], "layer-protocol": [ { @@ -1218,12 +1218,12 @@ ] }, { - "uuid": "ro-2-1-0-op-s-is-010", + "uuid": "ro-2-1-2-op-s-is-010", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-s-000" + "ro-2-1-2-http-s-000" ], "layer-protocol": [ { @@ -1242,12 +1242,12 @@ ] }, { - "uuid": "ro-2-1-0-op-s-is-011", + "uuid": "ro-2-1-2-op-s-is-011", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-s-000" + "ro-2-1-2-http-s-000" ], "layer-protocol": [ { @@ -1266,12 +1266,12 @@ ] }, { - "uuid": "ro-2-1-0-op-s-is-012", + "uuid": "ro-2-1-2-op-s-is-012", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-s-000" + "ro-2-1-2-http-s-000" ], "layer-protocol": [ { @@ -1290,12 +1290,12 @@ ] }, { - "uuid": "ro-2-1-0-op-s-is-013", + "uuid": "ro-2-1-2-op-s-is-013", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-s-000" + "ro-2-1-2-http-s-000" ], "layer-protocol": [ { @@ -1314,47 +1314,47 @@ ] }, { - "uuid": "ro-2-1-0-http-s-000", + "uuid": "ro-2-1-2-http-s-000", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", "client-ltp": [ - "ro-2-1-0-op-s-bm-000", - "ro-2-1-0-op-s-bm-001", - "ro-2-1-0-op-s-bm-002", - "ro-2-1-0-op-s-bm-003", - "ro-2-1-0-op-s-bm-004", - "ro-2-1-0-op-s-bm-005", - "ro-2-1-0-op-s-bm-007", - "ro-2-1-0-op-s-bm-008", - "ro-2-1-0-op-s-bm-009", - "ro-2-1-0-op-s-bm-010", - "ro-2-1-0-op-s-bm-011", - "ro-2-1-0-op-s-bm-012", - "ro-2-1-0-op-s-bm-013", - "ro-2-1-0-op-s-bm-014", - "ro-2-1-0-op-s-bm-015", - "ro-2-1-0-op-s-im-000", - "ro-2-1-0-op-s-bs-000", - "ro-2-1-0-op-s-bs-001", - "ro-2-1-0-op-s-bs-002", - "ro-2-1-0-op-s-bs-003", - "ro-2-1-0-op-s-bs-004", - "ro-2-1-0-op-s-bs-005", - "ro-2-1-0-op-s-is-001", - "ro-2-1-0-op-s-is-002", - "ro-2-1-0-op-s-is-003", - "ro-2-1-0-op-s-is-004", - "ro-2-1-0-op-s-is-005", - "ro-2-1-0-op-s-is-006", - "ro-2-1-0-op-s-is-007", - "ro-2-1-0-op-s-is-008", - "ro-2-1-0-op-s-is-009", - "ro-2-1-0-op-s-is-010", - "ro-2-1-0-op-s-is-011", - "ro-2-1-0-op-s-is-012", - "ro-2-1-0-op-s-is-013" - ], - "server-ltp": [ - "ro-2-1-0-tcp-s-000" + "ro-2-1-2-op-s-bm-000", + "ro-2-1-2-op-s-bm-001", + "ro-2-1-2-op-s-bm-002", + "ro-2-1-2-op-s-bm-003", + "ro-2-1-2-op-s-bm-004", + "ro-2-1-2-op-s-bm-005", + "ro-2-1-2-op-s-bm-007", + "ro-2-1-2-op-s-bm-008", + "ro-2-1-2-op-s-bm-009", + "ro-2-1-2-op-s-bm-010", + "ro-2-1-2-op-s-bm-011", + "ro-2-1-2-op-s-bm-012", + "ro-2-1-2-op-s-bm-013", + "ro-2-1-2-op-s-bm-014", + "ro-2-1-2-op-s-bm-015", + "ro-2-1-2-op-s-im-000", + "ro-2-1-2-op-s-bs-000", + "ro-2-1-2-op-s-bs-001", + "ro-2-1-2-op-s-bs-002", + "ro-2-1-2-op-s-bs-003", + "ro-2-1-2-op-s-bs-004", + "ro-2-1-2-op-s-bs-005", + "ro-2-1-2-op-s-is-001", + "ro-2-1-2-op-s-is-002", + "ro-2-1-2-op-s-is-003", + "ro-2-1-2-op-s-is-004", + "ro-2-1-2-op-s-is-005", + "ro-2-1-2-op-s-is-006", + "ro-2-1-2-op-s-is-007", + "ro-2-1-2-op-s-is-008", + "ro-2-1-2-op-s-is-009", + "ro-2-1-2-op-s-is-010", + "ro-2-1-2-op-s-is-011", + "ro-2-1-2-op-s-is-012", + "ro-2-1-2-op-s-is-013" + ], + "server-ltp": [ + "ro-2-1-2-tcp-s-000" ], "layer-protocol": [ { @@ -1363,7 +1363,7 @@ "http-server-interface-1-0:http-server-interface-pac": { "http-server-interface-capability": { "application-name": "RegistryOffice", - "release-number": "2.1.1", + "release-number": "2.1.2", "application-purpose": "All applications being part of the MW SDN must register here.", "data-update-period": "http-server-interface-1-0:DATA_UPDATE_PERIOD_TYPE_REAL_TIME", "owner-name": "Thorsten Heinze", @@ -1391,7 +1391,7 @@ "local-id": "3", "release-number": "2.1.2", "release-date": "14.08.2024", - "changes": "Fixing several findings from 2.1.1." + "changes": "Fixing several findings from 2.1.2." } ] } @@ -1400,10 +1400,10 @@ ] }, { - "uuid": "ro-2-1-0-tcp-s-000", + "uuid": "ro-2-1-2-tcp-s-000", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", "client-ltp": [ - "ro-2-1-0-http-s-000" + "ro-2-1-2-http-s-000" ], "server-ltp": [ ], @@ -1418,19 +1418,19 @@ "local-address": { "ipv-4-address": "127.0.0.1" }, - "local-port": 3024 + "local-port": 3031 } } } ] }, { - "uuid": "ro-2-1-0-op-c-bm-or-2-0-1-000", + "uuid": "ro-2-1-2-op-c-bm-or-2-1-1-000", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-or-2-0-1-000" + "ro-2-1-2-http-c-or-2-1-1-000" ], "layer-protocol": [ { @@ -1450,13 +1450,13 @@ ] }, { - "uuid": "ro-2-1-0-http-c-or-2-0-1-000", + "uuid": "ro-2-1-2-http-c-or-2-1-1-000", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ - "ro-2-1-0-op-c-bm-or-2-0-1-000" + "ro-2-1-2-op-c-bm-or-2-1-1-000" ], "server-ltp": [ - "ro-2-1-0-tcp-c-or-2-0-1-000" + "ro-2-1-2-tcp-c-or-2-1-1-000" ], "layer-protocol": [ { @@ -1465,17 +1465,17 @@ "http-client-interface-1-0:http-client-interface-pac": { "http-client-interface-configuration": { "application-name": "RegistryOffice", - "release-number": "2.0.1" + "release-number": "2.1.1" } } } ] }, { - "uuid": "ro-2-1-0-tcp-c-or-2-0-1-000", + "uuid": "ro-2-1-2-tcp-c-or-2-1-1-000", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ - "ro-2-1-0-http-c-or-2-0-1-000" + "ro-2-1-2-http-c-or-2-1-1-000" ], "server-ltp": [ ], @@ -1491,19 +1491,19 @@ "ipv-4-address": "127.0.0.1" } }, - "remote-port": 3008 + "remote-port": 3024 } } } ] }, { - "uuid": "ro-2-1-0-op-c-im-nr-2-1-0-002", + "uuid": "ro-2-1-2-op-c-im-nr-2-1-2-002", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-nr-2-1-0-000" + "ro-2-1-2-http-c-nr-2-1-2-000" ], "layer-protocol": [ { @@ -1523,12 +1523,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-nr-2-1-0-005", + "uuid": "ro-2-1-2-op-c-im-nr-2-1-2-005", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-nr-2-1-0-000" + "ro-2-1-2-http-c-nr-2-1-2-000" ], "layer-protocol": [ { @@ -1548,12 +1548,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-nr-2-1-0-006", + "uuid": "ro-2-1-2-op-c-im-nr-2-1-2-006", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-nr-2-1-0-000" + "ro-2-1-2-http-c-nr-2-1-2-000" ], "layer-protocol": [ { @@ -1573,15 +1573,15 @@ ] }, { - "uuid": "ro-2-1-0-http-c-nr-2-1-0-000", + "uuid": "ro-2-1-2-http-c-nr-2-1-2-000", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ - "ro-2-1-0-op-c-im-nr-2-1-0-002", - "ro-2-1-0-op-c-im-nr-2-1-0-005", - "ro-2-1-0-op-c-im-nr-2-1-0-006" + "ro-2-1-2-op-c-im-nr-2-1-2-002", + "ro-2-1-2-op-c-im-nr-2-1-2-005", + "ro-2-1-2-op-c-im-nr-2-1-2-006" ], "server-ltp": [ - "ro-2-1-0-tcp-c-nr-2-1-0-000" + "ro-2-1-2-tcp-c-nr-2-1-2-000" ], "layer-protocol": [ { @@ -1590,17 +1590,17 @@ "http-client-interface-1-0:http-client-interface-pac": { "http-client-interface-configuration": { "application-name": "NewRelease", - "release-number": "2.1.0" + "release-number": "2.1.2" } } } ] }, { - "uuid": "ro-2-1-0-tcp-c-nr-2-1-0-000", + "uuid": "ro-2-1-2-tcp-c-nr-2-1-2-000", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ - "ro-2-1-0-http-c-nr-2-1-0-000" + "ro-2-1-2-http-c-nr-2-1-2-000" ], "server-ltp": [ ], @@ -1616,19 +1616,19 @@ "ipv-4-address": "127.0.0.1" } }, - "remote-port": 3024 + "remote-port": 3031 } } } ] }, { - "uuid": "ro-2-1-0-op-c-bm-ro-2-0-1-000", + "uuid": "ro-2-1-2-op-c-bm-ro-2-1-2-000", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-ro-2-0-1-000" + "ro-2-1-2-http-c-ro-2-1-2-000" ], "layer-protocol": [ { @@ -1636,7 +1636,7 @@ "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", "operation-client-interface-1-0:operation-client-interface-pac": { "operation-client-interface-configuration": { - "operation-name": "/v1/register-application", + "operation-name": "/v2/register-application", "operation-key": "n.a." }, "operation-client-interface-status": { @@ -1648,12 +1648,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-bm-ro-2-0-1-001", + "uuid": "ro-2-1-2-op-c-bm-ro-2-1-2-001", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-ro-2-0-1-000" + "ro-2-1-2-http-c-ro-2-1-2-000" ], "layer-protocol": [ { @@ -1673,12 +1673,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-bm-ro-2-0-1-002", + "uuid": "ro-2-1-2-op-c-bm-ro-2-1-2-002", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-ro-2-0-1-000" + "ro-2-1-2-http-c-ro-2-1-2-000" ], "layer-protocol": [ { @@ -1698,12 +1698,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-bm-ro-2-0-1-003", + "uuid": "ro-2-1-2-op-c-bm-ro-2-1-2-003", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-ro-2-0-1-000" + "ro-2-1-2-http-c-ro-2-1-2-000" ], "layer-protocol": [ { @@ -1723,12 +1723,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-ro-2-0-1-000", + "uuid": "ro-2-1-2-op-c-im-ro-2-1-2-000", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-ro-2-0-1-000" + "ro-2-1-2-http-c-ro-2-1-2-000" ], "layer-protocol": [ { @@ -1748,12 +1748,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-ro-2-0-1-001", + "uuid": "ro-2-1-2-op-c-im-ro-2-1-2-001", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-ro-2-0-1-000" + "ro-2-1-2-http-c-ro-2-1-2-000" ], "layer-protocol": [ { @@ -1773,12 +1773,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-ro-2-0-1-002", + "uuid": "ro-2-1-2-op-c-im-ro-2-1-2-002", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-ro-2-0-1-000" + "ro-2-1-2-http-c-ro-2-1-2-000" ], "layer-protocol": [ { @@ -1798,12 +1798,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-ro-2-0-1-006", + "uuid": "ro-2-1-2-op-c-im-ro-2-1-2-006", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-ro-2-0-1-000" + "ro-2-1-2-http-c-ro-2-1-2-000" ], "layer-protocol": [ { @@ -1823,12 +1823,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-ro-2-0-1-008", + "uuid": "ro-2-1-2-op-c-im-ro-2-1-2-008", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-ro-2-0-1-000" + "ro-2-1-2-http-c-ro-2-1-2-000" ], "layer-protocol": [ { @@ -1848,12 +1848,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-ro-2-0-1-009", + "uuid": "ro-2-1-2-op-c-im-ro-2-1-2-009", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-ro-2-0-1-000" + "ro-2-1-2-http-c-ro-2-1-2-000" ], "layer-protocol": [ { @@ -1873,22 +1873,22 @@ ] }, { - "uuid": "ro-2-1-0-http-c-ro-2-0-1-000", + "uuid": "ro-2-1-2-http-c-ro-2-1-2-000", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ - "ro-2-1-0-op-c-bm-ro-2-0-1-000", - "ro-2-1-0-op-c-bm-ro-2-0-1-001", - "ro-2-1-0-op-c-bm-ro-2-0-1-002", - "ro-2-1-0-op-c-bm-ro-2-0-1-003", - "ro-2-1-0-op-c-im-ro-2-0-1-000", - "ro-2-1-0-op-c-im-ro-2-0-1-001", - "ro-2-1-0-op-c-im-ro-2-0-1-002", - "ro-2-1-0-op-c-im-ro-2-0-1-006", - "ro-2-1-0-op-c-im-ro-2-0-1-008", - "ro-2-1-0-op-c-im-ro-2-0-1-009" + "ro-2-1-2-op-c-bm-ro-2-1-2-000", + "ro-2-1-2-op-c-bm-ro-2-1-2-001", + "ro-2-1-2-op-c-bm-ro-2-1-2-002", + "ro-2-1-2-op-c-bm-ro-2-1-2-003", + "ro-2-1-2-op-c-im-ro-2-1-2-000", + "ro-2-1-2-op-c-im-ro-2-1-2-001", + "ro-2-1-2-op-c-im-ro-2-1-2-002", + "ro-2-1-2-op-c-im-ro-2-1-2-006", + "ro-2-1-2-op-c-im-ro-2-1-2-008", + "ro-2-1-2-op-c-im-ro-2-1-2-009" ], "server-ltp": [ - "ro-2-1-0-tcp-c-ro-2-0-1-000" + "ro-2-1-2-tcp-c-ro-2-1-2-000" ], "layer-protocol": [ { @@ -1897,17 +1897,17 @@ "http-client-interface-1-0:http-client-interface-pac": { "http-client-interface-configuration": { "application-name": "RegistryOffice", - "release-number": "2.0.1" + "release-number": "2.1.2" } } } ] }, { - "uuid": "ro-2-1-0-tcp-c-ro-2-0-1-000", + "uuid": "ro-2-1-2-tcp-c-ro-2-1-2-000", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ - "ro-2-1-0-http-c-ro-2-0-1-000" + "ro-2-1-2-http-c-ro-2-1-2-000" ], "server-ltp": [ ], @@ -1923,19 +1923,19 @@ "ipv-4-address": "127.0.0.1" } }, - "remote-port": 3008 + "remote-port": 3031 } } } ] }, { - "uuid": "ro-2-1-0-op-c-im-tar-2-0-1-000", + "uuid": "ro-2-1-2-op-c-im-tar-2-1-2-000", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-tar-2-0-1-000" + "ro-2-1-2-http-c-tar-2-1-2-000" ], "layer-protocol": [ { @@ -1955,12 +1955,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-tar-2-0-1-001", + "uuid": "ro-2-1-2-op-c-im-tar-2-1-2-001", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-tar-2-0-1-000" + "ro-2-1-2-http-c-tar-2-1-2-000" ], "layer-protocol": [ { @@ -1980,12 +1980,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-tar-2-0-1-002", + "uuid": "ro-2-1-2-op-c-im-tar-2-1-2-002", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-tar-2-0-1-000" + "ro-2-1-2-http-c-tar-2-1-2-000" ], "layer-protocol": [ { @@ -2005,12 +2005,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-tar-2-0-1-003", + "uuid": "ro-2-1-2-op-c-im-tar-2-1-2-003", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-tar-2-0-1-000" + "ro-2-1-2-http-c-tar-2-1-2-000" ], "layer-protocol": [ { @@ -2030,12 +2030,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-tar-2-0-1-004", + "uuid": "ro-2-1-2-op-c-im-tar-2-1-2-004", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-tar-2-0-1-000" + "ro-2-1-2-http-c-tar-2-1-2-000" ], "layer-protocol": [ { @@ -2055,12 +2055,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-tar-2-0-1-005", + "uuid": "ro-2-1-2-op-c-im-tar-2-1-2-005", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-tar-2-0-1-000" + "ro-2-1-2-http-c-tar-2-1-2-000" ], "layer-protocol": [ { @@ -2080,12 +2080,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-tar-2-0-1-006", + "uuid": "ro-2-1-2-op-c-im-tar-2-1-2-006", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-tar-2-0-1-000" + "ro-2-1-2-http-c-tar-2-1-2-000" ], "layer-protocol": [ { @@ -2105,12 +2105,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-tar-2-0-1-007", + "uuid": "ro-2-1-2-op-c-im-tar-2-1-2-007", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-tar-2-0-1-000" + "ro-2-1-2-http-c-tar-2-1-2-000" ], "layer-protocol": [ { @@ -2130,12 +2130,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-tar-2-0-1-008", + "uuid": "ro-2-1-2-op-c-im-tar-2-1-2-008", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-tar-2-0-1-000" + "ro-2-1-2-http-c-tar-2-1-2-000" ], "layer-protocol": [ { @@ -2155,12 +2155,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-tar-2-0-1-009", + "uuid": "ro-2-1-2-op-c-im-tar-2-1-2-009", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-tar-2-0-1-000" + "ro-2-1-2-http-c-tar-2-1-2-000" ], "layer-protocol": [ { @@ -2180,22 +2180,22 @@ ] }, { - "uuid": "ro-2-1-0-http-c-tar-2-0-1-000", + "uuid": "ro-2-1-2-http-c-tar-2-1-2-000", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ - "ro-2-1-0-op-c-im-tar-2-0-1-000", - "ro-2-1-0-op-c-im-tar-2-0-1-001", - "ro-2-1-0-op-c-im-tar-2-0-1-002", - "ro-2-1-0-op-c-im-tar-2-0-1-003", - "ro-2-1-0-op-c-im-tar-2-0-1-004", - "ro-2-1-0-op-c-im-tar-2-0-1-005", - "ro-2-1-0-op-c-im-tar-2-0-1-006", - "ro-2-1-0-op-c-im-tar-2-0-1-007", - "ro-2-1-0-op-c-im-tar-2-0-1-008", - "ro-2-1-0-op-c-im-tar-2-0-1-009" + "ro-2-1-2-op-c-im-tar-2-1-2-000", + "ro-2-1-2-op-c-im-tar-2-1-2-001", + "ro-2-1-2-op-c-im-tar-2-1-2-002", + "ro-2-1-2-op-c-im-tar-2-1-2-003", + "ro-2-1-2-op-c-im-tar-2-1-2-004", + "ro-2-1-2-op-c-im-tar-2-1-2-005", + "ro-2-1-2-op-c-im-tar-2-1-2-006", + "ro-2-1-2-op-c-im-tar-2-1-2-007", + "ro-2-1-2-op-c-im-tar-2-1-2-008", + "ro-2-1-2-op-c-im-tar-2-1-2-009" ], "server-ltp": [ - "ro-2-1-0-tcp-c-tar-2-0-1-000" + "ro-2-1-2-tcp-c-tar-2-1-2-000" ], "layer-protocol": [ { @@ -2204,17 +2204,17 @@ "http-client-interface-1-0:http-client-interface-pac": { "http-client-interface-configuration": { "application-name": "TypeApprovalRegister", - "release-number": "2.0.1" + "release-number": "2.1.2" } } } ] }, { - "uuid": "ro-2-1-0-tcp-c-tar-2-0-1-000", + "uuid": "ro-2-1-2-tcp-c-tar-2-1-2-000", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ - "ro-2-1-0-http-c-tar-2-0-1-000" + "ro-2-1-2-http-c-tar-2-1-2-000" ], "server-ltp": [ ], @@ -2230,19 +2230,19 @@ "ipv-4-address": "127.0.0.1" } }, - "remote-port": 3009 + "remote-port": 3032 } } } ] }, { - "uuid": "ro-2-1-0-op-c-bs-eatl-2-0-1-000", + "uuid": "ro-2-1-2-op-c-bs-eatl-2-1-2-000", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-eatl-2-0-1-000" + "ro-2-1-2-http-c-eatl-2-1-2-000" ], "layer-protocol": [ { @@ -2263,12 +2263,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-eatl-2-0-1-000", + "uuid": "ro-2-1-2-op-c-im-eatl-2-1-2-000", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-eatl-2-0-1-000" + "ro-2-1-2-http-c-eatl-2-1-2-000" ], "layer-protocol": [ { @@ -2288,12 +2288,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-eatl-2-0-1-001", + "uuid": "ro-2-1-2-op-c-im-eatl-2-1-2-001", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-eatl-2-0-1-000" + "ro-2-1-2-http-c-eatl-2-1-2-000" ], "layer-protocol": [ { @@ -2313,12 +2313,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-eatl-2-0-1-002", + "uuid": "ro-2-1-2-op-c-im-eatl-2-1-2-002", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-eatl-2-0-1-000" + "ro-2-1-2-http-c-eatl-2-1-2-000" ], "layer-protocol": [ { @@ -2338,12 +2338,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-eatl-2-0-1-003", + "uuid": "ro-2-1-2-op-c-im-eatl-2-1-2-003", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-eatl-2-0-1-000" + "ro-2-1-2-http-c-eatl-2-1-2-000" ], "layer-protocol": [ { @@ -2363,12 +2363,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-eatl-2-0-1-004", + "uuid": "ro-2-1-2-op-c-im-eatl-2-1-2-004", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-eatl-2-0-1-000" + "ro-2-1-2-http-c-eatl-2-1-2-000" ], "layer-protocol": [ { @@ -2388,12 +2388,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-eatl-2-0-1-006", + "uuid": "ro-2-1-2-op-c-im-eatl-2-1-2-006", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-eatl-2-0-1-000" + "ro-2-1-2-http-c-eatl-2-1-2-000" ], "layer-protocol": [ { @@ -2413,12 +2413,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-eatl-2-0-1-008", + "uuid": "ro-2-1-2-op-c-im-eatl-2-1-2-008", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-eatl-2-0-1-000" + "ro-2-1-2-http-c-eatl-2-1-2-000" ], "layer-protocol": [ { @@ -2438,12 +2438,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-eatl-2-0-1-009", + "uuid": "ro-2-1-2-op-c-im-eatl-2-1-2-009", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-eatl-2-0-1-000" + "ro-2-1-2-http-c-eatl-2-1-2-000" ], "layer-protocol": [ { @@ -2463,21 +2463,21 @@ ] }, { - "uuid": "ro-2-1-0-http-c-eatl-2-0-1-000", + "uuid": "ro-2-1-2-http-c-eatl-2-1-2-000", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ - "ro-2-1-0-op-c-bs-eatl-2-0-1-000", - "ro-2-1-0-op-c-im-eatl-2-0-1-000", - "ro-2-1-0-op-c-im-eatl-2-0-1-001", - "ro-2-1-0-op-c-im-eatl-2-0-1-002", - "ro-2-1-0-op-c-im-eatl-2-0-1-003", - "ro-2-1-0-op-c-im-eatl-2-0-1-004", - "ro-2-1-0-op-c-im-eatl-2-0-1-006", - "ro-2-1-0-op-c-im-eatl-2-0-1-008", - "ro-2-1-0-op-c-im-eatl-2-0-1-009" + "ro-2-1-2-op-c-bs-eatl-2-1-2-000", + "ro-2-1-2-op-c-im-eatl-2-1-2-000", + "ro-2-1-2-op-c-im-eatl-2-1-2-001", + "ro-2-1-2-op-c-im-eatl-2-1-2-002", + "ro-2-1-2-op-c-im-eatl-2-1-2-003", + "ro-2-1-2-op-c-im-eatl-2-1-2-004", + "ro-2-1-2-op-c-im-eatl-2-1-2-006", + "ro-2-1-2-op-c-im-eatl-2-1-2-008", + "ro-2-1-2-op-c-im-eatl-2-1-2-009" ], "server-ltp": [ - "ro-2-1-0-tcp-c-eatl-2-0-1-000" + "ro-2-1-2-tcp-c-eatl-2-1-2-000" ], "layer-protocol": [ { @@ -2486,17 +2486,17 @@ "http-client-interface-1-0:http-client-interface-pac": { "http-client-interface-configuration": { "application-name": "ExecutionAndTraceLog", - "release-number": "2.0.1" + "release-number": "2.1.2" } } } ] }, { - "uuid": "ro-2-1-0-tcp-c-eatl-2-0-1-000", + "uuid": "ro-2-1-2-tcp-c-eatl-2-1-2-000", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ - "ro-2-1-0-http-c-eatl-2-0-1-000" + "ro-2-1-2-http-c-eatl-2-1-2-000" ], "server-ltp": [ ], @@ -2512,19 +2512,19 @@ "ipv-4-address": "127.0.0.1" } }, - "remote-port": 3010 + "remote-port": 3033 } } } ] }, { - "uuid": "ro-2-1-0-op-c-bs-ol-2-0-1-000", + "uuid": "ro-2-1-2-op-c-bs-ol-2-1-2-000", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-ol-2-0-1-000" + "ro-2-1-2-http-c-ol-2-1-2-000" ], "layer-protocol": [ { @@ -2544,12 +2544,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-ol-2-0-1-000", + "uuid": "ro-2-1-2-op-c-im-ol-2-1-2-000", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-ol-2-0-1-000" + "ro-2-1-2-http-c-ol-2-1-2-000" ], "layer-protocol": [ { @@ -2569,12 +2569,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-ol-2-0-1-001", + "uuid": "ro-2-1-2-op-c-im-ol-2-1-2-001", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-ol-2-0-1-000" + "ro-2-1-2-http-c-ol-2-1-2-000" ], "layer-protocol": [ { @@ -2594,12 +2594,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-ol-2-0-1-002", + "uuid": "ro-2-1-2-op-c-im-ol-2-1-2-002", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-ol-2-0-1-000" + "ro-2-1-2-http-c-ol-2-1-2-000" ], "layer-protocol": [ { @@ -2619,12 +2619,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-ol-2-0-1-003", + "uuid": "ro-2-1-2-op-c-im-ol-2-1-2-003", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-ol-2-0-1-000" + "ro-2-1-2-http-c-ol-2-1-2-000" ], "layer-protocol": [ { @@ -2644,12 +2644,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-ol-2-0-1-004", + "uuid": "ro-2-1-2-op-c-im-ol-2-1-2-004", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-ol-2-0-1-000" + "ro-2-1-2-http-c-ol-2-1-2-000" ], "layer-protocol": [ { @@ -2669,12 +2669,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-ol-2-0-1-006", + "uuid": "ro-2-1-2-op-c-im-ol-2-1-2-006", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-ol-2-0-1-000" + "ro-2-1-2-http-c-ol-2-1-2-000" ], "layer-protocol": [ { @@ -2694,12 +2694,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-ol-2-0-1-008", + "uuid": "ro-2-1-2-op-c-im-ol-2-1-2-008", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-ol-2-0-1-000" + "ro-2-1-2-http-c-ol-2-1-2-000" ], "layer-protocol": [ { @@ -2719,12 +2719,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-ol-2-0-1-009", + "uuid": "ro-2-1-2-op-c-im-ol-2-1-2-009", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-ol-2-0-1-000" + "ro-2-1-2-http-c-ol-2-1-2-000" ], "layer-protocol": [ { @@ -2744,21 +2744,21 @@ ] }, { - "uuid": "ro-2-1-0-http-c-ol-2-0-1-000", + "uuid": "ro-2-1-2-http-c-ol-2-1-2-000", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ - "ro-2-1-0-op-c-bs-ol-2-0-1-000", - "ro-2-1-0-op-c-im-ol-2-0-1-000", - "ro-2-1-0-op-c-im-ol-2-0-1-001", - "ro-2-1-0-op-c-im-ol-2-0-1-002", - "ro-2-1-0-op-c-im-ol-2-0-1-003", - "ro-2-1-0-op-c-im-ol-2-0-1-004", - "ro-2-1-0-op-c-im-ol-2-0-1-006", - "ro-2-1-0-op-c-im-ol-2-0-1-008", - "ro-2-1-0-op-c-im-ol-2-0-1-009" + "ro-2-1-2-op-c-bs-ol-2-1-2-000", + "ro-2-1-2-op-c-im-ol-2-1-2-000", + "ro-2-1-2-op-c-im-ol-2-1-2-001", + "ro-2-1-2-op-c-im-ol-2-1-2-002", + "ro-2-1-2-op-c-im-ol-2-1-2-003", + "ro-2-1-2-op-c-im-ol-2-1-2-004", + "ro-2-1-2-op-c-im-ol-2-1-2-006", + "ro-2-1-2-op-c-im-ol-2-1-2-008", + "ro-2-1-2-op-c-im-ol-2-1-2-009" ], "server-ltp": [ - "ro-2-1-0-tcp-c-ol-2-0-1-000" + "ro-2-1-2-tcp-c-ol-2-1-2-000" ], "layer-protocol": [ { @@ -2767,17 +2767,17 @@ "http-client-interface-1-0:http-client-interface-pac": { "http-client-interface-configuration": { "application-name": "OamLog", - "release-number": "2.0.1" + "release-number": "2.1.2" } } } ] }, { - "uuid": "ro-2-1-0-tcp-c-ol-2-0-1-000", + "uuid": "ro-2-1-2-tcp-c-ol-2-1-2-000", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ - "ro-2-1-0-http-c-ol-2-0-1-000" + "ro-2-1-2-http-c-ol-2-1-2-000" ], "server-ltp": [ ], @@ -2793,19 +2793,19 @@ "ipv-4-address": "127.0.0.1" } }, - "remote-port": 3011 + "remote-port": 3034 } } } ] }, { - "uuid": "ro-2-1-0-op-c-bs-aa-2-0-1-000", + "uuid": "ro-2-1-2-op-c-bs-aa-2-1-2-000", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-aa-2-0-1-000" + "ro-2-1-2-http-c-aa-2-1-2-000" ], "layer-protocol": [ { @@ -2825,12 +2825,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-aa-2-0-1-000", + "uuid": "ro-2-1-2-op-c-im-aa-2-1-2-000", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-aa-2-0-1-000" + "ro-2-1-2-http-c-aa-2-1-2-000" ], "layer-protocol": [ { @@ -2850,12 +2850,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-aa-2-0-1-001", + "uuid": "ro-2-1-2-op-c-im-aa-2-1-2-001", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-aa-2-0-1-000" + "ro-2-1-2-http-c-aa-2-1-2-000" ], "layer-protocol": [ { @@ -2875,12 +2875,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-aa-2-0-1-002", + "uuid": "ro-2-1-2-op-c-im-aa-2-1-2-002", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-aa-2-0-1-000" + "ro-2-1-2-http-c-aa-2-1-2-000" ], "layer-protocol": [ { @@ -2900,12 +2900,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-aa-2-0-1-003", + "uuid": "ro-2-1-2-op-c-im-aa-2-1-2-003", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-aa-2-0-1-000" + "ro-2-1-2-http-c-aa-2-1-2-000" ], "layer-protocol": [ { @@ -2925,12 +2925,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-aa-2-0-1-004", + "uuid": "ro-2-1-2-op-c-im-aa-2-1-2-004", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-aa-2-0-1-000" + "ro-2-1-2-http-c-aa-2-1-2-000" ], "layer-protocol": [ { @@ -2950,12 +2950,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-aa-2-0-1-006", + "uuid": "ro-2-1-2-op-c-im-aa-2-1-2-006", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-aa-2-0-1-000" + "ro-2-1-2-http-c-aa-2-1-2-000" ], "layer-protocol": [ { @@ -2975,12 +2975,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-aa-2-0-1-008", + "uuid": "ro-2-1-2-op-c-im-aa-2-1-2-008", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-aa-2-0-1-000" + "ro-2-1-2-http-c-aa-2-1-2-000" ], "layer-protocol": [ { @@ -3000,12 +3000,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-aa-2-0-1-009", + "uuid": "ro-2-1-2-op-c-im-aa-2-1-2-009", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-aa-2-0-1-000" + "ro-2-1-2-http-c-aa-2-1-2-000" ], "layer-protocol": [ { @@ -3025,21 +3025,21 @@ ] }, { - "uuid": "ro-2-1-0-http-c-aa-2-0-1-000", + "uuid": "ro-2-1-2-http-c-aa-2-1-2-000", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ - "ro-2-1-0-op-c-bs-aa-2-0-1-000", - "ro-2-1-0-op-c-im-aa-2-0-1-000", - "ro-2-1-0-op-c-im-aa-2-0-1-001", - "ro-2-1-0-op-c-im-aa-2-0-1-002", - "ro-2-1-0-op-c-im-aa-2-0-1-003", - "ro-2-1-0-op-c-im-aa-2-0-1-004", - "ro-2-1-0-op-c-im-aa-2-0-1-006", - "ro-2-1-0-op-c-im-aa-2-0-1-008", - "ro-2-1-0-op-c-im-aa-2-0-1-009" + "ro-2-1-2-op-c-bs-aa-2-1-2-000", + "ro-2-1-2-op-c-im-aa-2-1-2-000", + "ro-2-1-2-op-c-im-aa-2-1-2-001", + "ro-2-1-2-op-c-im-aa-2-1-2-002", + "ro-2-1-2-op-c-im-aa-2-1-2-003", + "ro-2-1-2-op-c-im-aa-2-1-2-004", + "ro-2-1-2-op-c-im-aa-2-1-2-006", + "ro-2-1-2-op-c-im-aa-2-1-2-008", + "ro-2-1-2-op-c-im-aa-2-1-2-009" ], "server-ltp": [ - "ro-2-1-0-tcp-c-aa-2-0-1-000" + "ro-2-1-2-tcp-c-aa-2-1-2-000" ], "layer-protocol": [ { @@ -3047,18 +3047,18 @@ "layer-protocol-name": "http-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_HTTP_LAYER", "http-client-interface-1-0:http-client-interface-pac": { "http-client-interface-configuration": { - "application-name": "AdministratorAdministration", - "release-number": "2.0.1" + "application-name": "AccessAdministration", + "release-number": "2.1.2" } } } ] }, { - "uuid": "ro-2-1-0-tcp-c-aa-2-0-1-000", + "uuid": "ro-2-1-2-tcp-c-aa-2-1-2-000", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ - "ro-2-1-0-http-c-aa-2-0-1-000" + "ro-2-1-2-http-c-aa-2-1-2-000" ], "server-ltp": [ ], @@ -3074,19 +3074,19 @@ "ipv-4-address": "127.0.0.1" } }, - "remote-port": 3012 + "remote-port": 3035 } } } ] }, { - "uuid": "ro-2-1-0-op-c-bm-alt-2-0-1-000", + "uuid": "ro-2-1-2-op-c-bm-alt-2-1-2-000", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-alt-2-0-1-000" + "ro-2-1-2-http-c-alt-2-1-2-000" ], "layer-protocol": [ { @@ -3106,12 +3106,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-bm-alt-2-0-1-001", + "uuid": "ro-2-1-2-op-c-bm-alt-2-1-2-001", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-alt-2-0-1-000" + "ro-2-1-2-http-c-alt-2-1-2-000" ], "layer-protocol": [ { @@ -3131,12 +3131,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-bm-alt-2-0-1-002", + "uuid": "ro-2-1-2-op-c-bm-alt-2-1-2-002", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-alt-2-0-1-000" + "ro-2-1-2-http-c-alt-2-1-2-000" ], "layer-protocol": [ { @@ -3156,12 +3156,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-bm-alt-2-0-1-003", + "uuid": "ro-2-1-2-op-c-bm-alt-2-1-2-003", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-alt-2-0-1-000" + "ro-2-1-2-http-c-alt-2-1-2-000" ], "layer-protocol": [ { @@ -3181,12 +3181,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-bm-alt-2-0-1-004", + "uuid": "ro-2-1-2-op-c-bm-alt-2-1-2-004", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-alt-2-0-1-000" + "ro-2-1-2-http-c-alt-2-1-2-000" ], "layer-protocol": [ { @@ -3206,12 +3206,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-bm-alt-2-0-1-005", + "uuid": "ro-2-1-2-op-c-bm-alt-2-1-2-005", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-alt-2-0-1-000" + "ro-2-1-2-http-c-alt-2-1-2-000" ], "layer-protocol": [ { @@ -3231,12 +3231,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-alt-2-0-1-000", + "uuid": "ro-2-1-2-op-c-im-alt-2-1-2-000", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-alt-2-0-1-000" + "ro-2-1-2-http-c-alt-2-1-2-000" ], "layer-protocol": [ { @@ -3256,12 +3256,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-alt-2-0-1-001", + "uuid": "ro-2-1-2-op-c-im-alt-2-1-2-001", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-alt-2-0-1-000" + "ro-2-1-2-http-c-alt-2-1-2-000" ], "layer-protocol": [ { @@ -3281,12 +3281,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-alt-2-0-1-002", + "uuid": "ro-2-1-2-op-c-im-alt-2-1-2-002", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-alt-2-0-1-000" + "ro-2-1-2-http-c-alt-2-1-2-000" ], "layer-protocol": [ { @@ -3306,12 +3306,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-alt-2-0-1-003", + "uuid": "ro-2-1-2-op-c-im-alt-2-1-2-003", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-alt-2-0-1-000" + "ro-2-1-2-http-c-alt-2-1-2-000" ], "layer-protocol": [ { @@ -3331,12 +3331,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-alt-2-0-1-004", + "uuid": "ro-2-1-2-op-c-im-alt-2-1-2-004", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-alt-2-0-1-000" + "ro-2-1-2-http-c-alt-2-1-2-000" ], "layer-protocol": [ { @@ -3356,12 +3356,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-alt-2-0-1-006", + "uuid": "ro-2-1-2-op-c-im-alt-2-1-2-006", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-alt-2-0-1-000" + "ro-2-1-2-http-c-alt-2-1-2-000" ], "layer-protocol": [ { @@ -3381,12 +3381,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-alt-2-0-1-008", + "uuid": "ro-2-1-2-op-c-im-alt-2-1-2-008", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-alt-2-0-1-000" + "ro-2-1-2-http-c-alt-2-1-2-000" ], "layer-protocol": [ { @@ -3406,12 +3406,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-alt-2-0-1-009", + "uuid": "ro-2-1-2-op-c-im-alt-2-1-2-009", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-alt-2-0-1-000" + "ro-2-1-2-http-c-alt-2-1-2-000" ], "layer-protocol": [ { @@ -3431,12 +3431,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-is-alt-2-0-1-000", + "uuid": "ro-2-1-2-op-c-is-alt-2-1-2-000", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-alt-2-0-1-000" + "ro-2-1-2-http-c-alt-2-1-2-000" ], "layer-protocol": [ { @@ -3456,27 +3456,27 @@ ] }, { - "uuid": "ro-2-1-0-http-c-alt-2-0-1-000", + "uuid": "ro-2-1-2-http-c-alt-2-1-2-000", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ - "ro-2-1-0-op-c-bm-alt-2-0-1-000", - "ro-2-1-0-op-c-bm-alt-2-0-1-001", - "ro-2-1-0-op-c-bm-alt-2-0-1-002", - "ro-2-1-0-op-c-bm-alt-2-0-1-003", - "ro-2-1-0-op-c-bm-alt-2-0-1-004", - "ro-2-1-0-op-c-bm-alt-2-0-1-005", - "ro-2-1-0-op-c-im-alt-2-0-1-000", - "ro-2-1-0-op-c-im-alt-2-0-1-001", - "ro-2-1-0-op-c-im-alt-2-0-1-002", - "ro-2-1-0-op-c-im-alt-2-0-1-003", - "ro-2-1-0-op-c-im-alt-2-0-1-004", - "ro-2-1-0-op-c-im-alt-2-0-1-006", - "ro-2-1-0-op-c-im-alt-2-0-1-008", - "ro-2-1-0-op-c-im-alt-2-0-1-009", - "ro-2-1-0-op-c-is-alt-2-0-1-000" + "ro-2-1-2-op-c-bm-alt-2-1-2-000", + "ro-2-1-2-op-c-bm-alt-2-1-2-001", + "ro-2-1-2-op-c-bm-alt-2-1-2-002", + "ro-2-1-2-op-c-bm-alt-2-1-2-003", + "ro-2-1-2-op-c-bm-alt-2-1-2-004", + "ro-2-1-2-op-c-bm-alt-2-1-2-005", + "ro-2-1-2-op-c-im-alt-2-1-2-000", + "ro-2-1-2-op-c-im-alt-2-1-2-001", + "ro-2-1-2-op-c-im-alt-2-1-2-002", + "ro-2-1-2-op-c-im-alt-2-1-2-003", + "ro-2-1-2-op-c-im-alt-2-1-2-004", + "ro-2-1-2-op-c-im-alt-2-1-2-006", + "ro-2-1-2-op-c-im-alt-2-1-2-008", + "ro-2-1-2-op-c-im-alt-2-1-2-009", + "ro-2-1-2-op-c-is-alt-2-1-2-000" ], "server-ltp": [ - "ro-2-1-0-tcp-c-alt-2-0-1-000" + "ro-2-1-2-tcp-c-alt-2-1-2-000" ], "layer-protocol": [ { @@ -3485,17 +3485,17 @@ "http-client-interface-1-0:http-client-interface-pac": { "http-client-interface-configuration": { "application-name": "ApplicationLayerTopology", - "release-number": "2.0.1" + "release-number": "2.1.2" } } } ] }, { - "uuid": "ro-2-1-0-tcp-c-alt-2-0-1-000", + "uuid": "ro-2-1-2-tcp-c-alt-2-1-2-000", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ - "ro-2-1-0-http-c-alt-2-0-1-000" + "ro-2-1-2-http-c-alt-2-1-2-000" ], "server-ltp": [ ], @@ -3511,19 +3511,19 @@ "ipv-4-address": "127.0.0.1" } }, - "remote-port": 3013 + "remote-port": 3036 } } } ] }, { - "uuid": "ro-2-1-0-op-c-im-okm-2-0-1-000", + "uuid": "ro-2-1-2-op-c-im-okm-2-1-2-000", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-okm-2-0-1-000" + "ro-2-1-2-http-c-okm-2-1-2-000" ], "layer-protocol": [ { @@ -3543,12 +3543,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-okm-2-0-1-001", + "uuid": "ro-2-1-2-op-c-im-okm-2-1-2-001", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-okm-2-0-1-000" + "ro-2-1-2-http-c-okm-2-1-2-000" ], "layer-protocol": [ { @@ -3568,12 +3568,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-okm-2-0-1-002", + "uuid": "ro-2-1-2-op-c-im-okm-2-1-2-002", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-okm-2-0-1-000" + "ro-2-1-2-http-c-okm-2-1-2-000" ], "layer-protocol": [ { @@ -3593,12 +3593,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-okm-2-0-1-003", + "uuid": "ro-2-1-2-op-c-im-okm-2-1-2-003", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-okm-2-0-1-000" + "ro-2-1-2-http-c-okm-2-1-2-000" ], "layer-protocol": [ { @@ -3618,12 +3618,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-okm-2-0-1-004", + "uuid": "ro-2-1-2-op-c-im-okm-2-1-2-004", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-okm-2-0-1-000" + "ro-2-1-2-http-c-okm-2-1-2-000" ], "layer-protocol": [ { @@ -3643,12 +3643,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-okm-2-0-1-006", + "uuid": "ro-2-1-2-op-c-im-okm-2-1-2-006", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-okm-2-0-1-000" + "ro-2-1-2-http-c-okm-2-1-2-000" ], "layer-protocol": [ { @@ -3668,12 +3668,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-okm-2-0-1-008", + "uuid": "ro-2-1-2-op-c-im-okm-2-1-2-008", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-okm-2-0-1-000" + "ro-2-1-2-http-c-okm-2-1-2-000" ], "layer-protocol": [ { @@ -3693,12 +3693,12 @@ ] }, { - "uuid": "ro-2-1-0-op-c-im-okm-2-0-1-009", + "uuid": "ro-2-1-2-op-c-im-okm-2-1-2-009", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ ], "server-ltp": [ - "ro-2-1-0-http-c-okm-2-0-1-000" + "ro-2-1-2-http-c-okm-2-1-2-000" ], "layer-protocol": [ { @@ -3718,20 +3718,20 @@ ] }, { - "uuid": "ro-2-1-0-http-c-okm-2-0-1-000", + "uuid": "ro-2-1-2-http-c-okm-2-1-2-000", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ - "ro-2-1-0-op-c-im-okm-2-0-1-000", - "ro-2-1-0-op-c-im-okm-2-0-1-001", - "ro-2-1-0-op-c-im-okm-2-0-1-002", - "ro-2-1-0-op-c-im-okm-2-0-1-003", - "ro-2-1-0-op-c-im-okm-2-0-1-004", - "ro-2-1-0-op-c-im-okm-2-0-1-006", - "ro-2-1-0-op-c-im-okm-2-0-1-008", - "ro-2-1-0-op-c-im-okm-2-0-1-009" + "ro-2-1-2-op-c-im-okm-2-1-2-000", + "ro-2-1-2-op-c-im-okm-2-1-2-001", + "ro-2-1-2-op-c-im-okm-2-1-2-002", + "ro-2-1-2-op-c-im-okm-2-1-2-003", + "ro-2-1-2-op-c-im-okm-2-1-2-004", + "ro-2-1-2-op-c-im-okm-2-1-2-006", + "ro-2-1-2-op-c-im-okm-2-1-2-008", + "ro-2-1-2-op-c-im-okm-2-1-2-009" ], "server-ltp": [ - "ro-2-1-0-tcp-c-okm-2-0-1-000" + "ro-2-1-2-tcp-c-okm-2-1-2-000" ], "layer-protocol": [ { @@ -3740,17 +3740,17 @@ "http-client-interface-1-0:http-client-interface-pac": { "http-client-interface-configuration": { "application-name": "OperationKeyManagement", - "release-number": "2.0.1" + "release-number": "2.1.2" } } } ] }, { - "uuid": "ro-2-1-0-tcp-c-okm-2-0-1-000", + "uuid": "ro-2-1-2-tcp-c-okm-2-1-2-000", "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", "client-ltp": [ - "ro-2-1-0-http-c-okm-2-0-1-000" + "ro-2-1-2-http-c-okm-2-1-2-000" ], "server-ltp": [ ], @@ -3766,7 +3766,7 @@ "ipv-4-address": "127.0.0.1" } }, - "remote-port": 3014 + "remote-port": 3037 } } } @@ -3775,10 +3775,10 @@ ], "forwarding-domain": [ { - "uuid": "ro-2-1-0-op-fd-000", + "uuid": "ro-2-1-2-op-fd-000", "forwarding-construct": [ { - "uuid": "ro-2-1-0-op-fc-bm-999", + "uuid": "ro-2-1-2-op-fc-bm-999", "name": [ { "value-name": "ForwardingKind", @@ -3793,22 +3793,22 @@ { "local-id": "000", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-bm-000" + "logical-termination-point": "ro-2-1-2-op-s-bm-000" }, { "local-id": "100", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-bm-000" + "logical-termination-point": "ro-2-1-2-op-s-bm-000" }, { "local-id": "200", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-bm-ro-2-0-1-000" + "logical-termination-point": "ro-2-1-2-op-c-bm-ro-2-1-2-000" } ] }, { - "uuid": "ro-2-1-0-op-fc-bm-000", + "uuid": "ro-2-1-2-op-fc-bm-000", "name": [ { "value-name": "ForwardingKind", @@ -3823,22 +3823,22 @@ { "local-id": "000", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-bm-000" + "logical-termination-point": "ro-2-1-2-op-s-bm-000" }, { "local-id": "100", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-bm-000" + "logical-termination-point": "ro-2-1-2-op-s-bm-000" }, { "local-id": "200", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-bm-ro-2-0-1-000" + "logical-termination-point": "ro-2-1-2-op-c-bm-ro-2-1-2-000" } ] }, { - "uuid": "ro-2-1-0-op-fc-bm-001", + "uuid": "ro-2-1-2-op-fc-bm-001", "name": [ { "value-name": "ForwardingKind", @@ -3853,17 +3853,17 @@ { "local-id": "100", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-bm-001" + "logical-termination-point": "ro-2-1-2-op-s-bm-001" }, { "local-id": "200", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-bm-or-2-0-1-000" + "logical-termination-point": "ro-2-1-2-op-c-bm-or-2-1-1-000" } ] }, { - "uuid": "ro-2-1-0-op-fc-bm-002", + "uuid": "ro-2-1-2-op-fc-bm-002", "name": [ { "value-name": "ForwardingKind", @@ -3878,187 +3878,187 @@ { "local-id": "000", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-bm-002" + "logical-termination-point": "ro-2-1-2-op-s-bm-002" }, { "local-id": "100", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-bm-000" + "logical-termination-point": "ro-2-1-2-op-s-bm-000" }, { "local-id": "101", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-bm-001" + "logical-termination-point": "ro-2-1-2-op-s-bm-001" }, { "local-id": "102", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-bm-002" + "logical-termination-point": "ro-2-1-2-op-s-bm-002" }, { "local-id": "103", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-bm-003" + "logical-termination-point": "ro-2-1-2-op-s-bm-003" }, { "local-id": "104", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-bm-004" + "logical-termination-point": "ro-2-1-2-op-s-bm-004" }, { "local-id": "105", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-bm-005" + "logical-termination-point": "ro-2-1-2-op-s-bm-005" }, { "local-id": "107", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-bm-007" + "logical-termination-point": "ro-2-1-2-op-s-bm-007" }, { "local-id": "108", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-bm-008" + "logical-termination-point": "ro-2-1-2-op-s-bm-008" }, { "local-id": "109", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-bm-009" + "logical-termination-point": "ro-2-1-2-op-s-bm-009" }, { "local-id": "110", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-bm-010" + "logical-termination-point": "ro-2-1-2-op-s-bm-010" }, { "local-id": "111", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-bm-011" + "logical-termination-point": "ro-2-1-2-op-s-bm-011" }, { "local-id": "112", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-bm-012" + "logical-termination-point": "ro-2-1-2-op-s-bm-012" }, { "local-id": "113", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-bm-013" + "logical-termination-point": "ro-2-1-2-op-s-bm-013" }, { "local-id": "114", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-bm-014" + "logical-termination-point": "ro-2-1-2-op-s-bm-014" }, { "local-id": "115", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-bm-015" + "logical-termination-point": "ro-2-1-2-op-s-bm-015" }, { "local-id": "130", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-im-000" + "logical-termination-point": "ro-2-1-2-op-s-im-000" }, { "local-id": "150", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-bs-000" + "logical-termination-point": "ro-2-1-2-op-s-bs-000" }, { "local-id": "151", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-bs-001" + "logical-termination-point": "ro-2-1-2-op-s-bs-001" }, { "local-id": "152", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-bs-002" + "logical-termination-point": "ro-2-1-2-op-s-bs-002" }, { "local-id": "153", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-bs-003" + "logical-termination-point": "ro-2-1-2-op-s-bs-003" }, { "local-id": "154", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-bs-004" + "logical-termination-point": "ro-2-1-2-op-s-bs-004" }, { "local-id": "155", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-bs-005" + "logical-termination-point": "ro-2-1-2-op-s-bs-005" }, { "local-id": "170", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-001" + "logical-termination-point": "ro-2-1-2-op-s-is-001" }, { "local-id": "171", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-002" + "logical-termination-point": "ro-2-1-2-op-s-is-002" }, { "local-id": "172", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-003" + "logical-termination-point": "ro-2-1-2-op-s-is-003" }, { "local-id": "173", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-004" + "logical-termination-point": "ro-2-1-2-op-s-is-004" }, { "local-id": "174", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-005" + "logical-termination-point": "ro-2-1-2-op-s-is-005" }, { "local-id": "175", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-006" + "logical-termination-point": "ro-2-1-2-op-s-is-006" }, { "local-id": "176", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-007" + "logical-termination-point": "ro-2-1-2-op-s-is-007" }, { "local-id": "177", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-008" + "logical-termination-point": "ro-2-1-2-op-s-is-008" }, { "local-id": "178", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-009" + "logical-termination-point": "ro-2-1-2-op-s-is-009" }, { "local-id": "179", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-010" + "logical-termination-point": "ro-2-1-2-op-s-is-010" }, { "local-id": "180", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-011" + "logical-termination-point": "ro-2-1-2-op-s-is-011" }, { "local-id": "181", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-012" + "logical-termination-point": "ro-2-1-2-op-s-is-012" }, { "local-id": "200", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-bs-eatl-2-0-1-000" + "logical-termination-point": "ro-2-1-2-op-c-bs-eatl-2-1-2-000" } ] }, { - "uuid": "ro-2-1-0-op-fc-bm-003", + "uuid": "ro-2-1-2-op-fc-bm-003", "name": [ { "value-name": "ForwardingKind", @@ -4073,17 +4073,17 @@ { "local-id": "000", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-bm-003" + "logical-termination-point": "ro-2-1-2-op-s-bm-003" }, { "local-id": "200", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-bs-ol-2-0-1-000" + "logical-termination-point": "ro-2-1-2-op-c-bs-ol-2-1-2-000" } ] }, { - "uuid": "ro-2-1-0-op-fc-bm-005", + "uuid": "ro-2-1-2-op-fc-bm-005", "name": [ { "value-name": "ForwardingKind", @@ -4098,22 +4098,22 @@ { "local-id": "000", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-bm-012" + "logical-termination-point": "ro-2-1-2-op-s-bm-012" }, { "local-id": "001", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-bm-005" + "logical-termination-point": "ro-2-1-2-op-s-bm-005" }, { "local-id": "200", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-bs-aa-2-0-1-000" + "logical-termination-point": "ro-2-1-2-op-c-bs-aa-2-1-2-000" } ] }, { - "uuid": "ro-2-1-0-op-fc-im-110", + "uuid": "ro-2-1-2-op-fc-im-110", "name": [ { "value-name": "ForwardingKind", @@ -4128,17 +4128,17 @@ { "local-id": "100", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-im-000" + "logical-termination-point": "ro-2-1-2-op-s-im-000" }, { "local-id": "200", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-nr-2-1-0-002" + "logical-termination-point": "ro-2-1-2-op-c-im-nr-2-1-2-002" } ] }, { - "uuid": "ro-2-1-0-op-fc-im-112", + "uuid": "ro-2-1-2-op-fc-im-112", "name": [ { "value-name": "ForwardingKind", @@ -4153,17 +4153,17 @@ { "local-id": "100", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-im-000" + "logical-termination-point": "ro-2-1-2-op-s-im-000" }, { "local-id": "200", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-nr-2-1-0-005" + "logical-termination-point": "ro-2-1-2-op-c-im-nr-2-1-2-005" } ] }, { - "uuid": "ro-2-1-0-op-fc-im-113", + "uuid": "ro-2-1-2-op-fc-im-113", "name": [ { "value-name": "ForwardingKind", @@ -4178,17 +4178,17 @@ { "local-id": "100", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-im-000" + "logical-termination-point": "ro-2-1-2-op-s-im-000" }, { "local-id": "200", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-nr-2-1-0-006" + "logical-termination-point": "ro-2-1-2-op-c-im-nr-2-1-2-006" } ] }, { - "uuid": "ro-2-1-0-op-fc-im-115", + "uuid": "ro-2-1-2-op-fc-im-115", "name": [ { "value-name": "ForwardingKind", @@ -4203,17 +4203,17 @@ { "local-id": "100", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-im-000" + "logical-termination-point": "ro-2-1-2-op-s-im-000" }, { "local-id": "200", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-tar-2-0-1-005" + "logical-termination-point": "ro-2-1-2-op-c-im-tar-2-1-2-005" } ] }, { - "uuid": "ro-2-1-0-op-fc-bm-105", + "uuid": "ro-2-1-2-op-fc-bm-105", "name": [ { "value-name": "ForwardingKind", @@ -4228,22 +4228,22 @@ { "local-id": "000", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-bm-001" + "logical-termination-point": "ro-2-1-2-op-s-bm-001" }, { "local-id": "100", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-im-000" + "logical-termination-point": "ro-2-1-2-op-s-im-000" }, { "local-id": "200", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-bm-ro-2-0-1-001" + "logical-termination-point": "ro-2-1-2-op-c-bm-ro-2-1-2-001" } ] }, { - "uuid": "ro-2-1-0-op-fc-bm-106", + "uuid": "ro-2-1-2-op-fc-bm-106", "name": [ { "value-name": "ForwardingKind", @@ -4258,22 +4258,22 @@ { "local-id": "000", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-bm-001" + "logical-termination-point": "ro-2-1-2-op-s-bm-001" }, { "local-id": "100", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-im-000" + "logical-termination-point": "ro-2-1-2-op-s-im-000" }, { "local-id": "200", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-bm-ro-2-0-1-002" + "logical-termination-point": "ro-2-1-2-op-c-bm-ro-2-1-2-002" } ] }, { - "uuid": "ro-2-1-0-op-fc-bm-107", + "uuid": "ro-2-1-2-op-fc-bm-107", "name": [ { "value-name": "ForwardingKind", @@ -4288,22 +4288,22 @@ { "local-id": "000", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-bm-001" + "logical-termination-point": "ro-2-1-2-op-s-bm-001" }, { "local-id": "100", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-bm-007" + "logical-termination-point": "ro-2-1-2-op-s-bm-007" }, { "local-id": "200", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-bm-ro-2-0-1-003" + "logical-termination-point": "ro-2-1-2-op-c-bm-ro-2-1-2-003" } ] }, { - "uuid": "ro-2-1-0-op-fc-bm-006", + "uuid": "ro-2-1-2-op-fc-bm-006", "name": [ { "value-name": "ForwardingKind", @@ -4318,117 +4318,117 @@ { "local-id": "000", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-bm-009" + "logical-termination-point": "ro-2-1-2-op-s-bm-009" }, { "local-id": "100", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-bm-000" + "logical-termination-point": "ro-2-1-2-op-s-bm-000" }, { "local-id": "101", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-bm-001" + "logical-termination-point": "ro-2-1-2-op-s-bm-001" }, { "local-id": "102", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-bm-002" + "logical-termination-point": "ro-2-1-2-op-s-bm-002" }, { "local-id": "103", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-bm-003" + "logical-termination-point": "ro-2-1-2-op-s-bm-003" }, { "local-id": "105", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-bm-005" + "logical-termination-point": "ro-2-1-2-op-s-bm-005" }, { "local-id": "107", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-bm-007" + "logical-termination-point": "ro-2-1-2-op-s-bm-007" }, { "local-id": "109", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-bm-009" + "logical-termination-point": "ro-2-1-2-op-s-bm-009" }, { "local-id": "111", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-bm-011" + "logical-termination-point": "ro-2-1-2-op-s-bm-011" }, { "local-id": "112", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-bm-012" + "logical-termination-point": "ro-2-1-2-op-s-bm-012" }, { "local-id": "115", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-bm-015" + "logical-termination-point": "ro-2-1-2-op-s-bm-015" }, { "local-id": "130", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-im-000" + "logical-termination-point": "ro-2-1-2-op-s-im-000" }, { "local-id": "141", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-001" + "logical-termination-point": "ro-2-1-2-op-s-is-001" }, { "local-id": "143", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-003" + "logical-termination-point": "ro-2-1-2-op-s-is-003" }, { "local-id": "146", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-006" + "logical-termination-point": "ro-2-1-2-op-s-is-006" }, { "local-id": "147", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-007" + "logical-termination-point": "ro-2-1-2-op-s-is-007" }, { "local-id": "148", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-008" + "logical-termination-point": "ro-2-1-2-op-s-is-008" }, { "local-id": "149", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-009" + "logical-termination-point": "ro-2-1-2-op-s-is-009" }, { "local-id": "150", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-010" + "logical-termination-point": "ro-2-1-2-op-s-is-010" }, { "local-id": "152", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-012" + "logical-termination-point": "ro-2-1-2-op-s-is-012" }, { "local-id": "153", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-013" + "logical-termination-point": "ro-2-1-2-op-s-is-013" }, { "local-id": "200", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-bm-alt-2-0-1-001" + "logical-termination-point": "ro-2-1-2-op-c-bm-alt-2-1-2-001" } ] }, { - "uuid": "ro-2-1-0-op-fc-bm-007", + "uuid": "ro-2-1-2-op-fc-bm-007", "name": [ { "value-name": "ForwardingKind", @@ -4443,27 +4443,27 @@ { "local-id": "000", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-bm-009" + "logical-termination-point": "ro-2-1-2-op-s-bm-009" }, { "local-id": "100", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-bm-013" + "logical-termination-point": "ro-2-1-2-op-s-bm-013" }, { "local-id": "100", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-002" + "logical-termination-point": "ro-2-1-2-op-s-is-002" }, { "local-id": "200", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-bm-alt-2-0-1-002" + "logical-termination-point": "ro-2-1-2-op-c-bm-alt-2-1-2-002" } ] }, { - "uuid": "ro-2-1-0-op-fc-bm-008", + "uuid": "ro-2-1-2-op-fc-bm-008", "name": [ { "value-name": "ForwardingKind", @@ -4478,52 +4478,52 @@ { "local-id": "000", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-bm-009" + "logical-termination-point": "ro-2-1-2-op-s-bm-009" }, { "local-id": "110", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-001" + "logical-termination-point": "ro-2-1-2-op-s-is-001" }, { "local-id": "111", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-003" + "logical-termination-point": "ro-2-1-2-op-s-is-003" }, { "local-id": "112", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-007" + "logical-termination-point": "ro-2-1-2-op-s-is-007" }, { "local-id": "113", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-008" + "logical-termination-point": "ro-2-1-2-op-s-is-008" }, { "local-id": "114", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-009" + "logical-termination-point": "ro-2-1-2-op-s-is-009" }, { "local-id": "115", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-012" + "logical-termination-point": "ro-2-1-2-op-s-is-012" }, { "local-id": "116", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-013" + "logical-termination-point": "ro-2-1-2-op-s-is-013" }, { "local-id": "200", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-bm-alt-2-0-1-003" + "logical-termination-point": "ro-2-1-2-op-c-bm-alt-2-1-2-003" } ] }, { - "uuid": "ro-2-1-0-op-fc-bm-009", + "uuid": "ro-2-1-2-op-fc-bm-009", "name": [ { "value-name": "ForwardingKind", @@ -4538,17 +4538,17 @@ { "local-id": "000", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-bm-009" + "logical-termination-point": "ro-2-1-2-op-s-bm-009" }, { "local-id": "200", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-bm-alt-2-0-1-004" + "logical-termination-point": "ro-2-1-2-op-c-bm-alt-2-1-2-004" } ] }, { - "uuid": "ro-2-1-0-op-fc-bm-010", + "uuid": "ro-2-1-2-op-fc-bm-010", "name": [ { "value-name": "ForwardingKind", @@ -4563,27 +4563,27 @@ { "local-id": "000", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-bm-009" + "logical-termination-point": "ro-2-1-2-op-s-bm-009" }, { "local-id": "100", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-bm-004" + "logical-termination-point": "ro-2-1-2-op-s-bm-004" }, { "local-id": "101", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-003" + "logical-termination-point": "ro-2-1-2-op-s-is-003" }, { "local-id": "200", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-bm-alt-2-0-1-005" + "logical-termination-point": "ro-2-1-2-op-c-bm-alt-2-1-2-005" } ] }, { - "uuid": "ro-2-1-0-op-fc-bm-011", + "uuid": "ro-2-1-2-op-fc-bm-011", "name": [ { "value-name": "ForwardingKind", @@ -4598,17 +4598,17 @@ { "local-id": "000", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-bm-009" + "logical-termination-point": "ro-2-1-2-op-s-bm-009" }, { "local-id": "200", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-bm-alt-2-0-1-001" + "logical-termination-point": "ro-2-1-2-op-c-bm-alt-2-1-2-001" } ] }, { - "uuid": "ro-2-1-0-op-fc-bm-012", + "uuid": "ro-2-1-2-op-fc-bm-012", "name": [ { "value-name": "ForwardingKind", @@ -4623,17 +4623,17 @@ { "local-id": "000", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-bm-009" + "logical-termination-point": "ro-2-1-2-op-s-bm-009" }, { "local-id": "200", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-bm-alt-2-0-1-002" + "logical-termination-point": "ro-2-1-2-op-c-bm-alt-2-1-2-002" } ] }, { - "uuid": "ro-2-1-0-op-fc-bm-013", + "uuid": "ro-2-1-2-op-fc-bm-013", "name": [ { "value-name": "ForwardingKind", @@ -4648,17 +4648,17 @@ { "local-id": "000", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-bm-009" + "logical-termination-point": "ro-2-1-2-op-s-bm-009" }, { "local-id": "200", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-bm-alt-2-0-1-003" + "logical-termination-point": "ro-2-1-2-op-c-bm-alt-2-1-2-003" } ] }, { - "uuid": "ro-2-1-0-op-fc-bm-014", + "uuid": "ro-2-1-2-op-fc-bm-014", "name": [ { "value-name": "ForwardingKind", @@ -4673,17 +4673,17 @@ { "local-id": "000", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-bm-009" + "logical-termination-point": "ro-2-1-2-op-s-bm-009" }, { "local-id": "200", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-bm-alt-2-0-1-004" + "logical-termination-point": "ro-2-1-2-op-c-bm-alt-2-1-2-004" } ] }, { - "uuid": "ro-2-1-0-op-fc-bm-015", + "uuid": "ro-2-1-2-op-fc-bm-015", "name": [ { "value-name": "ForwardingKind", @@ -4698,17 +4698,17 @@ { "local-id": "000", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-bm-009" + "logical-termination-point": "ro-2-1-2-op-s-bm-009" }, { "local-id": "200", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-bm-alt-2-0-1-005" + "logical-termination-point": "ro-2-1-2-op-c-bm-alt-2-1-2-005" } ] }, { - "uuid": "ro-2-1-0-op-fc-is-005", + "uuid": "ro-2-1-2-op-fc-is-005", "name": [ { "value-name": "ForwardingKind", @@ -4723,27 +4723,27 @@ { "local-id": "000", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-is-006" + "logical-termination-point": "ro-2-1-2-op-s-is-006" }, { "local-id": "100", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-001" + "logical-termination-point": "ro-2-1-2-op-s-is-001" }, { "local-id": "101", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-012" + "logical-termination-point": "ro-2-1-2-op-s-is-012" }, { "local-id": "200", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-tar-2-0-1-003" + "logical-termination-point": "ro-2-1-2-op-c-im-tar-2-1-2-003" } ] }, { - "uuid": "ro-2-1-0-op-fc-is-010", + "uuid": "ro-2-1-2-op-fc-is-010", "name": [ { "value-name": "ForwardingKind", @@ -4758,32 +4758,32 @@ { "local-id": "000", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-is-013" + "logical-termination-point": "ro-2-1-2-op-s-is-013" }, { "local-id": "001", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-bm-004" + "logical-termination-point": "ro-2-1-2-op-s-bm-004" }, { "local-id": "003", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-bm-013" + "logical-termination-point": "ro-2-1-2-op-s-bm-013" }, { "local-id": "100", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-003" + "logical-termination-point": "ro-2-1-2-op-s-is-003" }, { "local-id": "200", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-tar-2-0-1-007" + "logical-termination-point": "ro-2-1-2-op-c-im-tar-2-1-2-007" } ] }, { - "uuid": "ro-2-1-0-op-fc-is-006", + "uuid": "ro-2-1-2-op-fc-is-006", "name": [ { "value-name": "ForwardingKind", @@ -4798,52 +4798,52 @@ { "local-id": "000", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-is-007" + "logical-termination-point": "ro-2-1-2-op-s-is-007" }, { "local-id": "001", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-bm-004" + "logical-termination-point": "ro-2-1-2-op-s-bm-004" }, { "local-id": "100", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-002" + "logical-termination-point": "ro-2-1-2-op-s-is-002" }, { "local-id": "200", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-tar-2-0-1-004" + "logical-termination-point": "ro-2-1-2-op-c-im-tar-2-1-2-004" }, { "local-id": "201", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-eatl-2-0-1-004" + "logical-termination-point": "ro-2-1-2-op-c-im-eatl-2-1-2-004" }, { "local-id": "202", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-ol-2-0-1-004" + "logical-termination-point": "ro-2-1-2-op-c-im-ol-2-1-2-004" }, { "local-id": "203", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-aa-2-0-1-004" + "logical-termination-point": "ro-2-1-2-op-c-im-aa-2-1-2-004" }, { "local-id": "204", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-alt-2-0-1-004" + "logical-termination-point": "ro-2-1-2-op-c-im-alt-2-1-2-004" }, { "local-id": "205", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-okm-2-0-1-004" + "logical-termination-point": "ro-2-1-2-op-c-im-okm-2-1-2-004" } ] }, { - "uuid": "ro-2-1-0-op-fc-is-008", + "uuid": "ro-2-1-2-op-fc-is-008", "name": [ { "value-name": "ForwardingKind", @@ -4858,47 +4858,47 @@ { "local-id": "000", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-is-009" + "logical-termination-point": "ro-2-1-2-op-s-is-009" }, { "local-id": "001", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-bm-004" + "logical-termination-point": "ro-2-1-2-op-s-bm-004" }, { "local-id": "100", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-003" + "logical-termination-point": "ro-2-1-2-op-s-is-003" }, { "local-id": "200", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-eatl-2-0-1-004" + "logical-termination-point": "ro-2-1-2-op-c-im-eatl-2-1-2-004" }, { "local-id": "201", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-ol-2-0-1-004" + "logical-termination-point": "ro-2-1-2-op-c-im-ol-2-1-2-004" }, { "local-id": "202", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-aa-2-0-1-004" + "logical-termination-point": "ro-2-1-2-op-c-im-aa-2-1-2-004" }, { "local-id": "203", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-alt-2-0-1-004" + "logical-termination-point": "ro-2-1-2-op-c-im-alt-2-1-2-004" }, { "local-id": "204", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-okm-2-0-1-004" + "logical-termination-point": "ro-2-1-2-op-c-im-okm-2-1-2-004" } ] }, { - "uuid": "ro-2-1-0-op-fc-is-021", + "uuid": "ro-2-1-2-op-fc-is-021", "name": [ { "value-name": "ForwardingKind", @@ -4913,67 +4913,67 @@ { "local-id": "000", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-is-001" + "logical-termination-point": "ro-2-1-2-op-s-is-001" }, { "local-id": "001", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-is-012" + "logical-termination-point": "ro-2-1-2-op-s-is-012" }, { "local-id": "002", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-is-003" + "logical-termination-point": "ro-2-1-2-op-s-is-003" }, { "local-id": "003", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-bm-013" + "logical-termination-point": "ro-2-1-2-op-s-bm-013" }, { "local-id": "100", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-002" + "logical-termination-point": "ro-2-1-2-op-s-is-002" }, { "local-id": "200", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-ro-2-0-1-006" + "logical-termination-point": "ro-2-1-2-op-c-im-ro-2-1-2-006" }, { "local-id": "201", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-tar-2-0-1-006" + "logical-termination-point": "ro-2-1-2-op-c-im-tar-2-1-2-006" }, { "local-id": "202", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-eatl-2-0-1-006" + "logical-termination-point": "ro-2-1-2-op-c-im-eatl-2-1-2-006" }, { "local-id": "203", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-ol-2-0-1-006" + "logical-termination-point": "ro-2-1-2-op-c-im-ol-2-1-2-006" }, { "local-id": "204", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-aa-2-0-1-006" + "logical-termination-point": "ro-2-1-2-op-c-im-aa-2-1-2-006" }, { "local-id": "205", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-alt-2-0-1-006" + "logical-termination-point": "ro-2-1-2-op-c-im-alt-2-1-2-006" }, { "local-id": "206", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-okm-2-0-1-006" + "logical-termination-point": "ro-2-1-2-op-c-im-okm-2-1-2-006" } ] }, { - "uuid": "ro-2-1-0-op-fc-is-022", + "uuid": "ro-2-1-2-op-fc-is-022", "name": [ { "value-name": "ForwardingKind", @@ -4988,67 +4988,67 @@ { "local-id": "000", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-is-001" + "logical-termination-point": "ro-2-1-2-op-s-is-001" }, { "local-id": "001", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-is-012" + "logical-termination-point": "ro-2-1-2-op-s-is-012" }, { "local-id": "002", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-is-003" + "logical-termination-point": "ro-2-1-2-op-s-is-003" }, { "local-id": "003", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-bm-013" + "logical-termination-point": "ro-2-1-2-op-s-bm-013" }, { "local-id": "100", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-010" + "logical-termination-point": "ro-2-1-2-op-s-is-010" }, { "local-id": "200", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-ro-2-0-1-001" + "logical-termination-point": "ro-2-1-2-op-c-im-ro-2-1-2-001" }, { "local-id": "201", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-tar-2-0-1-001" + "logical-termination-point": "ro-2-1-2-op-c-im-tar-2-1-2-001" }, { "local-id": "202", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-eatl-2-0-1-001" + "logical-termination-point": "ro-2-1-2-op-c-im-eatl-2-1-2-001" }, { "local-id": "203", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-ol-2-0-1-001" + "logical-termination-point": "ro-2-1-2-op-c-im-ol-2-1-2-001" }, { "local-id": "204", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-aa-2-0-1-001" + "logical-termination-point": "ro-2-1-2-op-c-im-aa-2-1-2-001" }, { "local-id": "205", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-alt-2-0-1-001" + "logical-termination-point": "ro-2-1-2-op-c-im-alt-2-1-2-001" }, { "local-id": "206", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-okm-2-0-1-001" + "logical-termination-point": "ro-2-1-2-op-c-im-okm-2-1-2-001" } ] }, { - "uuid": "ro-2-1-0-op-fc-is-023", + "uuid": "ro-2-1-2-op-fc-is-023", "name": [ { "value-name": "ForwardingKind", @@ -5063,67 +5063,67 @@ { "local-id": "000", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-is-001" + "logical-termination-point": "ro-2-1-2-op-s-is-001" }, { "local-id": "001", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-is-012" + "logical-termination-point": "ro-2-1-2-op-s-is-012" }, { "local-id": "002", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-is-003" + "logical-termination-point": "ro-2-1-2-op-s-is-003" }, { "local-id": "003", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-bm-013" + "logical-termination-point": "ro-2-1-2-op-s-bm-013" }, { "local-id": "100", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-011" + "logical-termination-point": "ro-2-1-2-op-s-is-011" }, { "local-id": "200", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-ro-2-0-1-002" + "logical-termination-point": "ro-2-1-2-op-c-im-ro-2-1-2-002" }, { "local-id": "201", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-tar-2-0-1-002" + "logical-termination-point": "ro-2-1-2-op-c-im-tar-2-1-2-002" }, { "local-id": "202", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-eatl-2-0-1-002" + "logical-termination-point": "ro-2-1-2-op-c-im-eatl-2-1-2-002" }, { "local-id": "203", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-ol-2-0-1-002" + "logical-termination-point": "ro-2-1-2-op-c-im-ol-2-1-2-002" }, { "local-id": "204", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-aa-2-0-1-002" + "logical-termination-point": "ro-2-1-2-op-c-im-aa-2-1-2-002" }, { "local-id": "205", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-alt-2-0-1-002" + "logical-termination-point": "ro-2-1-2-op-c-im-alt-2-1-2-002" }, { "local-id": "206", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-okm-2-0-1-002" + "logical-termination-point": "ro-2-1-2-op-c-im-okm-2-1-2-002" } ] }, { - "uuid": "ro-2-1-0-op-fc-is-030", + "uuid": "ro-2-1-2-op-fc-is-030", "name": [ { "value-name": "ForwardingKind", @@ -5138,17 +5138,17 @@ { "local-id": "100", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-003" + "logical-termination-point": "ro-2-1-2-op-s-is-003" }, { "local-id": "200", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-bm-ro-2-0-1-002" + "logical-termination-point": "ro-2-1-2-op-c-bm-ro-2-1-2-002" } ] }, { - "uuid": "ro-2-1-0-op-fc-is-035", + "uuid": "ro-2-1-2-op-fc-is-035", "name": [ { "value-name": "ForwardingKind", @@ -5163,17 +5163,17 @@ { "local-id": "100", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-003" + "logical-termination-point": "ro-2-1-2-op-s-is-003" }, { "local-id": "200", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-alt-2-0-1-003" + "logical-termination-point": "ro-2-1-2-op-c-im-alt-2-1-2-003" } ] }, { - "uuid": "ro-2-1-0-op-fc-is-036", + "uuid": "ro-2-1-2-op-fc-is-036", "name": [ { "value-name": "ForwardingKind", @@ -5188,17 +5188,17 @@ { "local-id": "100", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-003" + "logical-termination-point": "ro-2-1-2-op-s-is-003" }, { "local-id": "200", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-okm-2-0-1-003" + "logical-termination-point": "ro-2-1-2-op-c-im-okm-2-1-2-003" } ] }, { - "uuid": "ro-2-1-0-op-fc-is-037", + "uuid": "ro-2-1-2-op-fc-is-037", "name": [ { "value-name": "ForwardingKind", @@ -5213,17 +5213,17 @@ { "local-id": "100", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-003" + "logical-termination-point": "ro-2-1-2-op-s-is-003" }, { "local-id": "200", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-eatl-2-0-1-003" + "logical-termination-point": "ro-2-1-2-op-c-im-eatl-2-1-2-003" } ] }, { - "uuid": "ro-2-1-0-op-fc-is-038", + "uuid": "ro-2-1-2-op-fc-is-038", "name": [ { "value-name": "ForwardingKind", @@ -5238,17 +5238,17 @@ { "local-id": "100", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-003" + "logical-termination-point": "ro-2-1-2-op-s-is-003" }, { "local-id": "200", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-aa-2-0-1-003" + "logical-termination-point": "ro-2-1-2-op-c-im-aa-2-1-2-003" } ] }, { - "uuid": "ro-2-1-0-op-fc-is-039", + "uuid": "ro-2-1-2-op-fc-is-039", "name": [ { "value-name": "ForwardingKind", @@ -5263,17 +5263,17 @@ { "local-id": "100", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-003" + "logical-termination-point": "ro-2-1-2-op-s-is-003" }, { "local-id": "200", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-ol-2-0-1-003" + "logical-termination-point": "ro-2-1-2-op-c-im-ol-2-1-2-003" } ] }, { - "uuid": "ro-2-1-0-op-fc-is-040", + "uuid": "ro-2-1-2-op-fc-is-040", "name": [ { "value-name": "ForwardingKind", @@ -5288,22 +5288,22 @@ { "local-id": "000", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-is-008" + "logical-termination-point": "ro-2-1-2-op-s-is-008" }, { "local-id": "001", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-bm-004" + "logical-termination-point": "ro-2-1-2-op-s-bm-004" }, { "local-id": "100", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-003" + "logical-termination-point": "ro-2-1-2-op-s-is-003" } ] }, { - "uuid": "ro-2-1-0-op-fc-is-042", + "uuid": "ro-2-1-2-op-fc-is-042", "name": [ { "value-name": "ForwardingKind", @@ -5318,62 +5318,62 @@ { "local-id": "000", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-is-001" + "logical-termination-point": "ro-2-1-2-op-s-is-001" }, { "local-id": "001", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-is-012" + "logical-termination-point": "ro-2-1-2-op-s-is-012" }, { "local-id": "002", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-is-013" + "logical-termination-point": "ro-2-1-2-op-s-is-013" }, { "local-id": "100", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-003" + "logical-termination-point": "ro-2-1-2-op-s-is-003" }, { "local-id": "200", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-ro-2-0-1-008" + "logical-termination-point": "ro-2-1-2-op-c-im-ro-2-1-2-008" }, { "local-id": "201", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-tar-2-0-1-008" + "logical-termination-point": "ro-2-1-2-op-c-im-tar-2-1-2-008" }, { "local-id": "202", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-eatl-2-0-1-008" + "logical-termination-point": "ro-2-1-2-op-c-im-eatl-2-1-2-008" }, { "local-id": "203", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-ol-2-0-1-008" + "logical-termination-point": "ro-2-1-2-op-c-im-ol-2-1-2-008" }, { "local-id": "204", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-aa-2-0-1-008" + "logical-termination-point": "ro-2-1-2-op-c-im-aa-2-1-2-008" }, { "local-id": "205", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-alt-2-0-1-008" + "logical-termination-point": "ro-2-1-2-op-c-im-alt-2-1-2-008" }, { "local-id": "206", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-okm-2-0-1-008" + "logical-termination-point": "ro-2-1-2-op-c-im-okm-2-1-2-008" } ] }, { - "uuid": "ro-2-1-0-op-fc-is-043", + "uuid": "ro-2-1-2-op-fc-is-043", "name": [ { "value-name": "ForwardingKind", @@ -5388,17 +5388,17 @@ { "local-id": "100", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-003" + "logical-termination-point": "ro-2-1-2-op-s-is-003" }, { "local-id": "200", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-is-alt-2-0-1-000" + "logical-termination-point": "ro-2-1-2-op-c-is-alt-2-1-2-000" } ] }, { - "uuid": "ro-2-1-0-op-fc-is-044", + "uuid": "ro-2-1-2-op-fc-is-044", "name": [ { "value-name": "ForwardingKind", @@ -5413,67 +5413,67 @@ { "local-id": "000", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-is-001" + "logical-termination-point": "ro-2-1-2-op-s-is-001" }, { "local-id": "001", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-is-012" + "logical-termination-point": "ro-2-1-2-op-s-is-012" }, { "local-id": "002", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-is-013" + "logical-termination-point": "ro-2-1-2-op-s-is-013" }, { "local-id": "100", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-003" + "logical-termination-point": "ro-2-1-2-op-s-is-003" }, { "local-id": "101", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-bm-010" + "logical-termination-point": "ro-2-1-2-op-s-bm-010" }, { "local-id": "200", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-ro-2-0-1-009" + "logical-termination-point": "ro-2-1-2-op-c-im-ro-2-1-2-009" }, { "local-id": "201", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-tar-2-0-1-009" + "logical-termination-point": "ro-2-1-2-op-c-im-tar-2-1-2-009" }, { "local-id": "202", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-eatl-2-0-1-009" + "logical-termination-point": "ro-2-1-2-op-c-im-eatl-2-1-2-009" }, { "local-id": "203", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-ol-2-0-1-009" + "logical-termination-point": "ro-2-1-2-op-c-im-ol-2-1-2-009" }, { "local-id": "204", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-aa-2-0-1-009" + "logical-termination-point": "ro-2-1-2-op-c-im-aa-2-1-2-009" }, { "local-id": "205", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-alt-2-0-1-009" + "logical-termination-point": "ro-2-1-2-op-c-im-alt-2-1-2-009" }, { "local-id": "206", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-okm-2-0-1-009" + "logical-termination-point": "ro-2-1-2-op-c-im-okm-2-1-2-009" } ] }, { - "uuid": "ro-2-1-0-op-fc-is-046", + "uuid": "ro-2-1-2-op-fc-is-046", "name": [ { "value-name": "ForwardingKind", @@ -5488,17 +5488,17 @@ { "local-id": "100", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-003" + "logical-termination-point": "ro-2-1-2-op-s-is-003" }, { "local-id": "200", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-is-alt-2-0-1-000" + "logical-termination-point": "ro-2-1-2-op-c-is-alt-2-1-2-000" } ] }, { - "uuid": "ro-2-1-0-op-fc-is-047", + "uuid": "ro-2-1-2-op-fc-is-047", "name": [ { "value-name": "ForwardingKind", @@ -5513,17 +5513,17 @@ { "local-id": "100", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-003" + "logical-termination-point": "ro-2-1-2-op-s-is-003" }, { "local-id": "200", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-is-alt-2-0-1-000" + "logical-termination-point": "ro-2-1-2-op-c-is-alt-2-1-2-000" } ] }, { - "uuid": "ro-2-1-0-op-fc-is-048", + "uuid": "ro-2-1-2-op-fc-is-048", "name": [ { "value-name": "ForwardingKind", @@ -5538,17 +5538,17 @@ { "local-id": "100", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-003" + "logical-termination-point": "ro-2-1-2-op-s-is-003" }, { "local-id": "200", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-is-alt-2-0-1-000" + "logical-termination-point": "ro-2-1-2-op-c-is-alt-2-1-2-000" } ] }, { - "uuid": "ro-2-1-0-op-fc-is-049", + "uuid": "ro-2-1-2-op-fc-is-049", "name": [ { "value-name": "ForwardingKind", @@ -5563,67 +5563,67 @@ { "local-id": "000", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-is-001" + "logical-termination-point": "ro-2-1-2-op-s-is-001" }, { "local-id": "001", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-is-012" + "logical-termination-point": "ro-2-1-2-op-s-is-012" }, { "local-id": "002", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-is-013" + "logical-termination-point": "ro-2-1-2-op-s-is-013" }, { "local-id": "100", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-003" + "logical-termination-point": "ro-2-1-2-op-s-is-003" }, { "local-id": "101", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-bm-010" + "logical-termination-point": "ro-2-1-2-op-s-bm-010" }, { "local-id": "200", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-ro-2-0-1-000" + "logical-termination-point": "ro-2-1-2-op-c-im-ro-2-1-2-000" }, { "local-id": "201", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-tar-2-0-1-000" + "logical-termination-point": "ro-2-1-2-op-c-im-tar-2-1-2-000" }, { "local-id": "202", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-eatl-2-0-1-000" + "logical-termination-point": "ro-2-1-2-op-c-im-eatl-2-1-2-000" }, { "local-id": "203", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-ol-2-0-1-000" + "logical-termination-point": "ro-2-1-2-op-c-im-ol-2-1-2-000" }, { "local-id": "204", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-aa-2-0-1-000" + "logical-termination-point": "ro-2-1-2-op-c-im-aa-2-1-2-000" }, { "local-id": "205", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-alt-2-0-1-000" + "logical-termination-point": "ro-2-1-2-op-c-im-alt-2-1-2-000" }, { "local-id": "206", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-okm-2-0-1-000" + "logical-termination-point": "ro-2-1-2-op-c-im-okm-2-1-2-000" } ] }, { - "uuid": "ro-2-1-0-op-fc-is-051", + "uuid": "ro-2-1-2-op-fc-is-051", "name": [ { "value-name": "ForwardingKind", @@ -5638,17 +5638,17 @@ { "local-id": "100", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-003" + "logical-termination-point": "ro-2-1-2-op-s-is-003" }, { "local-id": "200", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-is-alt-2-0-1-000" + "logical-termination-point": "ro-2-1-2-op-c-is-alt-2-1-2-000" } ] }, { - "uuid": "ro-2-1-0-op-fc-is-052", + "uuid": "ro-2-1-2-op-fc-is-052", "name": [ { "value-name": "ForwardingKind", @@ -5663,17 +5663,17 @@ { "local-id": "100", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-003" + "logical-termination-point": "ro-2-1-2-op-s-is-003" }, { "local-id": "200", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-is-alt-2-0-1-000" + "logical-termination-point": "ro-2-1-2-op-c-is-alt-2-1-2-000" } ] }, { - "uuid": "ro-2-1-0-op-fc-is-053", + "uuid": "ro-2-1-2-op-fc-is-053", "name": [ { "value-name": "ForwardingKind", @@ -5688,22 +5688,22 @@ { "local-id": "100", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-003" + "logical-termination-point": "ro-2-1-2-op-s-is-003" }, { "local-id": "101", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-bm-010" + "logical-termination-point": "ro-2-1-2-op-s-bm-010" }, { "local-id": "200", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-is-alt-2-0-1-000" + "logical-termination-point": "ro-2-1-2-op-c-is-alt-2-1-2-000" } ] }, { - "uuid": "ro-2-1-0-op-fc-is-060", + "uuid": "ro-2-1-2-op-fc-is-060", "name": [ { "value-name": "ForwardingKind", @@ -5718,22 +5718,22 @@ { "local-id": "000", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", - "logical-termination-point": "ro-2-1-0-op-s-is-003" + "logical-termination-point": "ro-2-1-2-op-s-is-003" }, { "local-id": "100", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-is-003" + "logical-termination-point": "ro-2-1-2-op-s-is-003" }, { "local-id": "101", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", - "logical-termination-point": "ro-2-1-0-op-s-bm-010" + "logical-termination-point": "ro-2-1-2-op-s-bm-010" }, { "local-id": "200", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "ro-2-1-0-op-c-im-tar-2-0-1-007" + "logical-termination-point": "ro-2-1-2-op-c-im-tar-2-1-2-007" } ] } diff --git a/spec/RegistryOffice+forwardings.yaml b/spec/RegistryOffice+forwardings.yaml index 3614ef2..19161f3 100644 --- a/spec/RegistryOffice+forwardings.yaml +++ b/spec/RegistryOffice+forwardings.yaml @@ -1,45 +1,45 @@ forwardings: - forwarding-name: PromptForRegisteringCausesRegistrationRequest - uuid: ro-2-1-0-op-fc-bm-999 + uuid: ro-2-1-2-op-fc-bm-999 forwarding-type: InvariantProcessSnippet management-requests: operation-client-update: - server-name: /v1/register-yourself - uuid: ro-2-1-0-op-s-bm-000 + uuid: ro-2-1-2-op-s-bm-000 fc-port-update: - server-name: /v1/register-yourself - uuid: ro-2-1-0-op-s-bm-000 + uuid: ro-2-1-2-op-s-bm-000 fc-port-deletion: operation-client-deletion: initiating-requests: - server-name: /v1/register-yourself - uuid: ro-2-1-0-op-s-bm-000 + uuid: ro-2-1-2-op-s-bm-000 consequent-requests: - - client-name: RegistryOffice://v1/register-application - uuid: ro-2-1-0-op-c-bm-ro-2-0-1-000 + - client-name: RegistryOffice://v2/register-application + uuid: ro-2-1-2-op-c-bm-ro-2-1-2-000 - forwarding-name: PromptForRegisteringCausesRegistrationRequest2 - uuid: ro-2-1-0-op-fc-bm-000 + uuid: ro-2-1-2-op-fc-bm-000 forwarding-type: InvariantProcessSnippet management-requests: operation-client-update: - server-name: /v1/register-yourself - uuid: ro-2-1-0-op-s-bm-000 + uuid: ro-2-1-2-op-s-bm-000 fc-port-update: - server-name: /v1/register-yourself - uuid: ro-2-1-0-op-s-bm-000 + uuid: ro-2-1-2-op-s-bm-000 fc-port-deletion: operation-client-deletion: initiating-requests: - server-name: /v1/register-yourself - uuid: ro-2-1-0-op-s-bm-000 + uuid: ro-2-1-2-op-s-bm-000 consequent-requests: - - client-name: RegistryOffice://v1/register-application - uuid: ro-2-1-0-op-c-bm-ro-2-0-1-000 + - client-name: RegistryOffice://v2/register-application + uuid: ro-2-1-2-op-c-bm-ro-2-1-2-000 - forwarding-name: PromptForEmbeddingCausesRequestForBequeathingData - uuid: ro-2-1-0-op-fc-bm-001 + uuid: ro-2-1-2-op-fc-bm-001 forwarding-type: InvariantProcessSnippet management-requests: operation-client-update: @@ -48,138 +48,138 @@ forwardings: operation-client-deletion: initiating-requests: - server-name: /v1/embed-yourself - uuid: ro-2-1-0-op-s-bm-001 + uuid: ro-2-1-2-op-s-bm-001 consequent-requests: - client-name: OldRelease://v1/bequeath-your-data-and-die - uuid: ro-2-1-0-op-c-bm-or-1-0-0-000 + uuid: ro-2-1-2-op-c-bm-or-2-1-1-000 - forwarding-name: ServiceRequestCausesLoggingRequest - uuid: ro-2-1-0-op-fc-bm-002 + uuid: ro-2-1-2-op-fc-bm-002 forwarding-type: InvariantProcessSnippet management-requests: operation-client-update: - server-name: /v1/redirect-service-request-information - uuid: ro-2-1-0-op-s-bm-002 + uuid: ro-2-1-2-op-s-bm-002 fc-port-update: - server-name: /v1/redirect-service-request-information - uuid: ro-2-1-0-op-s-bm-002 + uuid: ro-2-1-2-op-s-bm-002 fc-port-deletion: operation-client-deletion: initiating-requests: - server-name: /v1/register-yourself - uuid: ro-2-1-0-op-s-bm-000 + uuid: ro-2-1-2-op-s-bm-000 - server-name: /v1/embed-yourself - uuid: ro-2-1-0-op-s-bm-001 + uuid: ro-2-1-2-op-s-bm-001 - server-name: /v1/redirect-service-request-information - uuid: ro-2-1-0-op-s-bm-002 + uuid: ro-2-1-2-op-s-bm-002 - server-name: /v1/redirect-oam-request-information - uuid: ro-2-1-0-op-s-bm-003 + uuid: ro-2-1-2-op-s-bm-003 - server-name: /v1/end-subscription - uuid: ro-2-1-0-op-s-bm-004 + uuid: ro-2-1-2-op-s-bm-004 - server-name: /v1/inquire-oam-request-approvals - uuid: ro-2-1-0-op-s-bm-005 + uuid: ro-2-1-2-op-s-bm-005 - server-name: /v1/update-client - uuid: ro-2-1-0-op-s-bm-007 + uuid: ro-2-1-2-op-s-bm-007 - server-name: /v1/list-ltps-and-fcs - uuid: ro-2-1-0-op-s-bm-008 + uuid: ro-2-1-2-op-s-bm-008 - server-name: /v1/redirect-topology-change-information - uuid: ro-2-1-0-op-s-bm-009 + uuid: ro-2-1-2-op-s-bm-009 - server-name: /v1/update-operation-key - uuid: ro-2-1-0-op-s-bm-010 + uuid: ro-2-1-2-op-s-bm-010 - server-name: /v1/update-operation-client - uuid: ro-2-1-0-op-s-bm-011 + uuid: ro-2-1-2-op-s-bm-011 - server-name: /v1/inquire-basic-auth-approvals - uuid: ro-2-1-0-op-s-bm-012 + uuid: ro-2-1-2-op-s-bm-012 - server-name: /v1/dispose-remainders-of-deregistered-application - uuid: ro-2-1-0-op-s-bm-013 + uuid: ro-2-1-2-op-s-bm-013 - server-name: /v1/inform-about-preceding-release - uuid: ro-2-1-0-op-s-bm-014 + uuid: ro-2-1-2-op-s-bm-014 - server-name: /v1/update-client-of-subsequent-release - uuid: ro-2-1-0-op-s-bm-015 + uuid: ro-2-1-2-op-s-bm-015 - server-name: /v1/bequeath-your-data-and-die - uuid: ro-2-1-0-op-s-im-000 + uuid: ro-2-1-2-op-s-im-000 - server-name: /v1/start-application-in-generic-representation - uuid: ro-2-1-0-op-s-bs-000 + uuid: ro-2-1-2-op-s-bs-000 - server-name: /v1/inform-about-application - uuid: ro-2-1-0-op-s-bs-001 + uuid: ro-2-1-2-op-s-bs-001 - server-name: /v1/inform-about-application-in-generic-representation - uuid: ro-2-1-0-op-s-bs-002 + uuid: ro-2-1-2-op-s-bs-002 - server-name: /v1/inform-about-release-history - uuid: ro-2-1-0-op-s-bs-003 + uuid: ro-2-1-2-op-s-bs-003 - server-name: /v1/inform-about-release-history-in-generic-representation - uuid: ro-2-1-0-op-s-bs-004 + uuid: ro-2-1-2-op-s-bs-004 - server-name: /docs - uuid: ro-2-1-0-op-s-bs-005 + uuid: ro-2-1-2-op-s-bs-005 - server-name: /v1/register-application - uuid: ro-2-1-0-op-s-is-001 + uuid: ro-2-1-2-op-s-is-001 - server-name: /v1/deregister-application - uuid: ro-2-1-0-op-s-is-002 + uuid: ro-2-1-2-op-s-is-002 - server-name: /v1/regard-updated-approval-status - uuid: ro-2-1-0-op-s-is-003 + uuid: ro-2-1-2-op-s-is-003 - server-name: /v1/list-applications - uuid: ro-2-1-0-op-s-is-004 + uuid: ro-2-1-2-op-s-is-004 - server-name: /v1/list-applications-in-generic-representation - uuid: ro-2-1-0-op-s-is-005 + uuid: ro-2-1-2-op-s-is-005 - server-name: /v1/inquire-application-type-approvals - uuid: ro-2-1-0-op-s-is-006 + uuid: ro-2-1-2-op-s-is-006 - server-name: /v1/notify-deregistrations - uuid: ro-2-1-0-op-s-is-007 + uuid: ro-2-1-2-op-s-is-007 - server-name: /v1/notify-approvals - uuid: ro-2-1-0-op-s-is-008 + uuid: ro-2-1-2-op-s-is-008 - server-name: /v1/notify-withdrawn-approvals - uuid: ro-2-1-0-op-s-is-009 + uuid: ro-2-1-2-op-s-is-009 - server-name: /v1/relay-server-replacement - uuid: ro-2-1-0-op-s-is-010 + uuid: ro-2-1-2-op-s-is-010 - server-name: /v1/relay-operation-update - uuid: ro-2-1-0-op-s-is-011 + uuid: ro-2-1-2-op-s-is-011 - server-name: /v2/register-application - uuid: ro-2-1-0-op-s-is-012 + uuid: ro-2-1-2-op-s-is-012 consequent-requests: - client-name: ExecutionAndTraceLog://v1/record-service-request - uuid: ro-2-1-0-op-c-bs-eatl-2-0-1-000 + uuid: ro-2-1-2-op-c-bs-eatl-2-1-2-000 - forwarding-name: OamRequestCausesLoggingRequest - uuid: ro-2-1-0-op-fc-bm-003 + uuid: ro-2-1-2-op-fc-bm-003 forwarding-type: InvariantProcessSnippet management-requests: operation-client-update: - server-name: /v1/redirect-oam-request-information - uuid: ro-2-1-0-op-s-bm-003 + uuid: ro-2-1-2-op-s-bm-003 fc-port-update: - server-name: /v1/redirect-oam-request-information - uuid: ro-2-1-0-op-s-bm-003 + uuid: ro-2-1-2-op-s-bm-003 fc-port-deletion: operation-client-deletion: initiating-requests: # [all oam requests] consequent-requests: - client-name: OamLog://v1/record-oam-request - uuid: ro-2-1-0-op-c-bs-ol-2-0-1-000 + uuid: ro-2-1-2-op-c-bs-ol-2-1-2-000 - forwarding-name: BasicAuthRequestCausesInquiryForAuthentication - uuid: ro-2-1-0-op-fc-bm-005 + uuid: ro-2-1-2-op-fc-bm-005 forwarding-type: InvariantProcessSnippet management-requests: operation-client-update: - server-name: /v1/inquire-basic-auth-approvals - uuid: ro-2-1-0-op-s-bm-012 + uuid: ro-2-1-2-op-s-bm-012 - server-name: /v1/inquire-oam-request-approvals - uuid: ro-2-1-0-op-s-bm-005 + uuid: ro-2-1-2-op-s-bm-005 fc-port-update: - server-name: /v1/inquire-basic-auth-approvals - uuid: ro-2-1-0-op-s-bm-012 + uuid: ro-2-1-2-op-s-bm-012 - server-name: /v1/inquire-oam-request-approvals - uuid: ro-2-1-0-op-s-bm-005 + uuid: ro-2-1-2-op-s-bm-005 fc-port-deletion: operation-client-deletion: initiating-requests: # [all oam requests] consequent-requests: - - client-name: AdministratorAdministration://v1/approve-oam-request - uuid: ro-2-1-0-op-c-bs-aa-2-0-1-000 + - client-name: AccessAdministration://v1/approve-basic-auth-request + uuid: ro-2-1-2-op-c-bs-aa-2-1-2-000 - forwarding-name: PromptForBequeathingDataCausesNewApplicationBeingRequestedToInquireForApplicationTypeApprovals - uuid: ro-2-1-0-op-fc-im-110 + uuid: ro-2-1-2-op-fc-im-110 forwarding-type: InvariantProcessSnippet management-requests: operation-client-update: @@ -188,13 +188,13 @@ forwardings: operation-client-deletion: initiating-requests: - server-name: /v1/bequeath-your-data-and-die - uuid: ro-2-1-0-op-s-im-000 + uuid: ro-2-1-2-op-s-im-000 consequent-requests: - client-name: NewRelease://v1/inquire-application-type-approvals - uuid: ro-2-1-0-op-c-im-nr-2-1-0-002 + uuid: ro-2-1-2-op-c-im-nr-2-1-2-002 - forwarding-name: PromptForBequeathingDataCausesTransferOfListOfAlreadyRegisteredApplications - uuid: ro-2-1-0-op-fc-im-112 + uuid: ro-2-1-2-op-fc-im-112 forwarding-type: InvariantProcessSnippet management-requests: operation-client-update: @@ -203,13 +203,13 @@ forwardings: operation-client-deletion: initiating-requests: - server-name: /v1/bequeath-your-data-and-die - uuid: ro-2-1-0-op-s-im-000 + uuid: ro-2-1-2-op-s-im-000 consequent-requests: - client-name: NewRelease://v2/register-application - uuid: ro-2-1-0-op-c-im-nr-2-1-0-005 + uuid: ro-2-1-2-op-c-im-nr-2-1-2-005 - forwarding-name: PromptForBequeathingDataCausesTransferOfListOfSubscriptionsForEmbeddingStatusChanges - uuid: ro-2-1-0-op-fc-im-113 + uuid: ro-2-1-2-op-fc-im-113 forwarding-type: InvariantProcessSnippet management-requests: operation-client-update: @@ -218,13 +218,13 @@ forwardings: operation-client-deletion: initiating-requests: - server-name: /v1/bequeath-your-data-and-die - uuid: ro-2-1-0-op-s-im-000 + uuid: ro-2-1-2-op-s-im-000 consequent-requests: - client-name: NewRelease://v1/notify-embedding-status-changes - uuid: ro-2-1-0-op-c-im-nr-2-1-0-006 + uuid: ro-2-1-2-op-c-im-nr-2-1-2-006 - forwarding-name: PromptForBequeathingDataCausesTARbeingRequestedToRedirectInfoAboutApprovalsToNewApplication - uuid: ro-2-1-0-op-fc-im-115 + uuid: ro-2-1-2-op-fc-im-115 forwarding-type: InvariantProcessSnippet management-requests: operation-client-update: @@ -233,522 +233,522 @@ forwardings: operation-client-deletion: initiating-requests: - server-name: /v1/bequeath-your-data-and-die - uuid: ro-2-1-0-op-s-im-000 + uuid: ro-2-1-2-op-s-im-000 consequent-requests: - client-name: TypeApprovalRegister://v1/redirect-info-about-approval-status-changes - uuid: ro-2-1-0-op-c-im-tar-2-0-1-005 + uuid: ro-2-1-2-op-c-im-tar-2-1-2-005 - forwarding-name: PromptForBequeathingDataCausesRequestForBroadcastingInfoAboutServerReplacement - uuid: ro-2-1-0-op-fc-bm-105 + uuid: ro-2-1-2-op-fc-bm-105 forwarding-type: InvariantProcessSnippet management-requests: operation-client-update: - server-name: /v1/embed-yourself - uuid: ro-2-1-0-op-s-bm-001 + uuid: ro-2-1-2-op-s-bm-001 fc-port-update: - server-name: /v1/embed-yourself - uuid: ro-2-1-0-op-s-bm-001 + uuid: ro-2-1-2-op-s-bm-001 fc-port-deletion: operation-client-deletion: initiating-requests: - server-name: /v1/bequeath-your-data-and-die - uuid: ro-2-1-0-op-s-im-000 + uuid: ro-2-1-2-op-s-im-000 consequent-requests: - client-name: RegistryOffice://v1/relay-server-replacement - uuid: ro-2-1-0-op-c-bm-ro-2-0-1-001 + uuid: ro-2-1-2-op-c-bm-ro-2-1-2-001 - forwarding-name: PromptForBequeathingDataCausesRequestForDeregisteringOfOldRelease - uuid: ro-2-1-0-op-fc-bm-106 + uuid: ro-2-1-2-op-fc-bm-106 forwarding-type: InvariantProcessSnippet management-requests: operation-client-update: - server-name: /v1/embed-yourself - uuid: ro-2-1-0-op-s-bm-001 + uuid: ro-2-1-2-op-s-bm-001 fc-port-update: - server-name: /v1/embed-yourself - uuid: ro-2-1-0-op-s-bm-001 + uuid: ro-2-1-2-op-s-bm-001 fc-port-deletion: operation-client-deletion: initiating-requests: - server-name: /v1/bequeath-your-data-and-die - uuid: ro-2-1-0-op-s-im-000 + uuid: ro-2-1-2-op-s-im-000 consequent-requests: - client-name: RegistryOffice://v1/deregister-application - uuid: ro-2-1-0-op-c-bm-ro-2-0-1-002 + uuid: ro-2-1-2-op-c-bm-ro-2-1-2-002 - forwarding-name: PromptingNewReleaseForUpdatingServerCausesRequestForBroadcastingInfoAboutBackwardCompatibleUpdateOfOperation - uuid: ro-2-1-0-op-fc-bm-107 + uuid: ro-2-1-2-op-fc-bm-107 forwarding-type: InvariantProcessSnippet management-requests: operation-client-update: - server-name: /v1/embed-yourself - uuid: ro-2-1-0-op-s-bm-001 + uuid: ro-2-1-2-op-s-bm-001 fc-port-update: - server-name: /v1/embed-yourself - uuid: ro-2-1-0-op-s-bm-001 + uuid: ro-2-1-2-op-s-bm-001 fc-port-deletion: operation-client-deletion: initiating-requests: - server-name: /v1/update-client - uuid: ro-2-1-0-op-s-bm-007 + uuid: ro-2-1-2-op-s-bm-007 consequent-requests: - client-name: RegistryOffice://v1/relay-operation-update - uuid: ro-2-1-0-op-c-bm-ro-2-0-1-003 + uuid: ro-2-1-2-op-c-bm-ro-2-1-2-003 - forwarding-name: ServiceRequestCausesLtpUpdateRequest - uuid: ro-2-1-0-op-fc-bm-006 + uuid: ro-2-1-2-op-fc-bm-006 forwarding-type: InvariantProcessSnippet management-requests: operation-client-update: - server-name: /v1/redirect-topology-change-information - uuid: ro-2-1-0-op-s-bm-009 + uuid: ro-2-1-2-op-s-bm-009 fc-port-update: - server-name: /v1/redirect-topology-change-information - uuid: ro-2-1-0-op-s-bm-009 + uuid: ro-2-1-2-op-s-bm-009 fc-port-deletion: operation-client-deletion: initiating-requests: - server-name: /v1/register-yourself - uuid: ro-2-1-0-op-s-bm-000 + uuid: ro-2-1-2-op-s-bm-000 - server-name: /v1/embed-yourself - uuid: ro-2-1-0-op-s-bm-001 + uuid: ro-2-1-2-op-s-bm-001 - server-name: /v1/redirect-service-request-information - uuid: ro-2-1-0-op-s-bm-002 + uuid: ro-2-1-2-op-s-bm-002 - server-name: /v1/redirect-oam-request-information - uuid: ro-2-1-0-op-s-bm-003 + uuid: ro-2-1-2-op-s-bm-003 - server-name: /v1/inquire-oam-request-approvals - uuid: ro-2-1-0-op-s-bm-005 + uuid: ro-2-1-2-op-s-bm-005 - server-name: /v1/update-client - uuid: ro-2-1-0-op-s-bm-007 + uuid: ro-2-1-2-op-s-bm-007 - server-name: /v1/redirect-topology-change-information - uuid: ro-2-1-0-op-s-bm-009 + uuid: ro-2-1-2-op-s-bm-009 - server-name: /v1/update-operation-client - uuid: ro-2-1-0-op-s-bm-011 + uuid: ro-2-1-2-op-s-bm-011 - server-name: /v1/inquire-basic-auth-approvals - uuid: ro-2-1-0-op-s-bm-012 + uuid: ro-2-1-2-op-s-bm-012 - server-name: /v1/update-client-of-subsequent-release - uuid: ro-2-1-0-op-s-bm-015 + uuid: ro-2-1-2-op-s-bm-015 - server-name: /v1/bequeath-your-data-and-die - uuid: ro-2-1-0-op-s-im-000 + uuid: ro-2-1-2-op-s-im-000 - server-name: /v1/register-application - uuid: ro-2-1-0-op-s-is-001 + uuid: ro-2-1-2-op-s-is-001 - server-name: /v1/regard-updated-approval-status - uuid: ro-2-1-0-op-s-is-003 + uuid: ro-2-1-2-op-s-is-003 - server-name: /v1/inquire-application-type-approvals - uuid: ro-2-1-0-op-s-is-006 + uuid: ro-2-1-2-op-s-is-006 - server-name: /v1/notify-deregistrations - uuid: ro-2-1-0-op-s-is-007 + uuid: ro-2-1-2-op-s-is-007 - server-name: /v1/notify-approvals - uuid: ro-2-1-0-op-s-is-008 + uuid: ro-2-1-2-op-s-is-008 - server-name: /v1/notify-withdrawn-approvals - uuid: ro-2-1-0-op-s-is-009 + uuid: ro-2-1-2-op-s-is-009 - server-name: /v1/relay-server-replacement - uuid: ro-2-1-0-op-s-is-010 + uuid: ro-2-1-2-op-s-is-010 - server-name: /v2/register-application - uuid: ro-2-1-0-op-s-is-012 + uuid: ro-2-1-2-op-s-is-012 - server-name: /v1/notify-embedding-status-changes - uuid: ro-2-1-0-op-s-is-013 + uuid: ro-2-1-2-op-s-is-013 consequent-requests: - client-name: ApplicationLayerTopology://v1/update-ltp - uuid: ro-2-1-0-op-c-bm-alt-2-0-1-001 + uuid: ro-2-1-2-op-c-bm-alt-2-1-2-001 - forwarding-name: ServiceRequestCausesLtpDeletionRequest - uuid: ro-2-1-0-op-fc-bm-007 + uuid: ro-2-1-2-op-fc-bm-007 forwarding-type: InvariantProcessSnippet management-requests: operation-client-update: - server-name: /v1/redirect-topology-change-information - uuid: ro-2-1-0-op-s-bm-009 + uuid: ro-2-1-2-op-s-bm-009 fc-port-update: - server-name: /v1/redirect-topology-change-information - uuid: ro-2-1-0-op-s-bm-009 + uuid: ro-2-1-2-op-s-bm-009 fc-port-deletion: operation-client-deletion: initiating-requests: - server-name: /v1/dispose-remainders-of-deregistered-application - uuid: ro-2-1-0-op-s-bm-013 + uuid: ro-2-1-2-op-s-bm-013 - server-name: /v1/deregister-application - uuid: ro-2-1-0-op-s-is-002 + uuid: ro-2-1-2-op-s-is-002 consequent-requests: - client-name: ApplicationLayerTopology://v1/delete-ltp-and-dependents - uuid: ro-2-1-0-op-c-bm-alt-2-0-1-002 + uuid: ro-2-1-2-op-c-bm-alt-2-1-2-002 - forwarding-name: ServiceRequestCausesFcUpdateRequest - uuid: ro-2-1-0-op-fc-bm-008 + uuid: ro-2-1-2-op-fc-bm-008 forwarding-type: InvariantProcessSnippet management-requests: operation-client-update: - server-name: /v1/redirect-topology-change-information - uuid: ro-2-1-0-op-s-bm-009 + uuid: ro-2-1-2-op-s-bm-009 fc-port-update: - server-name: /v1/redirect-topology-change-information - uuid: ro-2-1-0-op-s-bm-009 + uuid: ro-2-1-2-op-s-bm-009 fc-port-deletion: operation-client-deletion: initiating-requests: - server-name: /v1/register-application - uuid: ro-2-1-0-op-s-is-001 + uuid: ro-2-1-2-op-s-is-001 - server-name: /v1/regard-updated-approval-status - uuid: ro-2-1-0-op-s-is-003 + uuid: ro-2-1-2-op-s-is-003 - server-name: /v1/notify-deregistrations - uuid: ro-2-1-0-op-s-is-007 + uuid: ro-2-1-2-op-s-is-007 - server-name: /v1/notify-approvals - uuid: ro-2-1-0-op-s-is-008 + uuid: ro-2-1-2-op-s-is-008 - server-name: /v1/notify-withdrawn-approvals - uuid: ro-2-1-0-op-s-is-009 + uuid: ro-2-1-2-op-s-is-009 - server-name: /v2/register-application - uuid: ro-2-1-0-op-s-is-012 + uuid: ro-2-1-2-op-s-is-012 - server-name: /v1/notify-embedding-status-changes - uuid: ro-2-1-0-op-s-is-013 + uuid: ro-2-1-2-op-s-is-013 consequent-requests: - client-name: ApplicationLayerTopology://v1/update-fc - uuid: ro-2-1-0-op-c-bm-alt-2-0-1-003 + uuid: ro-2-1-2-op-c-bm-alt-2-1-2-003 - forwarding-name: ServiceRequestCausesFcPortUpdateRequest - uuid: ro-2-1-0-op-fc-bm-009 + uuid: ro-2-1-2-op-fc-bm-009 forwarding-type: InvariantProcessSnippet management-requests: operation-client-update: - server-name: /v1/redirect-topology-change-information - uuid: ro-2-1-0-op-s-bm-009 + uuid: ro-2-1-2-op-s-bm-009 fc-port-update: - server-name: /v1/redirect-topology-change-information - uuid: ro-2-1-0-op-s-bm-009 + uuid: ro-2-1-2-op-s-bm-009 fc-port-deletion: operation-client-deletion: initiating-requests: consequent-requests: - client-name: ApplicationLayerTopology://v1/update-fc-port - uuid: ro-2-1-0-op-c-bm-alt-2-0-1-004 + uuid: ro-2-1-2-op-c-bm-alt-2-1-2-004 - forwarding-name: ServiceRequestCausesFcPortDeletionRequest - uuid: ro-2-1-0-op-fc-bm-010 + uuid: ro-2-1-2-op-fc-bm-010 forwarding-type: InvariantProcessSnippet management-requests: operation-client-update: - server-name: /v1/redirect-topology-change-information - uuid: ro-2-1-0-op-s-bm-009 + uuid: ro-2-1-2-op-s-bm-009 fc-port-update: - server-name: /v1/redirect-topology-change-information - uuid: ro-2-1-0-op-s-bm-009 + uuid: ro-2-1-2-op-s-bm-009 fc-port-deletion: operation-client-deletion: initiating-requests: - server-name: /v1/end-subscription - uuid: ro-2-1-0-op-s-bm-004 + uuid: ro-2-1-2-op-s-bm-004 - server-name: /v1/regard-updated-approval-status - uuid: ro-2-1-0-op-s-is-003 + uuid: ro-2-1-2-op-s-is-003 consequent-requests: - client-name: ApplicationLayerTopology://v1/delete-fc-port - uuid: ro-2-1-0-op-c-bm-alt-2-0-1-005 + uuid: ro-2-1-2-op-c-bm-alt-2-1-2-005 - forwarding-name: OamRequestCausesLtpUpdateRequest - uuid: ro-2-1-0-op-fc-bm-011 + uuid: ro-2-1-2-op-fc-bm-011 forwarding-type: InvariantProcessSnippet management-requests: operation-client-update: - server-name: /v1/redirect-topology-change-information - uuid: ro-2-1-0-op-s-bm-009 + uuid: ro-2-1-2-op-s-bm-009 fc-port-update: - server-name: /v1/redirect-topology-change-information - uuid: ro-2-1-0-op-s-bm-009 + uuid: ro-2-1-2-op-s-bm-009 fc-port-deletion: operation-client-deletion: initiating-requests: consequent-requests: - client-name: ApplicationLayerTopology://v1/update-ltp - uuid: ro-2-1-0-op-c-bm-alt-2-0-1-001 + uuid: ro-2-1-2-op-c-bm-alt-2-1-2-001 - forwarding-name: OamRequestCausesLtpDeletionRequest - uuid: ro-2-1-0-op-fc-bm-012 + uuid: ro-2-1-2-op-fc-bm-012 forwarding-type: InvariantProcessSnippet management-requests: operation-client-update: - server-name: /v1/redirect-topology-change-information - uuid: ro-2-1-0-op-s-bm-009 + uuid: ro-2-1-2-op-s-bm-009 fc-port-update: - server-name: /v1/redirect-topology-change-information - uuid: ro-2-1-0-op-s-bm-009 + uuid: ro-2-1-2-op-s-bm-009 fc-port-deletion: operation-client-deletion: initiating-requests: consequent-requests: - client-name: ApplicationLayerTopology://v1/delete-ltp-and-dependents - uuid: ro-2-1-0-op-c-bm-alt-2-0-1-002 + uuid: ro-2-1-2-op-c-bm-alt-2-1-2-002 - forwarding-name: OamRequestCausesFcUpdateRequest - uuid: ro-2-1-0-op-fc-bm-013 + uuid: ro-2-1-2-op-fc-bm-013 forwarding-type: InvariantProcessSnippet management-requests: operation-client-update: - server-name: /v1/redirect-topology-change-information - uuid: ro-2-1-0-op-s-bm-009 + uuid: ro-2-1-2-op-s-bm-009 fc-port-update: - server-name: /v1/redirect-topology-change-information - uuid: ro-2-1-0-op-s-bm-009 + uuid: ro-2-1-2-op-s-bm-009 fc-port-deletion: operation-client-deletion: initiating-requests: consequent-requests: - client-name: ApplicationLayerTopology://v1/update-fc - uuid: ro-2-1-0-op-c-bm-alt-2-0-1-003 + uuid: ro-2-1-2-op-c-bm-alt-2-1-2-003 - forwarding-name: OamRequestCausesFcPortUpdateRequest - uuid: ro-2-1-0-op-fc-bm-014 + uuid: ro-2-1-2-op-fc-bm-014 forwarding-type: InvariantProcessSnippet management-requests: operation-client-update: - server-name: /v1/redirect-topology-change-information - uuid: ro-2-1-0-op-s-bm-009 + uuid: ro-2-1-2-op-s-bm-009 fc-port-update: - server-name: /v1/redirect-topology-change-information - uuid: ro-2-1-0-op-s-bm-009 + uuid: ro-2-1-2-op-s-bm-009 fc-port-deletion: operation-client-deletion: initiating-requests: consequent-requests: - client-name: ApplicationLayerTopology://v1/update-fc-port - uuid: ro-2-1-0-op-c-bm-alt-2-0-1-004 + uuid: ro-2-1-2-op-c-bm-alt-2-1-2-004 - forwarding-name: OamRequestCausesFcPortDeletionRequest - uuid: ro-2-1-0-op-fc-bm-015 + uuid: ro-2-1-2-op-fc-bm-015 forwarding-type: InvariantProcessSnippet management-requests: operation-client-update: - server-name: /v1/redirect-topology-change-information - uuid: ro-2-1-0-op-s-bm-009 + uuid: ro-2-1-2-op-s-bm-009 fc-port-update: - server-name: /v1/redirect-topology-change-information - uuid: ro-2-1-0-op-s-bm-009 + uuid: ro-2-1-2-op-s-bm-009 fc-port-deletion: operation-client-deletion: initiating-requests: consequent-requests: - client-name: ApplicationLayerTopology://v1/delete-fc-port - uuid: ro-2-1-0-op-c-bm-alt-2-0-1-005 + uuid: ro-2-1-2-op-c-bm-alt-2-1-2-005 - forwarding-name: RegistrationCausesInquiryForApplicationTypeApproval - uuid: ro-2-1-0-op-fc-is-005 + uuid: ro-2-1-2-op-fc-is-005 forwarding-type: InvariantProcessSnippet management-requests: operation-client-update: - server-name: /v1/inquire-application-type-approvals - uuid: ro-2-1-0-op-s-is-006 + uuid: ro-2-1-2-op-s-is-006 fc-port-update: - server-name: /v1/inquire-application-type-approvals - uuid: ro-2-1-0-op-s-is-006 + uuid: ro-2-1-2-op-s-is-006 fc-port-deletion: operation-client-deletion: initiating-requests: - server-name: /v1/register-application - uuid: ro-2-1-0-op-s-is-001 + uuid: ro-2-1-2-op-s-is-001 - server-name: /v2/register-application - uuid: ro-2-1-0-op-s-is-012 + uuid: ro-2-1-2-op-s-is-012 consequent-requests: - client-name: TypeApprovalRegister://v1/regard-application - uuid: ro-2-1-0-op-c-im-tar-2-0-1-003 + uuid: ro-2-1-2-op-c-im-tar-2-1-2-003 - forwarding-name: EmbeddingStatusNotification - uuid: ro-2-1-0-op-fc-is-010 + uuid: ro-2-1-2-op-fc-is-010 forwarding-type: Subscription management-requests: operation-client-update: - server-name: /v1/notify-embedding-status-changes - uuid: ro-2-1-0-op-s-is-013 + uuid: ro-2-1-2-op-s-is-013 fc-port-update: - server-name: /v1/notify-embedding-status-changes - uuid: ro-2-1-0-op-s-is-013 + uuid: ro-2-1-2-op-s-is-013 fc-port-deletion: - server-name: /v1/end-subscription - uuid: ro-2-1-0-op-s-bm-004 + uuid: ro-2-1-2-op-s-bm-004 operation-client-deletion: - server-name: /v1/dispose-remainders-of-deregistered-application - uuid: ro-2-1-0-op-s-bm-013 + uuid: ro-2-1-2-op-s-bm-013 initiating-requests: - server-name: /v1/regard-updated-approval-status - uuid: ro-2-1-0-op-s-is-003 + uuid: ro-2-1-2-op-s-is-003 consequent-requests: - client-name: TypeApprovalRegister://v1/document-embedding-status - uuid: ro-2-1-0-op-c-im-tar-2-0-1-007 + uuid: ro-2-1-2-op-c-im-tar-2-1-2-007 - forwarding-name: DeregistrationNotification # Deprecated, to be deleted with RO v3.0.0 - uuid: ro-2-1-0-op-fc-is-006 + uuid: ro-2-1-2-op-fc-is-006 forwarding-type: Subscription management-requests: operation-client-update: - server-name: /v1/notify-deregistrations - uuid: ro-2-1-0-op-s-is-007 + uuid: ro-2-1-2-op-s-is-007 fc-port-update: - server-name: /v1/notify-deregistrations - uuid: ro-2-1-0-op-s-is-007 + uuid: ro-2-1-2-op-s-is-007 fc-port-deletion: - server-name: /v1/end-subscription - uuid: ro-2-1-0-op-s-bm-004 + uuid: ro-2-1-2-op-s-bm-004 operation-client-deletion: - server-name: /v1/dispose-remainders-of-deregistered-application - uuid: ro-2-1-0-op-s-bm-013 + uuid: ro-2-1-2-op-s-bm-013 initiating-requests: - server-name: /v1/deregister-application - uuid: ro-2-1-0-op-s-is-002 + uuid: ro-2-1-2-op-s-is-002 consequent-requests: - client-name: TypeApprovalRegister://v1/disregard-application - uuid: ro-2-1-0-op-c-im-tar-2-0-1-004 + uuid: ro-2-1-2-op-c-im-tar-2-1-2-004 - client-name: ExecutionAndTraceLog://v1/disregard-application - uuid: ro-2-1-0-op-c-im-eatl-2-0-1-004 + uuid: ro-2-1-2-op-c-im-eatl-2-1-2-004 - client-name: OamLog://v1/disregard-application - uuid: ro-2-1-0-op-c-im-ol-2-0-1-004 + uuid: ro-2-1-2-op-c-im-ol-2-1-2-004 - client-name: AdministratorAdministration://v1/disregard-application - uuid: ro-2-1-0-op-c-im-aa-2-0-1-004 + uuid: ro-2-1-2-op-c-im-aa-2-1-2-004 - client-name: ApplicationLayerTopology://v1/disregard-application - uuid: ro-2-1-0-op-c-im-alt-2-0-1-004 + uuid: ro-2-1-2-op-c-im-alt-2-1-2-004 - client-name: OperationKeyManagement://v1/disregard-application - uuid: ro-2-1-0-op-c-im-okm-2-0-1-004 + uuid: ro-2-1-2-op-c-im-okm-2-1-2-004 - forwarding-name: WithdrawnApprovalNotification # Deprecated, to be deleted with RO v3.0.0 - uuid: ro-2-1-0-op-fc-is-008 + uuid: ro-2-1-2-op-fc-is-008 forwarding-type: Subscription management-requests: operation-client-update: - server-name: /v1/notify-withdrawn-approvals - uuid: ro-2-1-0-op-s-is-009 + uuid: ro-2-1-2-op-s-is-009 fc-port-update: - server-name: /v1/notify-withdrawn-approvals - uuid: ro-2-1-0-op-s-is-009 + uuid: ro-2-1-2-op-s-is-009 fc-port-deletion: - server-name: /v1/end-subscription - uuid: ro-2-1-0-op-s-bm-004 + uuid: ro-2-1-2-op-s-bm-004 operation-client-deletion: - server-name: /v1/dispose-remainders-of-deregistered-application - uuid: ro-2-1-0-op-s-bm-013 + uuid: ro-2-1-2-op-s-bm-013 initiating-requests: - server-name: /v1/regard-updated-approval-status - uuid: ro-2-1-0-op-s-is-003 + uuid: ro-2-1-2-op-s-is-003 consequent-requests: - client-name: ExecutionAndTraceLog://v1/disregard-application - uuid: ro-2-1-0-op-c-im-eatl-2-0-1-004 + uuid: ro-2-1-2-op-c-im-eatl-2-1-2-004 - client-name: OamLog://v1/disregard-application - uuid: ro-2-1-0-op-c-im-ol-2-0-1-004 + uuid: ro-2-1-2-op-c-im-ol-2-1-2-004 - client-name: AdministratorAdministration://v1/disregard-application - uuid: ro-2-1-0-op-c-im-aa-2-0-1-004 + uuid: ro-2-1-2-op-c-im-aa-2-1-2-004 - client-name: ApplicationLayerTopology://v1/disregard-application - uuid: ro-2-1-0-op-c-im-alt-2-0-1-004 + uuid: ro-2-1-2-op-c-im-alt-2-1-2-004 - client-name: OperationKeyManagement://v1/disregard-application - uuid: ro-2-1-0-op-c-im-okm-2-0-1-004 + uuid: ro-2-1-2-op-c-im-okm-2-1-2-004 - forwarding-name: DeRegistrationBroadcast - uuid: ro-2-1-0-op-fc-is-021 + uuid: ro-2-1-2-op-fc-is-021 forwarding-type: Subscription management-requests: operation-client-update: - server-name: /v2/register-application - uuid: ro-2-1-0-op-s-is-012 + uuid: ro-2-1-2-op-s-is-012 fc-port-update: - server-name: /v1/regard-updated-approval-status - uuid: ro-2-1-0-op-s-is-003 + uuid: ro-2-1-2-op-s-is-003 fc-port-deletion: - server-name: /v1/regard-updated-approval-status - uuid: ro-2-1-0-op-s-is-003 + uuid: ro-2-1-2-op-s-is-003 operation-client-deletion: - server-name: /v1/dispose-remainders-of-deregistered-application - uuid: ro-2-1-0-op-s-bm-013 + uuid: ro-2-1-2-op-s-bm-013 initiating-requests: - server-name: /v1/deregister-application - uuid: ro-2-1-0-op-s-is-002 + uuid: ro-2-1-2-op-s-is-002 consequent-requests: - client-name: RegistryOffice://v1/dispose-remainders-of-deregistered-application - uuid: ro-2-1-0-op-c-im-ro-2-0-1-006 + uuid: ro-2-1-2-op-c-im-ro-2-1-2-006 - client-name: TypeApprovalRegister://v1/dispose-remainders-of-deregistered-application - uuid: ro-2-1-0-op-c-im-tar-2-0-1-006 + uuid: ro-2-1-2-op-c-im-tar-2-1-2-006 - client-name: ExecutionAndTraceLog://v1/dispose-remainders-of-deregistered-application - uuid: ro-2-1-0-op-c-im-eatl-2-0-1-006 + uuid: ro-2-1-2-op-c-im-eatl-2-1-2-006 - client-name: OamLog://v1/dispose-remainders-of-deregistered-application - uuid: ro-2-1-0-op-c-im-ol-2-0-1-006 + uuid: ro-2-1-2-op-c-im-ol-2-1-2-006 - client-name: AdministratorAdministration://v1/dispose-remainders-of-deregistered-application - uuid: ro-2-1-0-op-c-im-aa-2-0-1-006 + uuid: ro-2-1-2-op-c-im-aa-2-1-2-006 - client-name: ApplicationLayerTopology://v1/dispose-remainders-of-deregistered-application - uuid: ro-2-1-0-op-c-im-alt-2-0-1-006 + uuid: ro-2-1-2-op-c-im-alt-2-1-2-006 - client-name: OperationKeyManagement://v1/dispose-remainders-of-deregistered-application - uuid: ro-2-1-0-op-c-im-okm-2-0-1-006 + uuid: ro-2-1-2-op-c-im-okm-2-1-2-006 - forwarding-name: ServerReplacementBroadcast - uuid: ro-2-1-0-op-fc-is-022 + uuid: ro-2-1-2-op-fc-is-022 forwarding-type: Subscription management-requests: operation-client-update: - server-name: /v1/register-application - uuid: ro-2-1-0-op-s-is-001 + uuid: ro-2-1-2-op-s-is-001 - server-name: /v2/register-application - uuid: ro-2-1-0-op-s-is-012 + uuid: ro-2-1-2-op-s-is-012 fc-port-update: - server-name: /v1/regard-updated-approval-status - uuid: ro-2-1-0-op-s-is-003 + uuid: ro-2-1-2-op-s-is-003 fc-port-deletion: - server-name: /v1/regard-updated-approval-status - uuid: ro-2-1-0-op-s-is-003 + uuid: ro-2-1-2-op-s-is-003 operation-client-deletion: - server-name: /v1/dispose-remainders-of-deregistered-application - uuid: ro-2-1-0-op-s-bm-013 + uuid: ro-2-1-2-op-s-bm-013 initiating-requests: - server-name: /v1/relay-server-replacement - uuid: ro-2-1-0-op-s-is-010 + uuid: ro-2-1-2-op-s-is-010 consequent-requests: - client-name: RegistryOffice://v1/update-client - uuid: ro-2-1-0-op-c-im-ro-2-0-1-001 + uuid: ro-2-1-2-op-c-im-ro-2-1-2-001 - client-name: TypeApprovalRegister://v1/update-client - uuid: ro-2-1-0-op-c-im-tar-2-0-1-001 + uuid: ro-2-1-2-op-c-im-tar-2-1-2-001 - client-name: ExecutionAndTraceLog://v1/update-client - uuid: ro-2-1-0-op-c-im-eatl-2-0-1-001 + uuid: ro-2-1-2-op-c-im-eatl-2-1-2-001 - client-name: OamLog://v1/update-client - uuid: ro-2-1-0-op-c-im-ol-2-0-1-001 + uuid: ro-2-1-2-op-c-im-ol-2-1-2-001 - client-name: AdministratorAdministration://v1/update-client - uuid: ro-2-1-0-op-c-im-aa-2-0-1-001 + uuid: ro-2-1-2-op-c-im-aa-2-1-2-001 - client-name: ApplicationLayerTopology://v1/update-client - uuid: ro-2-1-0-op-c-im-alt-2-0-1-001 + uuid: ro-2-1-2-op-c-im-alt-2-1-2-001 - client-name: OperationKeyManagement://v1/update-client - uuid: ro-2-1-0-op-c-im-okm-2-0-1-001 + uuid: ro-2-1-2-op-c-im-okm-2-1-2-001 - forwarding-name: OperationUpdateBroadcast - uuid: ro-2-1-0-op-fc-is-023 + uuid: ro-2-1-2-op-fc-is-023 forwarding-type: Subscription management-requests: operation-client-update: - server-name: /v1/register-application - uuid: ro-2-1-0-op-s-is-001 + uuid: ro-2-1-2-op-s-is-001 - server-name: /v2/register-application - uuid: ro-2-1-0-op-s-is-012 + uuid: ro-2-1-2-op-s-is-012 fc-port-update: - server-name: /v1/regard-updated-approval-status - uuid: ro-2-1-0-op-s-is-003 + uuid: ro-2-1-2-op-s-is-003 fc-port-deletion: - server-name: /v1/regard-updated-approval-status - uuid: ro-2-1-0-op-s-is-003 + uuid: ro-2-1-2-op-s-is-003 operation-client-deletion: - server-name: /v1/dispose-remainders-of-deregistered-application - uuid: ro-2-1-0-op-s-bm-013 + uuid: ro-2-1-2-op-s-bm-013 initiating-requests: - server-name: /v1/relay-operation-update - uuid: ro-2-1-0-op-s-is-011 + uuid: ro-2-1-2-op-s-is-011 consequent-requests: - client-name: RegistryOffice://v1/update-operation-client - uuid: ro-2-1-0-op-c-im-ro-2-0-1-002 + uuid: ro-2-1-2-op-c-im-ro-2-1-2-002 - client-name: TypeApprovalRegister://v1/update-operation-client - uuid: ro-2-1-0-op-c-im-tar-2-0-1-002 + uuid: ro-2-1-2-op-c-im-tar-2-1-2-002 - client-name: ExecutionAndTraceLog://v1/update-operation-client - uuid: ro-2-1-0-op-c-im-eatl-2-0-1-002 + uuid: ro-2-1-2-op-c-im-eatl-2-1-2-002 - client-name: OamLog://v1/update-operation-client - uuid: ro-2-1-0-op-c-im-ol-2-0-1-002 + uuid: ro-2-1-2-op-c-im-ol-2-1-2-002 - client-name: AdministratorAdministration://v1/update-operation-client - uuid: ro-2-1-0-op-c-im-aa-2-0-1-002 + uuid: ro-2-1-2-op-c-im-aa-2-1-2-002 - client-name: ApplicationLayerTopology://v1/update-operation-client - uuid: ro-2-1-0-op-c-im-alt-2-0-1-002 + uuid: ro-2-1-2-op-c-im-alt-2-1-2-002 - client-name: OperationKeyManagement://v1/update-operation-client - uuid: ro-2-1-0-op-c-im-okm-2-0-1-002 + uuid: ro-2-1-2-op-c-im-okm-2-1-2-002 - forwarding-name: BarringApplicationCausesDeregisteringOfApplication - uuid: ro-2-1-0-op-fc-is-030 + uuid: ro-2-1-2-op-fc-is-030 forwarding-type: InvariantProcessSnippet management-requests: operation-client-update: @@ -757,14 +757,14 @@ forwardings: operation-client-deletion: initiating-requests: - server-name: /v1/regard-updated-approval-status - uuid: ro-2-1-0-op-s-is-003 + uuid: ro-2-1-2-op-s-is-003 consequent-requests: - client-name: RegistryOffice://v1/deregister-application - uuid: ro-2-1-0-op-c-bm-ro-2-0-1-002 + uuid: ro-2-1-2-op-c-bm-ro-2-1-2-002 - forwarding-name: ApprovingApplicationCausesConnectingWith.Alt - uuid: ro-2-1-0-op-fc-is-035 + uuid: ro-2-1-2-op-fc-is-035 forwarding-type: InvariantProcessSnippet management-requests: operation-client-update: @@ -773,13 +773,13 @@ forwardings: operation-client-deletion: initiating-requests: - server-name: /v1/regard-updated-approval-status - uuid: ro-2-1-0-op-s-is-003 + uuid: ro-2-1-2-op-s-is-003 consequent-requests: - client-name: ALT://v1/regard-application - uuid: ro-2-1-0-op-c-im-alt-2-0-1-003 + uuid: ro-2-1-2-op-c-im-alt-2-1-2-003 - forwarding-name: ApprovingApplicationCausesConnectingWith.Okm - uuid: ro-2-1-0-op-fc-is-036 + uuid: ro-2-1-2-op-fc-is-036 forwarding-type: InvariantProcessSnippet management-requests: operation-client-update: @@ -788,13 +788,13 @@ forwardings: operation-client-deletion: initiating-requests: - server-name: /v1/regard-updated-approval-status - uuid: ro-2-1-0-op-s-is-003 + uuid: ro-2-1-2-op-s-is-003 consequent-requests: - client-name: OKM://v1/regard-application - uuid: ro-2-1-0-op-c-im-okm-2-0-1-003 + uuid: ro-2-1-2-op-c-im-okm-2-1-2-003 - forwarding-name: ApprovingApplicationCausesConnectingWith.Eatl - uuid: ro-2-1-0-op-fc-is-037 + uuid: ro-2-1-2-op-fc-is-037 forwarding-type: InvariantProcessSnippet management-requests: operation-client-update: @@ -803,13 +803,13 @@ forwardings: operation-client-deletion: initiating-requests: - server-name: /v1/regard-updated-approval-status - uuid: ro-2-1-0-op-s-is-003 + uuid: ro-2-1-2-op-s-is-003 consequent-requests: - client-name: EATL://v1/regard-application - uuid: ro-2-1-0-op-c-im-eatl-2-0-1-003 + uuid: ro-2-1-2-op-c-im-eatl-2-1-2-003 - forwarding-name: ApprovingApplicationCausesConnectingWith.Aa - uuid: ro-2-1-0-op-fc-is-038 + uuid: ro-2-1-2-op-fc-is-038 forwarding-type: InvariantProcessSnippet management-requests: operation-client-update: @@ -818,13 +818,13 @@ forwardings: operation-client-deletion: initiating-requests: - server-name: /v1/regard-updated-approval-status - uuid: ro-2-1-0-op-s-is-003 + uuid: ro-2-1-2-op-s-is-003 consequent-requests: - client-name: AA://v1/regard-application - uuid: ro-2-1-0-op-c-im-aa-2-0-1-003 + uuid: ro-2-1-2-op-c-im-aa-2-1-2-003 - forwarding-name: ApprovingApplicationCausesConnectingWith.Ol - uuid: ro-2-1-0-op-fc-is-039 + uuid: ro-2-1-2-op-fc-is-039 forwarding-type: InvariantProcessSnippet management-requests: operation-client-update: @@ -833,69 +833,69 @@ forwardings: operation-client-deletion: initiating-requests: - server-name: /v1/regard-updated-approval-status - uuid: ro-2-1-0-op-s-is-003 + uuid: ro-2-1-2-op-s-is-003 consequent-requests: - client-name: OL://v1/regard-application - uuid: ro-2-1-0-op-c-im-ol-2-0-1-003 + uuid: ro-2-1-2-op-c-im-ol-2-1-2-003 - forwarding-name: ApprovalNotification - uuid: ro-2-1-0-op-fc-is-040 + uuid: ro-2-1-2-op-fc-is-040 forwarding-type: Subscription management-requests: operation-client-update: - server-name: /v1/notify-approvals - uuid: ro-2-1-0-op-s-is-008 + uuid: ro-2-1-2-op-s-is-008 fc-port-update: - server-name: /v1/notify-approvals - uuid: ro-2-1-0-op-s-is-008 + uuid: ro-2-1-2-op-s-is-008 fc-port-deletion: - server-name: /v1/end-subscription - uuid: ro-2-1-0-op-s-bm-004 + uuid: ro-2-1-2-op-s-bm-004 operation-client-deletion: - server-name: /v1/dispose-remainders-of-deregistered-application - uuid: ro-2-1-0-op-s-bm-013 + uuid: ro-2-1-2-op-s-bm-013 initiating-requests: - server-name: /v1/regard-updated-approval-status - uuid: ro-2-1-0-op-s-is-003 + uuid: ro-2-1-2-op-s-is-003 consequent-requests: - forwarding-name: ApprovingApplicationCausesPreparingTheEmbedding.RequestForOldRelease - uuid: ro-2-1-0-op-fc-is-042 + uuid: ro-2-1-2-op-fc-is-042 forwarding-type: ProcessSnippet management-requests: operation-client-update: - server-name: /v2/register-application - uuid: ro-2-1-0-op-s-is-012 + uuid: ro-2-1-2-op-s-is-012 fc-port-update: - server-name: /v2/register-application - uuid: ro-2-1-0-op-s-is-012 + uuid: ro-2-1-2-op-s-is-012 fc-port-deletion: - server-name: /v1/dispose-remainders-of-deregistered-application - uuid: ro-2-1-0-op-s-bm-013 + uuid: ro-2-1-2-op-s-bm-013 operation-client-deletion: - server-name: /v1/dispose-remainders-of-deregistered-application - uuid: ro-2-1-0-op-s-bm-013 + uuid: ro-2-1-2-op-s-bm-013 initiating-requests: - server-name: /v1/regard-updated-approval-status - uuid: ro-2-1-0-op-s-is-003 + uuid: ro-2-1-2-op-s-is-003 consequent-requests: - client-name: RegistryOffice://v1/inform-about-preceding-release - uuid: ro-2-1-0-op-c-im-ro-2-0-1-008 + uuid: ro-2-1-2-op-c-im-ro-2-1-2-008 - client-name: TypeApprovalRegister://v1/inform-about-preceding-release - uuid: ro-2-1-0-op-c-im-tar-2-0-1-008 + uuid: ro-2-1-2-op-c-im-tar-2-1-2-008 - client-name: ExecutionAndTraceLog://v1/inform-about-preceding-release - uuid: ro-2-1-0-op-c-im-eatl-2-0-1-008 + uuid: ro-2-1-2-op-c-im-eatl-2-1-2-008 - client-name: OamLog://v1/inform-about-preceding-release - uuid: ro-2-1-0-op-c-im-ol-2-0-1-008 + uuid: ro-2-1-2-op-c-im-ol-2-1-2-008 - client-name: AdministratorAdministration://v1/inform-about-preceding-release - uuid: ro-2-1-0-op-c-im-aa-2-0-1-008 + uuid: ro-2-1-2-op-c-im-aa-2-1-2-008 - client-name: ApplicationLayerTopology://v1/inform-about-preceding-release - uuid: ro-2-1-0-op-c-im-alt-2-0-1-008 + uuid: ro-2-1-2-op-c-im-alt-2-1-2-008 - client-name: OperationKeyManagement://v1/inform-about-preceding-release - uuid: ro-2-1-0-op-c-im-okm-2-0-1-008 + uuid: ro-2-1-2-op-c-im-okm-2-1-2-008 - forwarding-name: ApprovingApplicationCausesPreparingTheEmbedding.CreateLinkToUpdateNewReleaseClient - uuid: ro-2-1-0-op-fc-is-043 + uuid: ro-2-1-2-op-fc-is-043 forwarding-type: InvariantProcessSnippet management-requests: operation-client-update: @@ -904,50 +904,50 @@ forwardings: operation-client-deletion: initiating-requests: - server-name: /v1/regard-updated-approval-status - uuid: ro-2-1-0-op-s-is-003 + uuid: ro-2-1-2-op-s-is-003 consequent-requests: - client-name: ALT://v1/add-operation-client-to-link - uuid: ro-2-1-0-op-c-is-alt-2-0-1-000 + uuid: ro-2-1-2-op-c-is-alt-2-1-2-000 - forwarding-name: ApprovingApplicationCausesPreparingTheEmbedding.RequestForUpdatingNewReleaseClient - uuid: ro-2-1-0-op-fc-is-044 + uuid: ro-2-1-2-op-fc-is-044 forwarding-type: ProcessSnippet management-requests: operation-client-update: - server-name: /v2/register-application - uuid: ro-2-1-0-op-s-is-012 + uuid: ro-2-1-2-op-s-is-012 fc-port-update: - server-name: /v2/register-application - uuid: ro-2-1-0-op-s-is-012 + uuid: ro-2-1-2-op-s-is-012 fc-port-deletion: - server-name: /v1/dispose-remainders-of-deregistered-application - uuid: ro-2-1-0-op-s-bm-013 + uuid: ro-2-1-2-op-s-bm-013 operation-client-deletion: - server-name: /v1/dispose-remainders-of-deregistered-application - uuid: ro-2-1-0-op-s-bm-013 + uuid: ro-2-1-2-op-s-bm-013 initiating-requests: - server-name: /v1/regard-updated-approval-status - uuid: ro-2-1-0-op-s-is-003 + uuid: ro-2-1-2-op-s-is-003 - server-name: /v1/update-operation-key - uuid: ro-2-1-0-op-s-bm-010 + uuid: ro-2-1-2-op-s-bm-010 consequent-requests: - client-name: RegistryOffice://v1/update-client-of-subsequent-release - uuid: ro-2-1-0-op-c-im-ro-2-0-1-009 + uuid: ro-2-1-2-op-c-im-ro-2-1-2-009 - client-name: TypeApprovalRegister://v1/update-client-of-subsequent-release - uuid: ro-2-1-0-op-c-im-tar-2-0-1-009 + uuid: ro-2-1-2-op-c-im-tar-2-1-2-009 - client-name: ExecutionAndTraceLog://v1/update-client-of-subsequent-release - uuid: ro-2-1-0-op-c-im-eatl-2-0-1-009 + uuid: ro-2-1-2-op-c-im-eatl-2-1-2-009 - client-name: OamLog://v1/update-client-of-subsequent-release - uuid: ro-2-1-0-op-c-im-ol-2-0-1-009 + uuid: ro-2-1-2-op-c-im-ol-2-1-2-009 - client-name: AdministratorAdministration://v1/update-client-of-subsequent-release - uuid: ro-2-1-0-op-c-im-aa-2-0-1-009 + uuid: ro-2-1-2-op-c-im-aa-2-1-2-009 - client-name: ApplicationLayerTopology://v1/update-client-of-subsequent-release - uuid: ro-2-1-0-op-c-im-alt-2-0-1-009 + uuid: ro-2-1-2-op-c-im-alt-2-1-2-009 - client-name: OperationKeyManagement://v1/update-client-of-subsequent-release - uuid: ro-2-1-0-op-c-im-okm-2-0-1-009 + uuid: ro-2-1-2-op-c-im-okm-2-1-2-009 - forwarding-name: ApprovingApplicationCausesPreparingTheEmbedding.CreateLinkForBequeathYourData - uuid: ro-2-1-0-op-fc-is-046 + uuid: ro-2-1-2-op-fc-is-046 forwarding-type: InvariantProcessSnippet management-requests: operation-client-update: @@ -956,13 +956,13 @@ forwardings: operation-client-deletion: initiating-requests: - server-name: /v1/regard-updated-approval-status - uuid: ro-2-1-0-op-s-is-003 + uuid: ro-2-1-2-op-s-is-003 consequent-requests: - client-name: ALT://v1/add-operation-client-to-link - uuid: ro-2-1-0-op-c-is-alt-2-0-1-000 + uuid: ro-2-1-2-op-c-is-alt-2-1-2-000 - forwarding-name: ApprovingApplicationCausesPreparingTheEmbedding.CreateFurtherLinksForTransferringData - uuid: ro-2-1-0-op-fc-is-047 + uuid: ro-2-1-2-op-fc-is-047 forwarding-type: InvariantProcessSnippet management-requests: operation-client-update: @@ -971,13 +971,13 @@ forwardings: operation-client-deletion: initiating-requests: - server-name: /v1/regard-updated-approval-status - uuid: ro-2-1-0-op-s-is-003 + uuid: ro-2-1-2-op-s-is-003 consequent-requests: - client-name: ALT://v1/add-operation-client-to-link - uuid: ro-2-1-0-op-c-is-alt-2-0-1-000 + uuid: ro-2-1-2-op-c-is-alt-2-1-2-000 - forwarding-name: ApprovingApplicationCausesPreparingTheEmbedding.CreateLinkForPromptingEmbedding - uuid: ro-2-1-0-op-fc-is-048 + uuid: ro-2-1-2-op-fc-is-048 forwarding-type: InvariantProcessSnippet management-requests: operation-client-update: @@ -986,55 +986,55 @@ forwardings: operation-client-deletion: initiating-requests: - server-name: /v1/regard-updated-approval-status - uuid: ro-2-1-0-op-s-is-003 + uuid: ro-2-1-2-op-s-is-003 consequent-requests: - client-name: ALT://v1/add-operation-client-to-link - uuid: ro-2-1-0-op-c-is-alt-2-0-1-000 + uuid: ro-2-1-2-op-c-is-alt-2-1-2-000 - forwarding-name: ApprovingApplicationCausesPreparingTheEmbedding.RequestForEmbedding - uuid: ro-2-1-0-op-fc-is-049 + uuid: ro-2-1-2-op-fc-is-049 forwarding-type: ProcessSnippet management-requests: operation-client-update: - server-name: /v1/register-application - uuid: ro-2-1-0-op-s-is-001 + uuid: ro-2-1-2-op-s-is-001 - server-name: /v2/register-application - uuid: ro-2-1-0-op-s-is-012 + uuid: ro-2-1-2-op-s-is-012 fc-port-update: - server-name: /v1/register-application - uuid: ro-2-1-0-op-s-is-001 + uuid: ro-2-1-2-op-s-is-001 - server-name: /v2/register-application - uuid: ro-2-1-0-op-s-is-012 + uuid: ro-2-1-2-op-s-is-012 fc-port-deletion: - server-name: /v1/dispose-remainders-of-deregistered-application - uuid: ro-2-1-0-op-s-bm-013 + uuid: ro-2-1-2-op-s-bm-013 operation-client-deletion: - server-name: /v1/dispose-remainders-of-deregistered-application - uuid: ro-2-1-0-op-s-bm-013 + uuid: ro-2-1-2-op-s-bm-013 initiating-requests: - server-name: /v1/regard-updated-approval-status - uuid: ro-2-1-0-op-s-is-003 + uuid: ro-2-1-2-op-s-is-003 - server-name: /v1/update-operation-key - uuid: ro-2-1-0-op-s-bm-010 + uuid: ro-2-1-2-op-s-bm-010 consequent-requests: - client-name: RegistryOffice://v1/embed-yourself - uuid: ro-2-1-0-op-c-im-ro-2-0-1-000 + uuid: ro-2-1-2-op-c-im-ro-2-1-2-000 - client-name: TypeApprovalRegister://v1/embed-yourself - uuid: ro-2-1-0-op-c-im-tar-2-0-1-000 + uuid: ro-2-1-2-op-c-im-tar-2-1-2-000 - client-name: ExecutionAndTraceLog://v1/embed-yourself - uuid: ro-2-1-0-op-c-im-eatl-2-0-1-000 + uuid: ro-2-1-2-op-c-im-eatl-2-1-2-000 - client-name: OamLog://v1/embed-yourself - uuid: ro-2-1-0-op-c-im-ol-2-0-1-000 + uuid: ro-2-1-2-op-c-im-ol-2-1-2-000 - client-name: AdministratorAdministration://v1/embed-yourself - uuid: ro-2-1-0-op-c-im-aa-2-0-1-000 + uuid: ro-2-1-2-op-c-im-aa-2-1-2-000 - client-name: ApplicationLayerTopology://v1/embed-yourself - uuid: ro-2-1-0-op-c-im-alt-2-0-1-000 + uuid: ro-2-1-2-op-c-im-alt-2-1-2-000 - client-name: OperationKeyManagement://v1/embed-yourself - uuid: ro-2-1-0-op-c-im-okm-2-0-1-000 + uuid: ro-2-1-2-op-c-im-okm-2-1-2-000 - forwarding-name: ApprovingApplicationCausesConnectingToBroadcast.CreateLinkForUpdatingClient - uuid: ro-2-1-0-op-fc-is-051 + uuid: ro-2-1-2-op-fc-is-051 forwarding-type: InvariantProcessSnippet management-requests: operation-client-update: @@ -1043,13 +1043,13 @@ forwardings: operation-client-deletion: initiating-requests: - server-name: /v1/regard-updated-approval-status - uuid: ro-2-1-0-op-s-is-003 + uuid: ro-2-1-2-op-s-is-003 consequent-requests: - client-name: ALT://v1/add-operation-client-to-link - uuid: ro-2-1-0-op-c-is-alt-2-0-1-000 + uuid: ro-2-1-2-op-c-is-alt-2-1-2-000 - forwarding-name: ApprovingApplicationCausesConnectingToBroadcast.CreateLinkForUpdatingOperationClient - uuid: ro-2-1-0-op-fc-is-052 + uuid: ro-2-1-2-op-fc-is-052 forwarding-type: InvariantProcessSnippet management-requests: operation-client-update: @@ -1058,13 +1058,13 @@ forwardings: operation-client-deletion: initiating-requests: - server-name: /v1/regard-updated-approval-status - uuid: ro-2-1-0-op-s-is-003 + uuid: ro-2-1-2-op-s-is-003 consequent-requests: - client-name: ALT://v1/add-operation-client-to-link - uuid: ro-2-1-0-op-c-is-alt-2-0-1-000 + uuid: ro-2-1-2-op-c-is-alt-2-1-2-000 - forwarding-name: ApprovingApplicationCausesConnectingToBroadcast.CreateLinkForDisposingRemainders - uuid: ro-2-1-0-op-fc-is-053 + uuid: ro-2-1-2-op-fc-is-053 forwarding-type: InvariantProcessSnippet management-requests: operation-client-update: @@ -1073,30 +1073,30 @@ forwardings: operation-client-deletion: initiating-requests: - server-name: /v1/regard-updated-approval-status - uuid: ro-2-1-0-op-s-is-003 + uuid: ro-2-1-2-op-s-is-003 - server-name: /v1/update-operation-key - uuid: ro-2-1-0-op-s-bm-010 + uuid: ro-2-1-2-op-s-bm-010 consequent-requests: - client-name: ALT://v1/add-operation-client-to-link - uuid: ro-2-1-0-op-c-is-alt-2-0-1-000 + uuid: ro-2-1-2-op-c-is-alt-2-1-2-000 - forwarding-name: ApprovingApplicationCausesResponding - uuid: ro-2-1-0-op-fc-is-060 + uuid: ro-2-1-2-op-fc-is-060 forwarding-type: InvariantProcessSnippet management-requests: operation-client-update: - server-name: /v1/regard-updated-approval-status - uuid: ro-2-1-0-op-s-is-003 + uuid: ro-2-1-2-op-s-is-003 fc-port-update: - server-name: /v1/regard-updated-approval-status - uuid: ro-2-1-0-op-s-is-003 + uuid: ro-2-1-2-op-s-is-003 fc-port-deletion: operation-client-deletion: initiating-requests: - server-name: /v1/regard-updated-approval-status - uuid: ro-2-1-0-op-s-is-003 + uuid: ro-2-1-2-op-s-is-003 - server-name: /v1/update-operation-key - uuid: ro-2-1-0-op-s-bm-010 + uuid: ro-2-1-2-op-s-bm-010 consequent-requests: - client-name: TAR://v1/document-embedding-status - uuid: ro-2-1-0-op-c-im-tar-2-0-1-007 + uuid: ro-2-1-2-op-c-im-tar-2-1-2-007 diff --git a/spec/RegistryOffice+profileInstances.yaml b/spec/RegistryOffice+profileInstances.yaml index 7fbbce8..40bc928 100644 --- a/spec/RegistryOffice+profileInstances.yaml +++ b/spec/RegistryOffice+profileInstances.yaml @@ -1,225 +1,225 @@ profile-instances: - profile-name: 'ActionProfile' - uuid: 'ro-2-1-0-action-p-000' + uuid: 'ro-2-1-2-action-p-000' capability: operation-name: '/v1/start-application-in-generic-representation' label: 'Inform about Application' display-in-new-browser-window: false configuration: - consequent-operation-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bs-002/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name' + consequent-operation-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-bs-002/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name' - profile-name: 'ActionProfile' - uuid: 'ro-2-1-0-action-p-001' + uuid: 'ro-2-1-2-action-p-001' capability: operation-name: '/v1/inform-about-application-in-generic-representation' label: 'Release History' display-in-new-browser-window: false configuration: - consequent-operation-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bs-004/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name' + consequent-operation-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-bs-004/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name' - profile-name: 'ActionProfile' - uuid: 'ro-2-1-0-action-p-002' + uuid: 'ro-2-1-2-action-p-002' capability: operation-name: '/v1/inform-about-application-in-generic-representation' label: 'API Documentation' display-in-new-browser-window: true configuration: - consequent-operation-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bs-005/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name' + consequent-operation-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-bs-005/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name' - profile-name: 'ActionProfile' - uuid: 'ro-2-1-0-action-p-003' + uuid: 'ro-2-1-2-action-p-003' capability: operation-name: '/v1/start-application-in-generic-representation' label: 'List Registerted Applications' display-in-new-browser-window: false configuration: - consequent-operation-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-is-005/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name' + consequent-operation-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-is-005/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name' - profile-name: 'GenericResponseProfile' - uuid: 'ro-2-1-0-response-p-000' + uuid: 'ro-2-1-2-response-p-000' capability: operation-name: '/v1/start-application-in-generic-representation' static-field-name: 'applicationName' description: 'Own application name' datatype: 'string' configuration: - value-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name' + value-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name' - profile-name: 'GenericResponseProfile' - uuid: 'ro-2-1-0-response-p-001' + uuid: 'ro-2-1-2-response-p-001' capability: operation-name: '/v1/inform-about-application-in-generic-representation' static-field-name: 'applicationName' description: 'Name of this application' datatype: 'string' configuration: - value-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name' + value-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name' - profile-name: 'GenericResponseProfile' - uuid: 'ro-2-1-0-response-p-002' + uuid: 'ro-2-1-2-response-p-002' capability: operation-name: '/v1/inform-about-application-in-generic-representation' static-field-name: 'releaseNumber' description: 'Number of this release' datatype: 'string' configuration: - value-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number' + value-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number' - profile-name: 'GenericResponseProfile' - uuid: 'ro-2-1-0-response-p-003' + uuid: 'ro-2-1-2-response-p-003' capability: operation-name: '/v1/inform-about-application-in-generic-representation' static-field-name: 'applicationPurpose' description: 'Purpose of this application' datatype: 'string' configuration: - value-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-purpose' + value-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-purpose' - profile-name: 'GenericResponseProfile' - uuid: 'ro-2-1-0-response-p-004' + uuid: 'ro-2-1-2-response-p-004' capability: operation-name: '/v1/inform-about-application-in-generic-representation' static-field-name: 'dataUpdatePeriod' description: 'Period of updating the data inside this application' datatype: 'string' configuration: - value-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/data-update-period' + value-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/data-update-period' - profile-name: 'GenericResponseProfile' - uuid: 'ro-2-1-0-response-p-005' + uuid: 'ro-2-1-2-response-p-005' capability: operation-name: '/v1/inform-about-application-in-generic-representation' static-field-name: 'ownerName' description: 'Name of the ApplicationOwner' datatype: 'string' configuration: - value-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/owner-name' + value-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/owner-name' - profile-name: 'GenericResponseProfile' - uuid: 'ro-2-1-0-response-p-006' + uuid: 'ro-2-1-2-response-p-006' capability: operation-name: '/v1/inform-about-application-in-generic-representation' static-field-name: 'ownerEmailAddress' description: 'Email address of the ApplicationOwner' datatype: 'string' configuration: - value-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/owner-email-address' + value-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/owner-email-address' - profile-name: 'GenericResponseProfile' - uuid: 'ro-2-1-0-response-p-007' + uuid: 'ro-2-1-2-response-p-007' capability: operation-name: '/v1/inform-about-release-history-in-generic-representation' - field-name-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=0/release-number' + field-name-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=0/release-number' description: 'Represents the first entry in the list of releases' datatype: string configuration: - value-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=0/changes' + value-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=0/changes' - profile-name: 'GenericResponseProfile' - uuid: 'ro-2-1-0-response-p-008' + uuid: 'ro-2-1-2-response-p-008' capability: operation-name: '/v1/list-applications-in-generic-representation' - field-name-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-ro-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name' + field-name-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-ro-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name' description: 'List of release numbers and changes' datatype: 'string' configuration: - value-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-ro-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number' + value-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-ro-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number' - profile-name: 'GenericResponseProfile' - uuid: 'ro-2-1-0-response-p-009' + uuid: 'ro-2-1-2-response-p-009' capability: operation-name: '/v1/list-applications-in-generic-representation' - field-name-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-tar-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name' + field-name-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-tar-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name' description: 'List of registered application names and release numbers' datatype: 'string' configuration: - value-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-tar-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number' + value-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-tar-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number' - profile-name: 'GenericResponseProfile' - uuid: 'ro-2-1-0-response-p-010' + uuid: 'ro-2-1-2-response-p-010' capability: operation-name: '/v1/list-applications-in-generic-representation' - field-name-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-eatl-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name' + field-name-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-eatl-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name' description: 'List of registered application names and release numbers' datatype: 'string' configuration: - value-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-eatl-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number' + value-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-eatl-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number' - profile-name: 'GenericResponseProfile' - uuid: 'ro-2-1-0-response-p-011' + uuid: 'ro-2-1-2-response-p-011' capability: operation-name: '/v1/list-applications-in-generic-representation' - field-name-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-ol-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name' + field-name-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-ol-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name' description: 'List of registered application names and release numbers' datatype: 'string' configuration: - value-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-ol-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number' + value-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-ol-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number' - profile-name: 'GenericResponseProfile' - uuid: 'ro-2-1-0-response-p-012' + uuid: 'ro-2-1-2-response-p-012' capability: operation-name: '/v1/list-applications-in-generic-representation' - field-name-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-aa-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name' + field-name-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-aa-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name' description: 'List of registered application names and release numbers' datatype: 'string' configuration: - value-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-aa-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number' + value-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-aa-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number' - profile-name: 'GenericResponseProfile' - uuid: 'ro-2-1-0-response-p-013' + uuid: 'ro-2-1-2-response-p-013' capability: operation-name: '/v1/list-applications-in-generic-representation' - field-name-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-alt-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name' + field-name-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-alt-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name' description: 'List of registered application names and release numbers' datatype: 'string' configuration: - value-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-alt-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number' + value-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-alt-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number' - profile-name: 'GenericResponseProfile' - uuid: 'ro-2-1-0-response-p-014' + uuid: 'ro-2-1-2-response-p-014' capability: operation-name: '/v1/list-applications-in-generic-representation' - field-name-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-okm-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name' + field-name-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-okm-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name' description: 'List of registered application names and release numbers' datatype: 'string' configuration: - value-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-okm-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number' + value-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-okm-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number' - profile-name: 'GenericResponseProfile' - uuid: 'ro-2-1-0-response-p-016' + uuid: 'ro-2-1-2-response-p-016' capability: operation-name: '/v1/inform-about-release-history-in-generic-representation' - field-name-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=1/release-number' + field-name-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=1/release-number' description: 'Represents v2.0.1' datatype: string configuration: - value-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=1/changes' + value-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=1/changes' - profile-name: 'GenericResponseProfile' - uuid: 'ro-2-1-0-response-p-017' + uuid: 'ro-2-1-2-response-p-017' capability: operation-name: '/v1/inform-about-release-history-in-generic-representation' - field-name-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=2/release-number' - description: 'Represents v2.1.1' + field-name-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=2/release-number' + description: 'Represents v2.1.2' datatype: string configuration: - value-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=2/changes' + value-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=2/changes' - profile-name: 'GenericResponseProfile' - uuid: 'ro-2-1-0-response-p-018' + uuid: 'ro-2-1-2-response-p-018' capability: operation-name: '/v1/inform-about-release-history-in-generic-representation' - field-name-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=3/release-number' + field-name-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=3/release-number' description: 'Represents v2.1.2' datatype: string configuration: - value-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=3/changes' + value-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=3/changes' - profile-name: 'FileProfile' - uuid: 'ro-2-1-0-file-p-000' + uuid: 'ro-2-1-2-file-p-000' capability: file-identifier: 'LOADfile' file-description: 'Application name, release number, registration time stamp, preceding-application-name and preceding-release-number' @@ -229,7 +229,7 @@ profile-instances: - profile-name: 'IntegerProfile' - uuid: 'ro-2-1-0-integer-p-000' + uuid: 'ro-2-1-2-integer-p-000' capability: integer-name: 'maximumWaitTimeToReceiveOperationKey' purpose: 'Creating a Link in ALT was successful if an OperationKey could be received. This attribute limits waiting for the OperationKey to be received.' @@ -240,7 +240,7 @@ profile-instances: integer-value: 500 - profile-name: 'IntegerProfile' - uuid: 'ro-2-1-0-integer-p-001' + uuid: 'ro-2-1-2-integer-p-001' capability: integer-name: 'maximumNumberOfAttemptsToCreateLink' purpose: 'Creating a Link in ALT may fail because background processes are not finished. This attribute limits the number of attempts to create the Link.' @@ -251,7 +251,7 @@ profile-instances: integer-value: 5 - profile-name: 'IntegerProfile' - uuid: 'ro-2-1-0-integer-p-010' + uuid: 'ro-2-1-2-integer-p-010' capability: integer-name: 'waitTimeToApprove' unit: 'second' diff --git a/spec/RegistryOffice+services.yaml b/spec/RegistryOffice+services.yaml index 83a67e2..791659e 100644 --- a/spec/RegistryOffice+services.yaml +++ b/spec/RegistryOffice+services.yaml @@ -4,89 +4,89 @@ servers: own-oam: basic: - operation-name: /v1/register-yourself - uuid: ro-2-1-0-op-s-bm-000 + uuid: ro-2-1-2-op-s-bm-000 - operation-name: /v1/embed-yourself - uuid: ro-2-1-0-op-s-bm-001 + uuid: ro-2-1-2-op-s-bm-001 - operation-name: /v1/redirect-service-request-information - uuid: ro-2-1-0-op-s-bm-002 + uuid: ro-2-1-2-op-s-bm-002 - operation-name: /v1/redirect-oam-request-information - uuid: ro-2-1-0-op-s-bm-003 + uuid: ro-2-1-2-op-s-bm-003 - operation-name: /v1/end-subscription - uuid: ro-2-1-0-op-s-bm-004 + uuid: ro-2-1-2-op-s-bm-004 - operation-name: /v1/inquire-oam-request-approvals - uuid: ro-2-1-0-op-s-bm-005 + uuid: ro-2-1-2-op-s-bm-005 - operation-name: /v1/update-client - uuid: ro-2-1-0-op-s-bm-007 + uuid: ro-2-1-2-op-s-bm-007 - operation-name: /v1/list-ltps-and-fcs - uuid: ro-2-1-0-op-s-bm-008 + uuid: ro-2-1-2-op-s-bm-008 - operation-name: /v1/redirect-topology-change-information - uuid: ro-2-1-0-op-s-bm-009 + uuid: ro-2-1-2-op-s-bm-009 - operation-name: /v1/update-operation-key - uuid: ro-2-1-0-op-s-bm-010 + uuid: ro-2-1-2-op-s-bm-010 - operation-name: /v1/update-operation-client - uuid: ro-2-1-0-op-s-bm-011 + uuid: ro-2-1-2-op-s-bm-011 - operation-name: /v1/inquire-basic-auth-approvals - uuid: ro-2-1-0-op-s-bm-012 + uuid: ro-2-1-2-op-s-bm-012 - operation-name: /v1/dispose-remainders-of-deregistered-application - uuid: ro-2-1-0-op-s-bm-013 + uuid: ro-2-1-2-op-s-bm-013 - operation-name: /v1/inform-about-preceding-release - uuid: ro-2-1-0-op-s-bm-014 + uuid: ro-2-1-2-op-s-bm-014 - operation-name: /v1/update-client-of-subsequent-release - uuid: ro-2-1-0-op-s-bm-015 + uuid: ro-2-1-2-op-s-bm-015 individual: - operation-name: /v1/bequeath-your-data-and-die - uuid: ro-2-1-0-op-s-im-000 + uuid: ro-2-1-2-op-s-im-000 service: basic: - operation-name: /v1/start-application-in-generic-representation - uuid: ro-2-1-0-op-s-bs-000 + uuid: ro-2-1-2-op-s-bs-000 - operation-name: /v1/inform-about-application - uuid: ro-2-1-0-op-s-bs-001 + uuid: ro-2-1-2-op-s-bs-001 - operation-name: /v1/inform-about-application-in-generic-representation - uuid: ro-2-1-0-op-s-bs-002 + uuid: ro-2-1-2-op-s-bs-002 - operation-name: /v1/inform-about-release-history - uuid: ro-2-1-0-op-s-bs-003 + uuid: ro-2-1-2-op-s-bs-003 - operation-name: /v1/inform-about-release-history-in-generic-representation - uuid: ro-2-1-0-op-s-bs-004 + uuid: ro-2-1-2-op-s-bs-004 - operation-name: /docs - uuid: ro-2-1-0-op-s-bs-005 + uuid: ro-2-1-2-op-s-bs-005 individual: - operation-name: /v1/register-application - uuid: ro-2-1-0-op-s-is-001 + uuid: ro-2-1-2-op-s-is-001 - operation-name: /v1/deregister-application - uuid: ro-2-1-0-op-s-is-002 + uuid: ro-2-1-2-op-s-is-002 - operation-name: /v1/regard-updated-approval-status - uuid: ro-2-1-0-op-s-is-003 + uuid: ro-2-1-2-op-s-is-003 - operation-name: /v1/list-applications - uuid: ro-2-1-0-op-s-is-004 + uuid: ro-2-1-2-op-s-is-004 - operation-name: /v1/list-applications-in-generic-representation - uuid: ro-2-1-0-op-s-is-005 + uuid: ro-2-1-2-op-s-is-005 - operation-name: /v1/inquire-application-type-approvals - uuid: ro-2-1-0-op-s-is-006 + uuid: ro-2-1-2-op-s-is-006 - operation-name: /v1/notify-deregistrations - uuid: ro-2-1-0-op-s-is-007 + uuid: ro-2-1-2-op-s-is-007 - operation-name: /v1/notify-approvals - uuid: ro-2-1-0-op-s-is-008 + uuid: ro-2-1-2-op-s-is-008 - operation-name: /v1/notify-withdrawn-approvals - uuid: ro-2-1-0-op-s-is-009 + uuid: ro-2-1-2-op-s-is-009 - operation-name: /v1/relay-server-replacement - uuid: ro-2-1-0-op-s-is-010 + uuid: ro-2-1-2-op-s-is-010 - operation-name: /v1/relay-operation-update - uuid: ro-2-1-0-op-s-is-011 + uuid: ro-2-1-2-op-s-is-011 - operation-name: /v2/register-application - uuid: ro-2-1-0-op-s-is-012 + uuid: ro-2-1-2-op-s-is-012 - operation-name: /v1/notify-embedding-status-changes - uuid: ro-2-1-0-op-s-is-013 + uuid: ro-2-1-2-op-s-is-013 http-server: own-application-name: RegistryOffice - own-release-number: 2.1.1 - uuid: ro-2-1-0-http-s-000 + own-release-number: 2.1.2 + uuid: ro-2-1-2-http-s-000 tcp-server: - description: Without TLS layer local-protocol: http own-ip-address: 127.0.0.1 - own-tcp-port: 3024 - uuid: ro-2-1-0-tcp-s-000 + own-tcp-port: 3031 + uuid: ro-2-1-2-tcp-s-000 clients: @@ -94,17 +94,17 @@ clients: - http-client: application-name: RegistryOffice release-number: 2.0.1 - uuid: ro-2-1-0-http-c-or-2-0-1-000 + uuid: ro-2-1-2-http-c-or-2-1-1-000 tcp-client: remote-protocol: http ip-address: 127.0.0.1 - tcp-port: 3008 - uuid: ro-2-1-0-tcp-c-or-2-0-1-000 + tcp-port: 3024 + uuid: ro-2-1-2-tcp-c-or-2-1-1-000 operation-clients: own-oam: basic: - operation-name: /v1/bequeath-your-data-and-die - uuid: ro-2-1-0-op-c-bm-or-2-0-1-000 + uuid: ro-2-1-2-op-c-bm-or-2-1-1-000 individual: service: basic: @@ -113,22 +113,22 @@ clients: - http-client: application-name: NewRelease release-number: 2.1.0 - uuid: ro-2-1-0-http-c-nr-2-1-0-000 + uuid: ro-2-1-2-http-c-nr-2-1-2-000 tcp-client: remote-protocol: http ip-address: 127.0.0.1 - tcp-port: 3024 - uuid: ro-2-1-0-tcp-c-nr-2-1-0-000 + tcp-port: 3031 + uuid: ro-2-1-2-tcp-c-nr-2-1-2-000 operation-clients: own-oam: basic: individual: - operation-name: /v1/inquire-application-type-approvals - uuid: ro-2-1-0-op-c-im-nr-2-1-0-002 + uuid: ro-2-1-2-op-c-im-nr-2-1-2-002 - operation-name: /v2/register-application - uuid: ro-2-1-0-op-c-im-nr-2-1-0-005 + uuid: ro-2-1-2-op-c-im-nr-2-1-2-005 - operation-name: /v1/notify-embedding-status-changes - uuid: ro-2-1-0-op-c-im-nr-2-1-0-006 + uuid: ro-2-1-2-op-c-im-nr-2-1-2-006 service: basic: individual: @@ -136,36 +136,36 @@ clients: - http-client: application-name: RegistryOffice release-number: 2.0.1 - uuid: ro-2-1-0-http-c-ro-2-0-1-000 + uuid: ro-2-1-2-http-c-ro-2-1-2-000 tcp-client: remote-protocol: http ip-address: 127.0.0.1 - tcp-port: 3008 - uuid: ro-2-1-0-tcp-c-ro-2-0-1-000 + tcp-port: 3031 + uuid: ro-2-1-2-tcp-c-ro-2-1-2-000 operation-clients: own-oam: basic: - - operation-name: /v1/register-application - uuid: ro-2-1-0-op-c-bm-ro-2-0-1-000 + - operation-name: /v2/register-application + uuid: ro-2-1-2-op-c-bm-ro-2-1-2-000 - operation-name: /v1/relay-server-replacement - uuid: ro-2-1-0-op-c-bm-ro-2-0-1-001 + uuid: ro-2-1-2-op-c-bm-ro-2-1-2-001 - operation-name: /v1/deregister-application - uuid: ro-2-1-0-op-c-bm-ro-2-0-1-002 + uuid: ro-2-1-2-op-c-bm-ro-2-1-2-002 - operation-name: /v1/relay-operation-update - uuid: ro-2-1-0-op-c-bm-ro-2-0-1-003 + uuid: ro-2-1-2-op-c-bm-ro-2-1-2-003 individual: - operation-name: /v1/embed-yourself - uuid: ro-2-1-0-op-c-im-ro-2-0-1-000 + uuid: ro-2-1-2-op-c-im-ro-2-1-2-000 - operation-name: /v1/update-client - uuid: ro-2-1-0-op-c-im-ro-2-0-1-001 + uuid: ro-2-1-2-op-c-im-ro-2-1-2-001 - operation-name: /v1/update-operation-client - uuid: ro-2-1-0-op-c-im-ro-2-0-1-002 + uuid: ro-2-1-2-op-c-im-ro-2-1-2-002 - operation-name: /v1/dispose-remainders-of-deregistered-application - uuid: ro-2-1-0-op-c-im-ro-2-0-1-006 + uuid: ro-2-1-2-op-c-im-ro-2-1-2-006 - operation-name: /v1/inform-about-preceding-release - uuid: ro-2-1-0-op-c-im-ro-2-0-1-008 + uuid: ro-2-1-2-op-c-im-ro-2-1-2-008 - operation-name: /v1/update-client-of-subsequent-release - uuid: ro-2-1-0-op-c-im-ro-2-0-1-009 + uuid: ro-2-1-2-op-c-im-ro-2-1-2-009 service: basic: individual: @@ -173,36 +173,36 @@ clients: - http-client: application-name: TypeApprovalRegister release-number: 2.0.1 - uuid: ro-2-1-0-http-c-tar-2-0-1-000 + uuid: ro-2-1-2-http-c-tar-2-1-2-000 tcp-client: remote-protocol: http ip-address: 127.0.0.1 - tcp-port: 3009 - uuid: ro-2-1-0-tcp-c-tar-2-0-1-000 + tcp-port: 3032 + uuid: ro-2-1-2-tcp-c-tar-2-1-2-000 operation-clients: own-oam: basic: individual: - operation-name: /v1/embed-yourself - uuid: ro-2-1-0-op-c-im-tar-2-0-1-000 + uuid: ro-2-1-2-op-c-im-tar-2-1-2-000 - operation-name: /v1/update-client - uuid: ro-2-1-0-op-c-im-tar-2-0-1-001 + uuid: ro-2-1-2-op-c-im-tar-2-1-2-001 - operation-name: /v1/update-operation-client - uuid: ro-2-1-0-op-c-im-tar-2-0-1-002 + uuid: ro-2-1-2-op-c-im-tar-2-1-2-002 - operation-name: /v1/regard-application - uuid: ro-2-1-0-op-c-im-tar-2-0-1-003 + uuid: ro-2-1-2-op-c-im-tar-2-1-2-003 - operation-name: /v1/disregard-application - uuid: ro-2-1-0-op-c-im-tar-2-0-1-004 + uuid: ro-2-1-2-op-c-im-tar-2-1-2-004 - operation-name: /v1/redirect-info-about-approval-status-changes - uuid: ro-2-1-0-op-c-im-tar-2-0-1-005 + uuid: ro-2-1-2-op-c-im-tar-2-1-2-005 - operation-name: /v1/dispose-remainders-of-deregistered-application - uuid: ro-2-1-0-op-c-im-tar-2-0-1-006 + uuid: ro-2-1-2-op-c-im-tar-2-1-2-006 - operation-name: /v1/document-embedding-status - uuid: ro-2-1-0-op-c-im-tar-2-0-1-007 + uuid: ro-2-1-2-op-c-im-tar-2-1-2-007 - operation-name: /v1/inform-about-preceding-release - uuid: ro-2-1-0-op-c-im-tar-2-0-1-008 + uuid: ro-2-1-2-op-c-im-tar-2-1-2-008 - operation-name: /v1/update-client-of-subsequent-release - uuid: ro-2-1-0-op-c-im-tar-2-0-1-009 + uuid: ro-2-1-2-op-c-im-tar-2-1-2-009 service: basic: individual: @@ -210,184 +210,184 @@ clients: - http-client: application-name: ExecutionAndTraceLog release-number: 2.0.1 - uuid: ro-2-1-0-http-c-eatl-2-0-1-000 + uuid: ro-2-1-2-http-c-eatl-2-1-2-000 tcp-client: remote-protocol: http ip-address: 127.0.0.1 - tcp-port: 3010 - uuid: ro-2-1-0-tcp-c-eatl-2-0-1-000 + tcp-port: 3033 + uuid: ro-2-1-2-tcp-c-eatl-2-1-2-000 operation-clients: own-oam: basic: individual: - operation-name: /v1/embed-yourself - uuid: ro-2-1-0-op-c-im-eatl-2-0-1-000 + uuid: ro-2-1-2-op-c-im-eatl-2-1-2-000 - operation-name: /v1/update-client - uuid: ro-2-1-0-op-c-im-eatl-2-0-1-001 + uuid: ro-2-1-2-op-c-im-eatl-2-1-2-001 - operation-name: /v1/update-operation-client - uuid: ro-2-1-0-op-c-im-eatl-2-0-1-002 + uuid: ro-2-1-2-op-c-im-eatl-2-1-2-002 - operation-name: /v1/regard-application - uuid: ro-2-1-0-op-c-im-eatl-2-0-1-003 + uuid: ro-2-1-2-op-c-im-eatl-2-1-2-003 - operation-name: /v1/disregard-application - uuid: ro-2-1-0-op-c-im-eatl-2-0-1-004 + uuid: ro-2-1-2-op-c-im-eatl-2-1-2-004 - operation-name: /v1/dispose-remainders-of-deregistered-application - uuid: ro-2-1-0-op-c-im-eatl-2-0-1-006 + uuid: ro-2-1-2-op-c-im-eatl-2-1-2-006 - operation-name: /v1/inform-about-preceding-release - uuid: ro-2-1-0-op-c-im-eatl-2-0-1-008 + uuid: ro-2-1-2-op-c-im-eatl-2-1-2-008 - operation-name: /v1/update-client-of-subsequent-release - uuid: ro-2-1-0-op-c-im-eatl-2-0-1-009 + uuid: ro-2-1-2-op-c-im-eatl-2-1-2-009 service: basic: - operation-name: /v1/record-service-request - uuid: ro-2-1-0-op-c-bs-eatl-2-0-1-000 + uuid: ro-2-1-2-op-c-bs-eatl-2-1-2-000 individual: - http-client: application-name: OamLog release-number: 2.0.1 - uuid: ro-2-1-0-http-c-ol-2-0-1-000 + uuid: ro-2-1-2-http-c-ol-2-1-2-000 tcp-client: remote-protocol: http ip-address: 127.0.0.1 - tcp-port: 3011 - uuid: ro-2-1-0-tcp-c-ol-2-0-1-000 + tcp-port: 3034 + uuid: ro-2-1-2-tcp-c-ol-2-1-2-000 operation-clients: own-oam: basic: individual: - operation-name: /v1/embed-yourself - uuid: ro-2-1-0-op-c-im-ol-2-0-1-000 + uuid: ro-2-1-2-op-c-im-ol-2-1-2-000 - operation-name: /v1/update-client - uuid: ro-2-1-0-op-c-im-ol-2-0-1-001 + uuid: ro-2-1-2-op-c-im-ol-2-1-2-001 - operation-name: /v1/update-operation-client - uuid: ro-2-1-0-op-c-im-ol-2-0-1-002 + uuid: ro-2-1-2-op-c-im-ol-2-1-2-002 - operation-name: /v1/regard-application - uuid: ro-2-1-0-op-c-im-ol-2-0-1-003 + uuid: ro-2-1-2-op-c-im-ol-2-1-2-003 - operation-name: /v1/disregard-application - uuid: ro-2-1-0-op-c-im-ol-2-0-1-004 + uuid: ro-2-1-2-op-c-im-ol-2-1-2-004 - operation-name: /v1/dispose-remainders-of-deregistered-application - uuid: ro-2-1-0-op-c-im-ol-2-0-1-006 + uuid: ro-2-1-2-op-c-im-ol-2-1-2-006 - operation-name: /v1/inform-about-preceding-release - uuid: ro-2-1-0-op-c-im-ol-2-0-1-008 + uuid: ro-2-1-2-op-c-im-ol-2-1-2-008 - operation-name: /v1/update-client-of-subsequent-release - uuid: ro-2-1-0-op-c-im-ol-2-0-1-009 + uuid: ro-2-1-2-op-c-im-ol-2-1-2-009 service: basic: - operation-name: /v1/record-oam-request - uuid: ro-2-1-0-op-c-bs-ol-2-0-1-000 + uuid: ro-2-1-2-op-c-bs-ol-2-1-2-000 individual: - http-client: - application-name: AdministratorAdministration + application-name: AccessAdministration release-number: 2.0.1 - uuid: ro-2-1-0-http-c-aa-2-0-1-000 + uuid: ro-2-1-2-http-c-aa-2-1-2-000 tcp-client: remote-protocol: http ip-address: 127.0.0.1 - tcp-port: 3012 - uuid: ro-2-1-0-tcp-c-aa-2-0-1-000 + tcp-port: 3035 + uuid: ro-2-1-2-tcp-c-aa-2-1-2-000 operation-clients: own-oam: basic: individual: - operation-name: /v1/embed-yourself - uuid: ro-2-1-0-op-c-im-aa-2-0-1-000 + uuid: ro-2-1-2-op-c-im-aa-2-1-2-000 - operation-name: /v1/update-client - uuid: ro-2-1-0-op-c-im-aa-2-0-1-001 + uuid: ro-2-1-2-op-c-im-aa-2-1-2-001 - operation-name: /v1/update-operation-client - uuid: ro-2-1-0-op-c-im-aa-2-0-1-002 + uuid: ro-2-1-2-op-c-im-aa-2-1-2-002 - operation-name: /v1/regard-application - uuid: ro-2-1-0-op-c-im-aa-2-0-1-003 + uuid: ro-2-1-2-op-c-im-aa-2-1-2-003 - operation-name: /v1/disregard-application - uuid: ro-2-1-0-op-c-im-aa-2-0-1-004 + uuid: ro-2-1-2-op-c-im-aa-2-1-2-004 - operation-name: /v1/dispose-remainders-of-deregistered-application - uuid: ro-2-1-0-op-c-im-aa-2-0-1-006 + uuid: ro-2-1-2-op-c-im-aa-2-1-2-006 - operation-name: /v1/inform-about-preceding-release - uuid: ro-2-1-0-op-c-im-aa-2-0-1-008 + uuid: ro-2-1-2-op-c-im-aa-2-1-2-008 - operation-name: /v1/update-client-of-subsequent-release - uuid: ro-2-1-0-op-c-im-aa-2-0-1-009 + uuid: ro-2-1-2-op-c-im-aa-2-1-2-009 service: basic: - - operation-name: /v1/approve-oam-request - uuid: ro-2-1-0-op-c-bs-aa-2-0-1-000 + - operation-name: /v1/approve-basic-auth-request + uuid: ro-2-1-2-op-c-bs-aa-2-1-2-000 individual: - http-client: application-name: ApplicationLayerTopology release-number: 2.0.1 - uuid: ro-2-1-0-http-c-alt-2-0-1-000 + uuid: ro-2-1-2-http-c-alt-2-1-2-000 tcp-client: remote-protocol: http ip-address: 127.0.0.1 - tcp-port: 3013 - uuid: ro-2-1-0-tcp-c-alt-2-0-1-000 + tcp-port: 3036 + uuid: ro-2-1-2-tcp-c-alt-2-1-2-000 operation-clients: own-oam: basic: - operation-name: /v1/update-all-ltps-and-fcs - uuid: ro-2-1-0-op-c-bm-alt-2-0-1-000 + uuid: ro-2-1-2-op-c-bm-alt-2-1-2-000 - operation-name: /v1/update-ltp - uuid: ro-2-1-0-op-c-bm-alt-2-0-1-001 + uuid: ro-2-1-2-op-c-bm-alt-2-1-2-001 - operation-name: /v1/delete-ltp-and-dependents - uuid: ro-2-1-0-op-c-bm-alt-2-0-1-002 + uuid: ro-2-1-2-op-c-bm-alt-2-1-2-002 - operation-name: /v1/update-fc - uuid: ro-2-1-0-op-c-bm-alt-2-0-1-003 + uuid: ro-2-1-2-op-c-bm-alt-2-1-2-003 - operation-name: /v1/update-fc-port - uuid: ro-2-1-0-op-c-bm-alt-2-0-1-004 + uuid: ro-2-1-2-op-c-bm-alt-2-1-2-004 - operation-name: /v1/delete-fc-port - uuid: ro-2-1-0-op-c-bm-alt-2-0-1-005 + uuid: ro-2-1-2-op-c-bm-alt-2-1-2-005 individual: - operation-name: /v1/embed-yourself - uuid: ro-2-1-0-op-c-im-alt-2-0-1-000 + uuid: ro-2-1-2-op-c-im-alt-2-1-2-000 - operation-name: /v1/update-client - uuid: ro-2-1-0-op-c-im-alt-2-0-1-001 + uuid: ro-2-1-2-op-c-im-alt-2-1-2-001 - operation-name: /v1/update-operation-client - uuid: ro-2-1-0-op-c-im-alt-2-0-1-002 + uuid: ro-2-1-2-op-c-im-alt-2-1-2-002 - operation-name: /v1/regard-application - uuid: ro-2-1-0-op-c-im-alt-2-0-1-003 + uuid: ro-2-1-2-op-c-im-alt-2-1-2-003 - operation-name: /v1/disregard-application - uuid: ro-2-1-0-op-c-im-alt-2-0-1-004 + uuid: ro-2-1-2-op-c-im-alt-2-1-2-004 - operation-name: /v1/dispose-remainders-of-deregistered-application - uuid: ro-2-1-0-op-c-im-alt-2-0-1-006 + uuid: ro-2-1-2-op-c-im-alt-2-1-2-006 - operation-name: /v1/inform-about-preceding-release - uuid: ro-2-1-0-op-c-im-alt-2-0-1-008 + uuid: ro-2-1-2-op-c-im-alt-2-1-2-008 - operation-name: /v1/update-client-of-subsequent-release - uuid: ro-2-1-0-op-c-im-alt-2-0-1-009 + uuid: ro-2-1-2-op-c-im-alt-2-1-2-009 service: basic: individual: - operation-name: /v1/add-operation-client-to-link - uuid: ro-2-1-0-op-c-is-alt-2-0-1-000 + uuid: ro-2-1-2-op-c-is-alt-2-1-2-000 - http-client: application-name: OperationKeyManagement release-number: 2.0.1 - uuid: ro-2-1-0-http-c-okm-2-0-1-000 + uuid: ro-2-1-2-http-c-okm-2-1-2-000 tcp-client: remote-protocol: http ip-address: 127.0.0.1 - tcp-port: 3014 - uuid: ro-2-1-0-tcp-c-okm-2-0-1-000 + tcp-port: 3037 + uuid: ro-2-1-2-tcp-c-okm-2-1-2-000 operation-clients: own-oam: basic: individual: - operation-name: /v1/embed-yourself - uuid: ro-2-1-0-op-c-im-okm-2-0-1-000 + uuid: ro-2-1-2-op-c-im-okm-2-1-2-000 - operation-name: /v1/update-client - uuid: ro-2-1-0-op-c-im-okm-2-0-1-001 + uuid: ro-2-1-2-op-c-im-okm-2-1-2-001 - operation-name: /v1/update-operation-client - uuid: ro-2-1-0-op-c-im-okm-2-0-1-002 + uuid: ro-2-1-2-op-c-im-okm-2-1-2-002 - operation-name: /v1/regard-application - uuid: ro-2-1-0-op-c-im-okm-2-0-1-003 + uuid: ro-2-1-2-op-c-im-okm-2-1-2-003 - operation-name: /v1/disregard-application - uuid: ro-2-1-0-op-c-im-okm-2-0-1-004 + uuid: ro-2-1-2-op-c-im-okm-2-1-2-004 - operation-name: /v1/dispose-remainders-of-deregistered-application - uuid: ro-2-1-0-op-c-im-okm-2-0-1-006 + uuid: ro-2-1-2-op-c-im-okm-2-1-2-006 - operation-name: /v1/inform-about-preceding-release - uuid: ro-2-1-0-op-c-im-okm-2-0-1-008 + uuid: ro-2-1-2-op-c-im-okm-2-1-2-008 - operation-name: /v1/update-client-of-subsequent-release - uuid: ro-2-1-0-op-c-im-okm-2-0-1-009 + uuid: ro-2-1-2-op-c-im-okm-2-1-2-009 service: basic: individual: diff --git a/spec/RegistryOffice.yaml b/spec/RegistryOffice.yaml index 51ea14e..8c468fa 100644 --- a/spec/RegistryOffice.yaml +++ b/spec/RegistryOffice.yaml @@ -1,7 +1,7 @@ openapi: 3.0.0 info: title: RegistryOffice - version: 2.1.1 + version: 2.1.2 x-gui-paths: ######################################################################################################################## @@ -65,13 +65,13 @@ paths: type: string description: > 'Name of application that shall be target of the handover process - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-nr-2-1-0-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-nr-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' new-application-release: type: string pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$' description: > 'Release of application that shall be target of the handover process - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-nr-2-1-0-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-nr-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' new-application-protocol: type: string enum: @@ -79,7 +79,7 @@ paths: - 'HTTPS' description: > 'Protocol to be used for addressing the application that shall be target of the handover process - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-nr-2-1-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-nr-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' new-application-address: type: object minProperties: 1 @@ -96,20 +96,20 @@ paths: pattern: '^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$' description: > 'IPv4 address of application that shall be target of the handover process - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-nr-2-1-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-nr-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' domain-name: type: string pattern: '^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$' description: > 'Domain name of application that shall be target of the handover process - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-nr-2-1-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-nr-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' new-application-port: type: integer minimum: 0 maximum: 65535 description: > 'Port of application that shall be target of the handover process - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-nr-2-1-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-nr-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' example: new-application-name: 'NewApplicationName' new-application-release: '32.6.3' @@ -150,7 +150,7 @@ paths: example: 'EXPERIMENTAL' description: > 'Life cycle state of the consumed service - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-im-000/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-im-000/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' '400': $ref: '#/components/responses/responseForErroredServiceRequests' '401': @@ -165,7 +165,7 @@ paths: $ref: '#/components/responses/responseForErroredServiceRequests' callbacks: PromptForBequeathingDataCausesNewApplicationBeingRequestedToInquireForApplicationTypeApprovals: - url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-nr-2-1-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-nr-2-1-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-nr-2-1-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-nr-2-1-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-nr-2-1-0-002/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-nr-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-nr-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-nr-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-nr-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-nr-2-1-2-002/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] post: parameters: - $ref: '#/components/parameters/user' @@ -191,22 +191,22 @@ paths: type: string description: > 'Name of application that wants to receive information about new registrations - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-tar-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-tar-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' approval-application-release-number: type: string description: > 'Release of application that wants to receive information about new registrations - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-tar-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-tar-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' approval-operation: type: string description: > 'Operation that shall be addressed by information about new registrations - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-tar-2-0-1-003/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-tar-2-1-2-003/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' approval-application-protocol: type: string description: > 'Protocol to be used for addressing the application that wants to receive information about new registrations - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-tar-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-tar-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' approval-application-address: type: object properties: @@ -217,17 +217,17 @@ paths: type: string description: > 'IPv4 address of application that wants to receive information about new registrations - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-tar-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-tar-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' domain-name: type: string description: > 'Domain name of application that wants to receive information about new registrations - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-tar-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-tar-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' approval-application-port: type: integer description: > 'TCP port of application that wants to receive information about new registrations - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-tar-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-tar-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' example: approval-application: 'TypeApprovalRegister' approval-application-release-number: '2.0.1' @@ -236,7 +236,7 @@ paths: approval-application-address: ip-address: ipv-4-address: '127.0.0.1' - approval-application-port: 3009 + approval-application-port: 3032 responses: '204': description: 'Subscribed for notifications about new registrations' @@ -281,7 +281,7 @@ paths: default: $ref: '#/components/responses/responseForErroredServiceRequests' PromptForBequeathingDataCausesTransferOfListOfAlreadyRegisteredApplications: - url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-nr-2-1-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-nr-2-1-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-nr-2-1-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-nr-2-1-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-nr-2-1-0-005/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-nr-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-nr-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-nr-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-nr-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-nr-2-1-2-005/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] post: parameters: - $ref: '#/components/parameters/user' @@ -310,12 +310,12 @@ paths: type: string description: > 'Name of application that wants to register - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' release-number: type: string description: > 'Release of application that wants to register - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' preceding-application-name: type: string description: > @@ -330,32 +330,32 @@ paths: type: string description: > 'Name of service for initiating embedding process - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-*-*-*-*-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' client-update-operation: type: string description: > 'Name of service for broadcasting server changes - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-001/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-*-*-*-*-001/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' operation-client-update-operation: type: string description: > 'Name of service for broadcasting replacements of operations by backward compatible substitutes - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-002/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-*-*-*-*-002/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' dispose-remainders-operation: type: string description: > 'Name of service for broadcasting de-registrations of applications - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-006/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-*-*-*-*-006/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' preceding-release-operation: type: string description: > 'Name of service for retrieving information about the preceding release of a new application - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-008/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-*-*-*-*-008/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' subsequent-release-operation: type: string description: > 'Name of service for configuring the newRelease at the existing application - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-009/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-*-*-*-*-009/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' tcp-server: type: object properties: @@ -363,7 +363,7 @@ paths: type: string description: > 'Protocol to be used for addressing the application that wants to register - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' address: type: object properties: @@ -374,17 +374,17 @@ paths: type: string description: > 'IPv4 address of application that wants to register - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' domain-name: type: string description: > 'Domain name of application that wants to register - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' port: type: integer description: > 'TCP port of application that wants to register - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' responses: '204': description: 'Application registered' @@ -429,7 +429,7 @@ paths: default: $ref: '#/components/responses/responseForErroredServiceRequests' PromptForBequeathingDataCausesTransferOfListOfSubscriptionsForEmbeddingStatusChanges: - url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-nr-2-1-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-nr-2-1-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-nr-2-1-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-nr-2-1-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-nr-2-1-0-006/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-nr-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-nr-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-nr-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-nr-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-nr-2-1-2-006/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] post: parameters: - $ref: '#/components/parameters/user' @@ -455,22 +455,22 @@ paths: type: string description: > 'Name of application that wants to receive notifications about changes of the embedding status - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' subscriber-release-number: type: string description: > 'Release of application that wants to receive notifications about changes of the embedding status - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' subscriber-operation: type: string description: > 'Names of the operation that shall be addressed by notifications about changes of the embedding status - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-007/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-*-*-*-*-007/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' subscriber-protocol: type: string description: > 'Protocol to be used for addressing the application that wants to receive notifications about changes of the embedding status - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' subscriber-address: type: object minProperties: 1 @@ -486,17 +486,17 @@ paths: type: string description: > 'IPv4 address of application that wants to receive notifications about changes of the embedding status - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' domain-name: type: string description: > 'Domain name of application that wants to receive notifications about changes of the embedding status - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' subscriber-port: type: integer description: > 'TCP port of application that wants to receive notifications about changes of the embedding status - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' responses: '204': description: 'Subscribed for notifications about changes of the embedding status' @@ -541,7 +541,7 @@ paths: default: $ref: '#/components/responses/responseForErroredServiceRequests' PromptForBequeathingDataCausesTARbeingRequestedToRedirectInfoAboutApprovalsToNewApplication: - url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-tar-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-tar-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-tar-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-tar-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-tar-2-0-1-005/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-tar-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-tar-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-tar-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-tar-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-tar-2-1-2-005/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] post: parameters: - $ref: '#/components/parameters/user' @@ -567,22 +567,22 @@ paths: type: string description: > 'Future application name - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-nr-2-1-0-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-nr-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' subscriber-release-number: type: string description: > 'Future release number - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-nr-2-1-0-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-nr-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' subscriber-operation: type: string description: > 'Names of the operation that shall be addressed by notifications about documentation of an approval status - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-is-003/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-is-003/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' subscriber-protocol: type: string description: > 'Protocol to be used for addressing the application in future - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-nr-2-1-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-nr-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' subscriber-address: type: object properties: @@ -593,17 +593,17 @@ paths: type: string description: > 'Future IPv4 address - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-nr-2-1-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-nr-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' domain-name: type: string description: > 'Future Domain name - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-nr-2-1-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-nr-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' subscriber-port: type: integer description: > 'Future IP address - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-nr-2-1-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-nr-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' example: subscriber-application: 'RegistryOffice' subscriber-release-number: '2.1.0' @@ -657,7 +657,7 @@ paths: default: $ref: '#/components/responses/responseForErroredServiceRequests' PromptForBequeathingDataCausesRequestForBroadcastingInfoAboutServerReplacement: - url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bm-ro-2-0-1-001/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ro-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ro-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ro-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ro-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-bm-ro-2-1-2-001/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] post: parameters: - $ref: '#/components/parameters/user' @@ -684,27 +684,27 @@ paths: type: string description: > 'Own application name - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' current-release-number: type: string description: > 'Own release number - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' future-application-name: type: string description: > 'Future name of the application that has updated connection data - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-nr-2-1-0-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-nr-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' future-release-number: type: string description: > 'Future release number of the application that has updated connection data - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-nr-2-1-0-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-nr-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' future-protocol: type: string description: > 'Protocol to be used in future for addressing the application that has updated connection data - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-nr-2-1-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-nr-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' future-address: type: object properties: @@ -715,17 +715,17 @@ paths: type: string description: > 'Future IPv4 address of the application that has updated connection data - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-nr-2-1-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-nr-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' domain-name: type: string description: > 'Future domain name of the application that has updated connection data - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-nr-2-1-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-nr-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' future-port: type: integer description: > 'Future port of the application that has updated connection data - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-nr-2-1-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-nr-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' responses: '204': description: 'Will broadcast server replacement' @@ -770,7 +770,7 @@ paths: default: $ref: '#/components/responses/responseForErroredServiceRequests' PromptForBequeathingDataCausesRequestForDeregisteringOfOldRelease: - url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bm-ro-2-0-1-002/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ro-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ro-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ro-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ro-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-bm-ro-2-1-2-002/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] post: parameters: - $ref: '#/components/parameters/user' @@ -792,12 +792,12 @@ paths: type: string description: > 'Own application name - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' release-number: type: string description: > 'Own release number - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' responses: '204': description: 'Application deregistered' @@ -842,7 +842,7 @@ paths: default: $ref: '#/components/responses/responseForErroredServiceRequests' PromptingNewReleaseForUpdatingServerCausesRequestForBroadcastingInfoAboutBackwardCompatibleUpdateOfOperation: - url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bm-ro-2-0-1-003/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ro-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ro-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ro-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ro-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-bm-ro-2-1-2-003/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] description: > 'This callback belongs to the sequence of actions that have to be done during the bequeath-your-data-and-die process, despite the forwarding gets neither managed nor directly initiated by the /v1/bequeath-your-data-and-die request. After consuming applications have been redirected to the new release, the new release is triggered (this callback) to request the RegistryOffice for broadcasting information about backward compatible replacements of services.' @@ -869,22 +869,22 @@ paths: type: string description: > 'Own application name - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' release-number: type: string description: > 'Own release number - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' old-operation-name: type: string description: > 'Name of the deprecated operation - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-*/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-*/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' new-operation-name: type: string description: > 'Name of the replacing operation - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-*/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-*/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' responses: '204': description: 'Will broadcast operation update' @@ -948,7 +948,7 @@ paths: description: > 'Registration service is not protected by operationKey. Receiving a de-registration request shall be assumed after passing wait time to approve - from [/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-0-integer-p-010/integer-profile-1-0:integer-profile-pac/integer-profile-configuration/integer-value]' + from [/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-2-integer-p-010/integer-profile-1-0:integer-profile-pac/integer-profile-configuration/integer-value]' requestBody: required: true content: @@ -968,13 +968,13 @@ paths: pattern: '^([A-Z][a-z0-9]+){2,}$' description: > 'Name of application that wants to register - find, but not at OldRelease or NewRelease, or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + find, but not at OldRelease or NewRelease, or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' release-number: type: string pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$' description: > 'Release of application that wants to register - find, but not at OldRelease or NewRelease, or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + find, but not at OldRelease or NewRelease, or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' preceding-application-name: type: string minLength: 3 @@ -992,19 +992,19 @@ paths: minLength: 6 description: > 'Name of service for initiating embedding process - update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-*-*-*-*-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' client-update-operation: type: string minLength: 6 description: > 'Name of service for broadcasting server changes - update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-001/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-*-*-*-*-001/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' operation-client-update-operation: type: string minLength: 6 description: > 'Name of service for broadcasting replacements of operations by backward compatible substitutes - update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-002/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-*-*-*-*-002/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' tcp-server-list: type: array minItems: 1 @@ -1022,7 +1022,7 @@ paths: - 'HTTPS' description: > 'Protocol to be used for addressing the application that wants to register - find or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + find or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' address: type: object minProperties: 1 @@ -1039,20 +1039,20 @@ paths: pattern: '^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$' description: > 'IPv4 address of application that wants to register - update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' domain-name: type: string pattern: '^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$' description: > 'Domain name of application that wants to register - update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' port: type: integer minimum: 0 maximum: 65535 description: > 'TCP port of application that wants to register - update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' example: application-name: 'TypeApprovalRegister' release-number: '2.0.1' @@ -1066,7 +1066,7 @@ paths: address: ip-address: ipv-4-address: '127.0.0.1' - port: 3009 + port: 3032 - protocol: 'HTTPS' address: ip-address: @@ -1104,7 +1104,7 @@ paths: example: 'EXPERIMENTAL' description: > 'Life cycle state of the consumed service - find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-is-001/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-is-001/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' '400': $ref: '#/components/responses/responseForErroredServiceRequests' '403': @@ -1130,7 +1130,7 @@ paths: description: > 'Registration service is not protected by operationKey. Receiving a de-registration request shall be assumed after passing wait time to approve - from [/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-0-integer-p-010/integer-profile-1-0:integer-profile-pac/integer-profile-configuration/integer-value]' + from [/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-2-integer-p-010/integer-profile-1-0:integer-profile-pac/integer-profile-configuration/integer-value]' requestBody: required: true content: @@ -1152,13 +1152,13 @@ paths: pattern: '^([A-Z][a-z0-9]+){2,}$' description: > 'Name of application that wants to register - find, but not at OldRelease or NewRelease, or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + find, but not at OldRelease or NewRelease, or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' release-number: type: string pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$' description: > 'Release of application that wants to register - find, but not at OldRelease or NewRelease, or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + find, but not at OldRelease or NewRelease, or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' preceding-application-name: type: string minLength: 3 @@ -1176,19 +1176,19 @@ paths: minLength: 6 description: > 'Name of service for initiating embedding process - update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-*-*-*-*-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' client-update-operation: type: string minLength: 6 description: > 'Name of service for broadcasting server changes - update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-001/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-*-*-*-*-001/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' operation-client-update-operation: type: string minLength: 6 description: > 'Name of service for broadcasting replacements of operations by backward compatible substitutes - update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-002/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-*-*-*-*-002/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' tcp-server-list: type: array minItems: 1 @@ -1206,7 +1206,7 @@ paths: - 'HTTPS' description: > 'Protocol to be used for addressing the application that wants to register - find or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + find or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' address: type: object minProperties: 1 @@ -1223,20 +1223,20 @@ paths: pattern: '^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$' description: > 'IPv4 address of application that wants to register - update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' domain-name: type: string pattern: '^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$' description: > 'Domain name of application that wants to register - update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' port: type: integer minimum: 0 maximum: 65535 description: > 'TCP port of application that wants to register - update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' - description: 'new-single-TcpServer-format' type: object required: @@ -1255,13 +1255,13 @@ paths: pattern: '^([A-Z][a-z0-9]+){2,}$' description: > 'Name of application that wants to register - find, but not at OldRelease or NewRelease, or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + find, but not at OldRelease or NewRelease, or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' release-number: type: string pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$' description: > 'Release of application that wants to register - find, but not at OldRelease or NewRelease, or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + find, but not at OldRelease or NewRelease, or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' preceding-application-name: type: string minLength: 3 @@ -1279,37 +1279,37 @@ paths: minLength: 6 description: > 'Name of service for initiating embedding process - update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-*-*-*-*-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' client-update-operation: type: string minLength: 6 description: > 'Name of service for broadcasting server changes - update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-001/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-*-*-*-*-001/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' operation-client-update-operation: type: string minLength: 6 description: > 'Name of service for broadcasting replacements of operations by backward compatible substitutes - update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-002/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-*-*-*-*-002/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' dispose-remainders-operation: type: string minLength: 6 description: > 'Name of service for broadcasting de-registered applications that are to be removed from the application layer - update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-006/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-*-*-*-*-006/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' preceding-release-operation: type: string minLength: 6 description: > 'Name of service for retrieving information about the preceding release of a new application - update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-008/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-*-*-*-*-008/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' subsequent-release-operation: type: string minLength: 6 description: > 'Name of service for configuring the newRelease at the existing application - update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-009/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-*-*-*-*-009/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' tcp-server: type: object required: @@ -1324,7 +1324,7 @@ paths: - 'HTTPS' description: > 'Protocol to be used for addressing the application that wants to register - find or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + find or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' address: type: object minProperties: 1 @@ -1341,20 +1341,20 @@ paths: pattern: '^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$' description: > 'IPv4 address of application that wants to register - update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' domain-name: type: string pattern: '^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$' description: > 'Domain name of application that wants to register - update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' port: type: integer minimum: 0 maximum: 65535 description: > 'TCP port of application that wants to register - update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' examples: old-multiple-TcpServers-format: value: @@ -1370,7 +1370,7 @@ paths: address: ip-address: ipv-4-address: '127.0.0.1' - port: 3009 + port: 3032 - protocol: 'HTTPS' address: ip-address: @@ -1393,7 +1393,7 @@ paths: address: ip-address: ipv-4-address: '127.0.0.1' - port: 3009 + port: 3032 responses: '204': description: 'Application registered' @@ -1426,7 +1426,7 @@ paths: example: 'EXPERIMENTAL' description: > 'Life cycle state of the consumed service - find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-is-001/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-is-001/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' '400': $ref: '#/components/responses/responseForErroredServiceRequests' '403': @@ -1465,13 +1465,13 @@ paths: type: string description: > 'Name of application that shall be removed from the register - find, but not at OldRelease or NewRelease, in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + find, but not at OldRelease or NewRelease, in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' release-number: type: string pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$' description: > 'Release of application that shall be removed from the register - find, but not at OldRelease or NewRelease, in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + find, but not at OldRelease or NewRelease, in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' example: application-name: 'BadApplication' release-number: '1.0.0' @@ -1507,7 +1507,7 @@ paths: example: 'EXPERIMENTAL' description: > 'Life cycle state of the consumed service - find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-is-002/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-is-002/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' '400': $ref: '#/components/responses/responseForErroredServiceRequests' '401': @@ -1522,7 +1522,7 @@ paths: $ref: '#/components/responses/responseForErroredServiceRequests' callbacks: DeRegistrationBroadcast: - url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-006/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-*-*-*-*-006/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] description: 'Exclusively approved applications shall get information about de-registered applications.' post: parameters: @@ -1639,7 +1639,7 @@ paths: minLength: 6 description: > 'Name of the operation that shall be addressed for documenting the embedding status - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-tar-2-0-1-007/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-tar-2-1-2-007/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' - description: 'requestBody according to v2.0; DEPRECATED; to be deleted with RO v3.0.0' type: object required: @@ -1721,7 +1721,7 @@ paths: example: 'EXPERIMENTAL' description: > 'Life cycle state of the consumed service - find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-is-003/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-is-003/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' '204': description: > 'Approval status updated @@ -1758,7 +1758,7 @@ paths: example: 'EXPERIMENTAL' description: > 'Life cycle state of the consumed service - find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-0-1-op-s-is-003/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-is-003/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' '400': $ref: '#/components/responses/responseForErroredServiceRequests' '401': @@ -1773,7 +1773,7 @@ paths: $ref: '#/components/responses/responseForErroredServiceRequests' callbacks: BarringApplicationCausesDeregisteringOfApplication: - url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bm-ro-2-0-1-002/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ro-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ro-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ro-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ro-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-bm-ro-2-1-2-002/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] description: 'Callback to be activated, if {$request.body#approval-status} == BARRED' post: parameters: @@ -1843,7 +1843,7 @@ paths: default: $ref: '#/components/responses/responseForErroredServiceRequests' ApprovingApplicationCausesConnectingWith: - Alt: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-alt-2-0-1-003/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + Alt: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-alt-2-1-2-003/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] post: parameters: - $ref: '#/components/parameters/user' @@ -1862,17 +1862,17 @@ paths: type: string description: > 'Name of application that is approved - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$request.body#application-name}' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$request.body#application-name}' release-number: type: string description: > 'Release of application that is approved - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$request.body#release-number}' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$request.body#release-number}' protocol: type: string description: > 'Protocol to be used for addressing the application that is approved - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' address: type: object properties: @@ -1883,17 +1883,17 @@ paths: type: string description: > 'IPv4 address of application that is approved - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' domain-name: type: string description: > 'Domain name of application that is approved - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' port: type: integer description: > 'TCP port of application that is approved - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' responses: '200': description: 'Application will be represented in the application layer topology' @@ -1946,7 +1946,7 @@ paths: $ref: '#/components/responses/responseForErroredServiceRequests' default: $ref: '#/components/responses/responseForErroredServiceRequests' - Okm: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-okm-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-okm-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-okm-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-okm-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-okm-2-0-1-003/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + Okm: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-okm-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-okm-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-okm-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-okm-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-okm-2-1-2-003/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] post: parameters: - $ref: '#/components/parameters/user' @@ -1965,17 +1965,17 @@ paths: type: string description: > 'Name of application that is approved - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$request.body#application-name}' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$request.body#application-name}' release-number: type: string description: > 'Release of application that is approved - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$request.body#release-number}' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$request.body#release-number}' protocol: type: string description: > 'Protocol to be used for addressing the application that is approved - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' address: type: object properties: @@ -1986,17 +1986,17 @@ paths: type: string description: > 'IPv4 address of application that is approved - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' domain-name: type: string description: > 'Domain name of application that is approved - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' port: type: integer description: > 'TCP port of application that is approved - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' responses: '200': description: 'Application will be able to receive operationKeys' @@ -2049,7 +2049,7 @@ paths: $ref: '#/components/responses/responseForErroredServiceRequests' default: $ref: '#/components/responses/responseForErroredServiceRequests' - Eatl: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-eatl-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-eatl-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-eatl-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-eatl-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-eatl-2-0-1-003/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + Eatl: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-eatl-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-eatl-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-eatl-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-eatl-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-eatl-2-1-2-003/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] post: parameters: - $ref: '#/components/parameters/user' @@ -2068,17 +2068,17 @@ paths: type: string description: > 'Name of application that is approved - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$request.body#application-name}' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$request.body#application-name}' release-number: type: string description: > 'Release of application that is approved - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$request.body#release-number}' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$request.body#release-number}' protocol: type: string description: > 'Protocol to be used for addressing the application that is approved - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' address: type: object properties: @@ -2089,17 +2089,17 @@ paths: type: string description: > 'IPv4 address of application that is approved - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' domain-name: type: string description: > 'Domain name of application that is approved - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' port: type: integer description: > 'TCP port of application that is approved - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' responses: '200': description: 'Application will be requested for service request notifications' @@ -2152,7 +2152,7 @@ paths: $ref: '#/components/responses/responseForErroredServiceRequests' default: $ref: '#/components/responses/responseForErroredServiceRequests' - Aa: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-aa-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-aa-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-aa-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-aa-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-aa-2-0-1-003/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + Aa: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-aa-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-aa-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-aa-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-aa-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-aa-2-1-2-003/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] post: parameters: - $ref: '#/components/parameters/user' @@ -2171,17 +2171,17 @@ paths: type: string description: > 'Name of application that is approved - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$request.body#application-name}' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$request.body#application-name}' release-number: type: string description: > 'Release of application that is approved - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$request.body#release-number}' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$request.body#release-number}' protocol: type: string description: > 'Protocol to be used for addressing the application that is approved - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' address: type: object properties: @@ -2192,17 +2192,17 @@ paths: type: string description: > 'IPv4 address of application that is approved - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' domain-name: type: string description: > 'Domain name of application that is approved - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' port: type: integer description: > 'TCP port of application that is approved - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' responses: '200': description: 'Application requested to inquire approvals of BasicAuth requests' @@ -2255,7 +2255,7 @@ paths: $ref: '#/components/responses/responseForErroredServiceRequests' default: $ref: '#/components/responses/responseForErroredServiceRequests' - Ol: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ol-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ol-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ol-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ol-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-ol-2-0-1-003/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + Ol: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ol-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ol-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ol-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ol-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-ol-2-1-2-003/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] post: parameters: - $ref: '#/components/parameters/user' @@ -2274,17 +2274,17 @@ paths: type: string description: > 'Name of application that is approved - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$request.body#application-name}' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$request.body#application-name}' release-number: type: string description: > 'Release of application that is approved - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$request.body#release-number}' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$request.body#release-number}' protocol: type: string description: > 'Protocol to be used for addressing the application that is approved - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' address: type: object properties: @@ -2295,17 +2295,17 @@ paths: type: string description: > 'IPv4 address of application that is approved - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' domain-name: type: string description: > 'Domain name of application that is approved - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' port: type: integer description: > 'TCP port of application that is approved - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' responses: '200': description: 'Application will be requested for OaM request notifications' @@ -2359,7 +2359,7 @@ paths: default: $ref: '#/components/responses/responseForErroredServiceRequests' ApprovalNotification: - url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-003/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-*-*-*-*-003/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] description: > 'To be activated, if received /v1/regard-updated-approval-status::requestBody::approval-status == APPROVED' post: @@ -2386,17 +2386,17 @@ paths: type: string description: > 'Name of application that is approved - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' release-number: type: string description: > 'Release of application that is approved - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' protocol: type: string description: > 'Protocol to be used for addressing the application that is approved - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' address: type: object properties: @@ -2407,17 +2407,17 @@ paths: type: string description: > 'IPv4 address of application that is approved - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' domain-name: type: string description: > 'Domain name of application that is approved - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' port: type: integer description: > 'TCP port of application that is approved - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' example: application-name: 'CurrentController' release-number: '1.0.0' @@ -2470,7 +2470,7 @@ paths: default: $ref: '#/components/responses/responseForErroredServiceRequests' ApprovingApplicationCausesPreparingTheEmbedding: - RequestForOldRelease: #for [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$request.body#application-name}: [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-008/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + RequestForOldRelease: #for [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$request.body#application-name}: [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-*-*-*-*-008/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] post: parameters: - $ref: '#/components/parameters/user' @@ -2532,8 +2532,8 @@ paths: $ref: '#/components/responses/responseForErroredServiceRequests' default: $ref: '#/components/responses/responseForErroredServiceRequests' - CreateLinkToUpdateNewReleaseClient: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-is-alt-2-0-1-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] - description: 'To be executed, IF (oldReleaseApplicationName != "OldRelease") AND (HttpClient for oldReleaseApplicationName exists in RO)' + CreateLinkToUpdateNewReleaseClient: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-is-alt-2-1-2-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + description: 'To be executed, IF (oldReleaseApplicationName != "OldRelease")' post: parameters: - $ref: '#/components/parameters/user' @@ -2552,27 +2552,27 @@ paths: type: string description: > 'Name of application that holds the OperationServer of the link, which is to be complemented - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$RequestForOldRelease.responses.body#application-name}' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$RequestForOldRelease.responses.body#application-name}' serving-application-release-number: type: string description: > 'Release of application that holds the OperationServer of the link, which is to be complemented - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$RequestForOldRelease.responses.body#release-number}' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$RequestForOldRelease.responses.body#release-number}' operation-name: type: string description: > 'Name of the operation, which is made available via the link - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-009/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-*-*-*-*-009/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' consuming-application-name: type: string description: > 'Name of application that holds the OperationClient, which shall be connected via the link - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' consuming-application-release-number: type: string description: > 'Release of application that holds the OperationClient, which shall be connected via the link - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' responses: '200': description: 'OperationClient connected with OperationServer' @@ -2625,11 +2625,11 @@ paths: $ref: '#/components/responses/responseForErroredServiceRequests' default: $ref: '#/components/responses/responseForErroredServiceRequests' - RequestForUpdatingNewReleaseClient: #for [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$RequestForOldRelease.responses.body#application-name}: [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-009/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + RequestForUpdatingNewReleaseClient: #for [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$RequestForOldRelease.responses.body#application-name}: [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-*-*-*-*-009/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] description: > - 'To be executed, IF (oldReleaseApplicationName != "OldRelease") AND (HttpClient for oldReleaseApplicationName exists in RO) + 'To be executed, IF (oldReleaseApplicationName != "OldRelease") Request to be initiated by receiving /v1/update-operation-key of {$ApprovingApplicationCausesPreparingTheEmbedding.RequestForOldRelease.responses.body#applicationName}://v1/update-client-of-subsequent-release - Process shall be terminated, if /v1/update-operation-key is not received within time period defined in [/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-0-integer-p-000/integer-profile-1-0:integer-profile-pac/integer-profile-configuration/integer-value]' + Process shall be terminated, if /v1/update-operation-key is not received within time period defined in [/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-2-integer-p-000/integer-profile-1-0:integer-profile-pac/integer-profile-configuration/integer-value]' post: parameters: - $ref: '#/components/parameters/user' @@ -2648,17 +2648,17 @@ paths: type: string description: > 'Name of the application that is target of the bequeath-your-data-and-die process - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$request.body#application-name}' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$request.body#application-name}' release-number: type: string description: > 'Release of the application that is target of the bequeath-your-data-and-die process - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$request.body#release-number}' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$request.body#release-number}' protocol: type: string description: > 'Protocol to be used during the bequeath-your-data-and-die process - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' address: type: object properties: @@ -2669,17 +2669,17 @@ paths: type: string description: > 'IPv4 address to be used during the bequeath-your-data-and-die process - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' domain-name: type: string description: > 'Domain name to be used during the bequeath-your-data-and-die process - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' future-port: type: integer description: > 'Port to be used during the bequeath-your-data-and-die process - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' responses: '200': description: 'Operations required for transferring data provided' @@ -2736,11 +2736,11 @@ paths: $ref: '#/components/responses/responseForErroredServiceRequests' default: $ref: '#/components/responses/responseForErroredServiceRequests' - CreateLinkForBequeathYourData: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-is-alt-2-0-1-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + CreateLinkForBequeathYourData: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-is-alt-2-1-2-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] description: > - 'To be executed, IF (oldReleaseApplicationName != "OldRelease") AND (HttpClient for oldReleaseApplicationName exists in RO) + 'To be executed, IF (oldReleaseApplicationName != "OldRelease") This request shall be repeated as it may fail because background processes are not finished. - Process shall be terminated, if number of attempts is exceeding the maximum defined in [/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-0-integer-p-001/integer-profile-1-0:integer-profile-pac/integer-profile-configuration/integer-value]' + Process shall be terminated, if number of attempts is exceeding the maximum defined in [/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-2-integer-p-001/integer-profile-1-0:integer-profile-pac/integer-profile-configuration/integer-value]' post: parameters: - $ref: '#/components/parameters/user' @@ -2774,12 +2774,12 @@ paths: type: string description: > 'Name of application that holds the OperationClient, which shall be connected via the link - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$request.body#application-name}' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$request.body#application-name}' consuming-application-release-number: type: string description: > 'Release of application that holds the OperationClient, which shall be connected via the link - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$request.body#release-number}' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$request.body#release-number}' responses: '200': description: 'OperationClient connected with OperationServer' @@ -2832,9 +2832,9 @@ paths: $ref: '#/components/responses/responseForErroredServiceRequests' default: $ref: '#/components/responses/responseForErroredServiceRequests' - CreateFurtherLinksForTransferringData: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-is-alt-2-0-1-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + CreateFurtherLinksForTransferringData: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-is-alt-2-1-2-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] description: > - 'To be executed, IF (oldReleaseApplicationName != "OldRelease") AND (HttpClient for oldReleaseApplicationName exists in RO) + 'To be executed, IF (oldReleaseApplicationName != "OldRelease") This request might be sent multiple times, according to the number of entries in {$RequestForUpdatingNewReleaseClient.responses.body#data-transfer-operations-list}' post: parameters: @@ -2854,12 +2854,12 @@ paths: type: string description: > 'Name of application that holds the OperationServer of the link, which is to be complemented - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$request.body#application-name}' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$request.body#application-name}' serving-application-release-number: type: string description: > 'Release of application that holds the OperationServer of the link, which is to be complemented - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$request.body#release-number}' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$request.body#release-number}' operation-name: type: string description: > @@ -2928,7 +2928,7 @@ paths: $ref: '#/components/responses/responseForErroredServiceRequests' default: $ref: '#/components/responses/responseForErroredServiceRequests' - CreateLinkForPromptingEmbedding: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-is-alt-2-0-1-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + CreateLinkForPromptingEmbedding: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-is-alt-2-1-2-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] post: parameters: - $ref: '#/components/parameters/user' @@ -2947,27 +2947,27 @@ paths: type: string description: > 'Name of application that holds the OperationServer of the link, which is to be complemented - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$request.body#application-name}' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$request.body#application-name}' serving-application-release-number: type: string description: > 'Release of application that holds the OperationServer of the link, which is to be complemented - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$request.body#release-number}' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$request.body#release-number}' operation-name: type: string description: > 'Name of the operation, which is made available via the link - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-*-*-*-*-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' consuming-application-name: type: string description: > 'Name of application that holds the OperationClient, which shall be connected via the link - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' consuming-application-release-number: type: string description: > 'Release of application that holds the OperationClient, which shall be connected via the link - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' responses: '200': description: 'OperationClient connected with OperationServer' @@ -3020,10 +3020,10 @@ paths: $ref: '#/components/responses/responseForErroredServiceRequests' default: $ref: '#/components/responses/responseForErroredServiceRequests' - RequestForEmbedding: #for [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$request.body#application-name}: [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + RequestForEmbedding: #for [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$request.body#application-name}: [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-*-*-*-*-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] description: > 'Request to be initiated by receiving /v1/update-operation-key of {$request.body#application-name}://v1/embed-yourself - Process shall be terminated, if /v1/update-operation-key is not received within time period defined in [/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-0-integer-p-000/integer-profile-1-0:integer-profile-pac/integer-profile-configuration/integer-value]' + Process shall be terminated, if /v1/update-operation-key is not received within time period defined in [/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-2-integer-p-000/integer-profile-1-0:integer-profile-pac/integer-profile-configuration/integer-value]' post: parameters: - $ref: '#/components/parameters/user' @@ -3051,32 +3051,32 @@ paths: type: string description: > 'Name of RegistryOffice application - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' registry-office-application-release-number: type: string description: > 'Release of RegistryOffice application - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' relay-server-replacement-operation: type: string description: > 'Operation for requesting for broadcasting a new server address - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-is-010/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-is-010/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' relay-operation-update-operation: type: string description: > 'Operation for requesting for broadcasting a backward compatible replacement of an operation - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-is-011/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-is-011/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' deregistration-operation: type: string description: > 'Operation for deregistering from the application layer - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-is-002/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-is-002/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' registry-office-protocol: type: string description: > 'Protocol for addressing RegistryOffice application - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-protocol]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-protocol]' registry-office-address: type: object minProperties: 1 @@ -3092,24 +3092,24 @@ paths: type: string description: > 'IPv4 address of RegistryOffice application - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/ipv-4-address]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/ipv-4-address]' domain-name: type: string description: > 'Domain name of RegistryOffice application - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/domain-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/domain-name]' registry-office-port: type: integer description: > 'Port of RegistryOffice application - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-port]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-port]' old-release-protocol: type: string description: > 'Protocol for addressing the currently running old release of the same application - for [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*-*-*-*-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$RequestForOldRelease.responses.body#application-name} - AND [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*-*-*-*-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$RequestForOldRelease.responses.body#release-number} - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*-*-*-*-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + for [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*-*-*-*-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$RequestForOldRelease.responses.body#application-name} + AND [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*-*-*-*-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$RequestForOldRelease.responses.body#release-number} + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*-*-*-*-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' old-release-address: type: object minProperties: 1 @@ -3125,23 +3125,23 @@ paths: type: string description: > 'IPv4 address of currently running old release of the same application - for [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*-*-*-*-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$RequestForOldRelease.responses.body#application-name} - AND [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*-*-*-*-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$RequestForOldRelease.responses.body#release-number} - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*-*-*-*-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + for [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*-*-*-*-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$RequestForOldRelease.responses.body#application-name} + AND [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*-*-*-*-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$RequestForOldRelease.responses.body#release-number} + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*-*-*-*-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' domain-name: type: string description: > 'Domain name of currently running old release of the same application - for [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*-*-*-*-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$RequestForOldRelease.responses.body#application-name} - AND [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*-*-*-*-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$RequestForOldRelease.responses.body#release-number} - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*-*-*-*-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + for [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*-*-*-*-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$RequestForOldRelease.responses.body#application-name} + AND [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*-*-*-*-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$RequestForOldRelease.responses.body#release-number} + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*-*-*-*-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' old-release-port: type: integer description: > 'Port of currently running old release of the same application - for [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*-*-*-*-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$RequestForOldRelease.responses.body#application-name} - AND [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*-*-*-*-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$RequestForOldRelease.responses.body#release-number} - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*-*-*-*-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + for [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*-*-*-*-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$RequestForOldRelease.responses.body#application-name} + AND [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*-*-*-*-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$RequestForOldRelease.responses.body#release-number} + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*-*-*-*-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' responses: '204': description: 'Will embed into the MBH SDN application layer' @@ -3186,7 +3186,7 @@ paths: default: $ref: '#/components/responses/responseForErroredServiceRequests' ApprovingApplicationCausesConnectingToBroadcast: - CreateLinkForUpdatingClient: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-is-alt-2-0-1-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + CreateLinkForUpdatingClient: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-is-alt-2-1-2-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] post: parameters: - $ref: '#/components/parameters/user' @@ -3205,27 +3205,27 @@ paths: type: string description: > 'Name of application that holds the OperationServer of the link, which is to be complemented - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$request.body#application-name}' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$request.body#application-name}' serving-application-release-number: type: string description: > 'Release of application that holds the OperationServer of the link, which is to be complemented - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$request.body#release-number}' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$request.body#release-number}' operation-name: type: string description: > 'Name of the operation, which is made available via the link - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-001/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-*-*-*-*-001/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' consuming-application-name: type: string description: > 'Name of application that holds the OperationClient, which shall be connected via the link - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' consuming-application-release-number: type: string description: > 'Release of application that holds the OperationClient, which shall be connected via the link - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' responses: '200': description: 'OperationClient connected with OperationServer' @@ -3278,10 +3278,10 @@ paths: $ref: '#/components/responses/responseForErroredServiceRequests' default: $ref: '#/components/responses/responseForErroredServiceRequests' - CreateLinkForUpdatingOperationClient: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-is-alt-2-0-1-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + CreateLinkForUpdatingOperationClient: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-is-alt-2-1-2-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] description: > 'Request to be initiated by receiving /v1/update-operation-key of {$request.body#application-name}://v1/update-client - Process shall be terminated, if /v1/update-operation-key is not received within time period defined in [/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-0-integer-p-000/integer-profile-1-0:integer-profile-pac/integer-profile-configuration/integer-value]' + Process shall be terminated, if /v1/update-operation-key is not received within time period defined in [/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-2-integer-p-000/integer-profile-1-0:integer-profile-pac/integer-profile-configuration/integer-value]' post: parameters: - $ref: '#/components/parameters/user' @@ -3300,27 +3300,27 @@ paths: type: string description: > 'Name of application that holds the OperationServer of the link, which is to be complemented - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$request.body#application-name}' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$request.body#application-name}' serving-application-release-number: type: string description: > 'Release of application that holds the OperationServer of the link, which is to be complemented - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$request.body#release-number}' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$request.body#release-number}' operation-name: type: string description: > 'Name of the operation, which is made available via the link - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-002/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-*-*-*-*-002/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' consuming-application-name: type: string description: > 'Name of application that holds the OperationClient, which shall be connected via the link - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' consuming-application-release-number: type: string description: > 'Release of application that holds the OperationClient, which shall be connected via the link - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' responses: '200': description: 'OperationClient connected with OperationServer' @@ -3373,10 +3373,10 @@ paths: $ref: '#/components/responses/responseForErroredServiceRequests' default: $ref: '#/components/responses/responseForErroredServiceRequests' - CreateLinkForDisposingRemainders: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-is-alt-2-0-1-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + CreateLinkForDisposingRemainders: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-is-alt-2-1-2-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] description: > 'Request to be initiated by receiving /v1/update-operation-key of {$request.body#application-name}://v1/update-operation-client - Process shall be terminated, if /v1/update-operation-key is not received within time period defined in [/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-0-integer-p-000/integer-profile-1-0:integer-profile-pac/integer-profile-configuration/integer-value]' + Process shall be terminated, if /v1/update-operation-key is not received within time period defined in [/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-2-integer-p-000/integer-profile-1-0:integer-profile-pac/integer-profile-configuration/integer-value]' post: parameters: - $ref: '#/components/parameters/user' @@ -3395,27 +3395,27 @@ paths: type: string description: > 'Name of application that holds the OperationServer of the link, which is to be complemented - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$request.body#application-name}' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]=={$request.body#application-name}' serving-application-release-number: type: string description: > 'Release of application that holds the OperationServer of the link, which is to be complemented - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$request.body#release-number}' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]=={$request.body#release-number}' operation-name: type: string description: > 'Name of the operation, which is made available via the link - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-006/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-*-*-*-*-006/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' consuming-application-name: type: string description: > 'Name of application that holds the OperationClient, which shall be connected via the link - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' consuming-application-release-number: type: string description: > 'Release of application that holds the OperationClient, which shall be connected via the link - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' responses: '200': description: 'OperationClient connected with OperationServer' @@ -3469,7 +3469,7 @@ paths: default: $ref: '#/components/responses/responseForErroredServiceRequests' ApprovingApplicationCausesResponding: - url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-tar-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-tar-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-tar-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-tar-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-tar-2-0-1-007/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-tar-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-tar-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-tar-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-tar-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-tar-2-1-2-007/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] post: parameters: - $ref: '#/components/parameters/user' @@ -3485,7 +3485,7 @@ paths: oneOf: - description: 'IF {$CreateLinkForDisposingRemainders.responses.code}==200 => successfully-embedded==true Request to be initiated by receiving /v1/update-operation-key of {$request.body#application-name}://v1/dispose-remainders-of-deregistered-application - Process shall be terminated, if /v1/update-operation-key is not received within time period defined in [/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-0-integer-p-000/integer-profile-1-0:integer-profile-pac/integer-profile-configuration/integer-value]' + Process shall be terminated, if /v1/update-operation-key is not received within time period defined in [/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-2-integer-p-000/integer-profile-1-0:integer-profile-pac/integer-profile-configuration/integer-value]' type: object properties: process-id: @@ -3654,10 +3654,10 @@ paths: properties: application-name: type: string - description: 'from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + description: 'from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' release-number: type: string - description: 'from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + description: 'from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' example: application-name: 'TypeApprovalRegister' release-number: '1.0.0' @@ -3671,21 +3671,21 @@ paths: properties: application-name: type: string - description: 'from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + description: 'from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' release-number: type: string - description: 'from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + description: 'from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' address: type: string description: > - 'find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol] == {$request.body#required-protocol} - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address - or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + 'find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol] == {$request.body#required-protocol} + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address + or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' port: type: integer description: > - 'find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol] == {$request.body#required-protocol} - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + 'find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol] == {$request.body#required-protocol} + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' example: application-name: 'TypeApprovalRegister' release-number: '1.0.0' @@ -3720,7 +3720,7 @@ paths: example: 'EXPERIMENTAL' description: > 'Life cycle state of the consumed service - find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-is-004/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-is-004/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' '400': $ref: '#/components/responses/responseForErroredServiceRequests' '401': @@ -3804,7 +3804,7 @@ paths: example: 'EXPERIMENTAL' description: > 'Life cycle state of the consumed service - find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-is-005/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-is-005/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' '400': $ref: '#/components/responses/responseForErroredServiceRequests' '403': @@ -3848,19 +3848,19 @@ paths: type: string description: > 'Name of application that wants to receive information about new registrations - find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-tar-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-tar-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' approval-application-release-number: type: string pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$' description: > 'Release of application that wants to receive information about new registrations - find or update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-tar-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + find or update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-tar-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' approval-operation: type: string minLength: 6 description: > 'Operation that shall be addressed by information about new registrations - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-tar-2-0-1-003/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-tar-2-1-2-003/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' approval-application-protocol: type: string enum: @@ -3868,7 +3868,7 @@ paths: - 'HTTPS' description: > 'Protocol to be used for addressing the application that wants to receive information about new registrations - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-tar-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-tar-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' approval-application-address: type: object minProperties: 1 @@ -3885,20 +3885,20 @@ paths: pattern: '^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$' description: > 'IPv4 address of application that wants to receive information about new registrations - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-tar-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-tar-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' domain-name: type: string pattern: '^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$' description: > 'Domain name of application that wants to receive information about new registrations - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-tar-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-tar-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' approval-application-port: type: integer minimum: 0 maximum: 65535 description: > 'TCP port of application that wants to receive information about new registrations - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-tar-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-tar-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' example: approval-application: 'TypeApprovalRegister' approval-application-release-number: '2.0.1' @@ -3907,7 +3907,7 @@ paths: approval-application-address: ip-address: ipv-4-address: '127.0.0.1' - approval-application-port: 3009 + approval-application-port: 3032 responses: '204': description: 'Subscribed for notifications about new registrations' @@ -3940,7 +3940,7 @@ paths: example: 'EXPERIMENTAL' description: > 'Life cycle state of the consumed service - find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-is-006/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-is-006/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' '400': $ref: '#/components/responses/responseForErroredServiceRequests' '401': @@ -3955,7 +3955,7 @@ paths: $ref: '#/components/responses/responseForErroredServiceRequests' callbacks: RegistrationCausesInquiryForApplicationTypeApproval: - url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-tar-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-tar-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-tar-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-tar-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-tar-2-0-1-003/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-tar-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-tar-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-tar-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-tar-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-tar-2-1-2-003/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] post: parameters: - $ref: '#/components/parameters/user' @@ -3977,12 +3977,12 @@ paths: type: string description: > 'Name of application that registered - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' release-number: type: string description: > 'Release of application that registered - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' example: application-name: 'Resolver' release-number: '1.0.0' @@ -4065,19 +4065,19 @@ paths: type: string description: > 'Name of application that wants to receive notifications about obsolete registrations - find or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + find or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' subscriber-release-number: type: string pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$' description: > 'Release of application that wants to receive notifications about obsolete registrations - find or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + find or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' subscriber-operation: type: string minLength: 6 description: > 'Names of the operation that shall be addressed by notifications about obsolete registrations - update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-004/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-*-*-*-*-004/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' subscriber-protocol: type: string enum: @@ -4085,7 +4085,7 @@ paths: - 'HTTPS' description: > 'Protocol to be used for addressing the application that wants to receive notifications about obsolete registrations - update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' subscriber-address: type: object minProperties: 1 @@ -4102,20 +4102,20 @@ paths: pattern: '^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$' description: > 'IPv4 address of application that wants to receive notifications about obsolete registrations - update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' domain-name: type: string pattern: '^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$' description: 'Domain name of application that wants to receive notifications about obsolete registrations - update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' subscriber-port: type: integer minimum: 0 maximum: 65535 description: > 'TCP port of application that wants to receive notifications about obsolete registrations - update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' example: subscriber-application: 'TypeApprovalRegister' subscriber-release-number: '2.0.1' @@ -4124,7 +4124,7 @@ paths: subscriber-address: ip-address: ipv-4-address: '127.0.0.1' - subscriber-port: 3009 + subscriber-port: 3032 responses: '204': description: 'Subscribed for notifications about deregistrations' @@ -4157,7 +4157,7 @@ paths: example: 'EXPERIMENTAL' description: > 'Life cycle state of the consumed service - find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-is-007/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-is-007/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' '400': $ref: '#/components/responses/responseForErroredServiceRequests' '401': @@ -4172,7 +4172,7 @@ paths: $ref: '#/components/responses/responseForErroredServiceRequests' callbacks: DeregistrationNotification: - url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-004/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-*-*-*-*-004/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] description: > 'DEPRECATED Callback shall be deleted with RO v3.0.0 @@ -4198,12 +4198,12 @@ paths: type: string description: > 'Name of application that deregistered - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' release-number: type: string description: > 'Release of application that deregistered - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' example: application-name: 'CurrentController' release-number: '0.0.5' @@ -4286,19 +4286,19 @@ paths: type: string description: > 'Name of application that wants to receive notifications about new approvals - find or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + find or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' subscriber-release-number: type: string pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$' description: > 'Release of application that wants to receive notifications about new approvals - find or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + find or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' subscriber-operation: type: string minLength: 6 description: > 'Names of the operation that shall be addressed by notifications about new approvals - update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-003/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-*-*-*-*-003/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' subscriber-protocol: type: string enum: @@ -4306,7 +4306,7 @@ paths: - 'HTTPS' description: > 'Protocol to be used for addressing the application that wants to receive notifications about new approvals - update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' subscriber-address: type: object minProperties: 1 @@ -4323,20 +4323,20 @@ paths: pattern: '^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$' description: > 'IPv4 address of application that wants to receive notifications about new approvals - update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' domain-name: type: string pattern: '^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$' description: > 'Domain name of application that wants to receive notifications about new approvals - update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' subscriber-port: type: integer minimum: 0 maximum: 65535 description: > 'TCP port of application that wants to receive notifications about new approvals - update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' example: subscriber-application: 'ExecutionAndTraceLog' subscriber-release-number: '2.0.1' @@ -4345,7 +4345,7 @@ paths: subscriber-address: ip-address: ipv-4-address: '127.0.0.1' - subscriber-port: 3010 + subscriber-port: 3033 responses: '204': description: 'Subscribed for notifications about new approvals' @@ -4378,7 +4378,7 @@ paths: example: 'EXPERIMENTAL' description: > 'Life cycle state of the consumed service - find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-is-008/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-is-008/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' '400': $ref: '#/components/responses/responseForErroredServiceRequests' '401': @@ -4427,19 +4427,19 @@ paths: type: string description: > 'Name of application that wants to receive notifications about withdrawn approvals - find or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + find or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' subscriber-release-number: type: string pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$' description: > 'Release of application that wants to receive notifications about withdrawn approvals - find or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + find or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' subscriber-operation: type: string minLength: 6 description: > 'Names of the operation that shall be addressed by notifications about withdrawn approvals - update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-004/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-*-*-*-*-004/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' subscriber-protocol: type: string enum: @@ -4447,7 +4447,7 @@ paths: - 'HTTPS' description: > 'Protocol to be used for addressing the application that wants to receive notifications about withdrawn approvals - update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' subscriber-address: type: object minProperties: 1 @@ -4464,20 +4464,20 @@ paths: pattern: '^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$' description: > 'IPv4 address of application that wants to receive notifications about withdrawn approvals - update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' domain-name: type: string pattern: '^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$' description: > 'Domain name of application that wants to receive notifications about withdrawn approvals - update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' subscriber-port: type: integer minimum: 0 maximum: 65535 description: > 'TCP port of application that wants to receive notifications about withdrawn approvals - update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' example: subscriber-application: 'AdministratorAdministration' subscriber-release-number: '2.0.1' @@ -4486,7 +4486,7 @@ paths: subscriber-address: ip-address: ipv-4-address: '127.0.0.1' - subscriber-port: 3012 + subscriber-port: 3035 responses: '204': description: 'Subscribed for notifications about withdrawn approvals' @@ -4519,7 +4519,7 @@ paths: example: 'EXPERIMENTAL' description: > 'Life cycle state of the consumed service - find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-is-009/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-is-009/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' '400': $ref: '#/components/responses/responseForErroredServiceRequests' '401': @@ -4534,7 +4534,7 @@ paths: $ref: '#/components/responses/responseForErroredServiceRequests' callbacks: WithdrawnApprovalNotification: - url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-004/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-*-*-*-*-004/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] description: > 'DEPRECATED Callback shall be deleted with RO v3.0.0 @@ -4561,12 +4561,12 @@ paths: type: string description: > 'Name of application that has been withdrawn - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' release-number: type: string description: > 'Release of application that has been withdrawn - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' example: application-name: 'CurrentController' release-number: '0.0.5' @@ -4646,27 +4646,27 @@ paths: type: string description: > 'Current name of the application that has updated connection data - find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name] + find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name] and forward to [$/v1/regard-updated-approval-status.callbacks.ServerReplacementBroadcast.body#current-application-name]' current-release-number: type: string pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$' description: > 'Current release number of the application that has updated connection data - find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number] + find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number] and forward to [$/v1/regard-updated-approval-status.callbacks.ServerReplacementBroadcast.body#current-release-number]' future-application-name: type: string description: > 'Future name of the application that has updated connection data - find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name] + find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name] and forward to [$/v1/regard-updated-approval-status.callbacks.ServerReplacementBroadcast.body#future-application-name]' future-release-number: type: string pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$' description: > 'Future release number of the application that has updated connection data - find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number] + find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number] forward to [$/v1/regard-updated-approval-status.callbacks.ServerReplacementBroadcast.body#future-release-number]' future-protocol: type: string @@ -4748,7 +4748,7 @@ paths: example: 'EXPERIMENTAL' description: > 'Life cycle state of the consumed service - find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-is-010/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-is-010/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' '400': $ref: '#/components/responses/responseForErroredServiceRequests' '401': @@ -4763,7 +4763,7 @@ paths: $ref: '#/components/responses/responseForErroredServiceRequests' callbacks: ServerReplacementBroadcast: - url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-001/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-*-*-*-*-001/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] post: parameters: - $ref: '#/components/parameters/user' @@ -4791,25 +4791,25 @@ paths: description: > 'Current name of the application that has updated connection data from [$/v1/relay-server-replacement.body#current-application-name] - ==[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + ==[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' current-release-number: type: string description: > 'Current release number of the application that has updated connection data from [$/v1/relay-server-replacement.body#current-release-number] - ==[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + ==[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' future-application-name: type: string description: > 'Future name of the application that has updated connection data from [$/v1/relay-server-replacement.body#future-application-name] - ==[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + ==[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' future-release-number: type: string description: > 'Future release number of the application that has updated connection data from [$/v1/relay-server-replacement.body#future-release-number] - ==[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + ==[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' future-protocol: type: string description: > @@ -4919,14 +4919,14 @@ paths: type: string description: > 'Name of the application that has an updated operation - find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name] + find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name] and forward to [$/v1/regard-updated-approval-status.callbacks.OperationUpdateBroadcast.body#application-name]' release-number: type: string pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$' description: > 'Release number of the application that has an updated operation - find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number] + find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number] and forward to [$/v1/regard-updated-approval-status.callbacks.OperationUpdateBroadcast.body#release-number]' old-operation-name: type: string @@ -4977,7 +4977,7 @@ paths: example: 'EXPERIMENTAL' description: > 'Life cycle state of the consumed service - find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-is-011/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-is-011/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' '400': $ref: '#/components/responses/responseForErroredServiceRequests' '401': @@ -4992,7 +4992,7 @@ paths: $ref: '#/components/responses/responseForErroredServiceRequests' callbacks: OperationUpdateBroadcast: - url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-002/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-*-*-*-*-002/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] post: parameters: - $ref: '#/components/parameters/user' @@ -5017,13 +5017,13 @@ paths: description: > 'Name of the application that has an updated operation from [$/v1/relay-operation-update.body#application-name] - ==[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + ==[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' release-number: type: string description: > 'Release number of the application that has an updated operation from [$/v1/relay-operation-update.body#release-number] - ==[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + ==[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' old-operation-name: type: string description: > @@ -5114,19 +5114,19 @@ paths: type: string description: > 'Name of application that wants to receive notifications about changes of the embedding status - find or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + find or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' subscriber-release-number: type: string pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$' description: > 'Release of application that wants to receive notifications about changes of the embedding status - find or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + find or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' subscriber-operation: type: string minLength: 6 description: > 'Names of the operation that shall be addressed by notifications about changes of the embedding status - update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-007/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-*-*-*-*-007/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' subscriber-protocol: type: string enum: @@ -5134,7 +5134,7 @@ paths: - 'HTTPS' description: > 'Protocol to be used for addressing the application that wants to receive notifications about changes of the embedding status - update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' subscriber-address: type: object minProperties: 1 @@ -5151,20 +5151,20 @@ paths: pattern: '^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$' description: > 'IPv4 address of application that wants to receive notifications about changes of the embedding status - update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' domain-name: type: string pattern: '^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$' description: > 'Domain name of application that wants to receive notifications about changes of the embedding status - update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' subscriber-port: type: integer minimum: 0 maximum: 65535 description: > 'TCP port of application that wants to receive notifications about changes of the embedding status - update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + update or create [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' example: subscriber-application: 'ApplicationWhichWantsToGetNotifiedAboutEmbeddingStatusChanges' subscriber-release-number: '1.0.0' @@ -5206,7 +5206,7 @@ paths: example: 'EXPERIMENTAL' description: > 'Life cycle state of the consumed service - find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-is-013/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-is-013/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' '400': $ref: '#/components/responses/responseForErroredServiceRequests' '401': @@ -5221,7 +5221,7 @@ paths: $ref: '#/components/responses/responseForErroredServiceRequests' callbacks: EmbeddingStatusNotification: - url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-*-*-*-*-007/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-*-*-*-*-007/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] post: parameters: - $ref: '#/components/parameters/user' @@ -5374,19 +5374,19 @@ paths: minLength: 3 description: > 'If body provided, name of RegistryOffice application - find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-ro-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-ro-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' registry-office-application-release-number: type: string pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$' description: > 'If body provided, release of RegistryOffice application - find or update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-ro-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + find or update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-ro-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' registration-operation: type: string minLength: 6 description: > 'If body provided, operation for registering - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bm-ro-2-0-1-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-bm-ro-2-1-2-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' registry-office-protocol: type: string enum: @@ -5394,7 +5394,7 @@ paths: - 'HTTPS' description: > 'If body provided, protocol for addressing the RegistryOffice application - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ro-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' registry-office-address: type: object minProperties: 1 @@ -5411,20 +5411,20 @@ paths: pattern: '^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$' description: > 'If body provided, IPv4 address of RegistryOffice application - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ro-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' domain-name: type: string pattern: '^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$' description: > 'If body provided, domain name of RegistryOffice application - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ro-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' registry-office-port: type: integer minimum: 0 maximum: 65535 description: > 'If body provided, port of RegistryOffice application - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ro-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' http-address: type: object minProperties: 1 @@ -5441,20 +5441,20 @@ paths: pattern: '^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$' description: > 'If provided, own IPv4 address, which has to be documented (but not be directly used for formulating the callback) - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/ipv-4-address]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/ipv-4-address]' domain-name: type: string pattern: '^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$' description: > 'If provided, own domain name, which has to be documented (but not be directly used for formulating the callback) - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/domain-name]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/domain-name]' http-port: type: integer minimum: 0 maximum: 65535 description: > 'If provided, own TCP port, which has to be documented (but not be directly used for formulating the callback) - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-port]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-port]' preceding-application-name: type: string minLength: 3 @@ -5515,7 +5515,7 @@ paths: example: 'EXPERIMENTAL' description: > 'Life cycle state of the consumed service - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bm-000/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-bm-000/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' '400': $ref: '#/components/responses/responseForErroredServiceRequests' '401': @@ -5530,7 +5530,7 @@ paths: $ref: '#/components/responses/responseForErroredServiceRequests' callbacks: PromptForRegisteringCausesRegistrationRequest: - url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://{[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]}:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bm-ro-2-0-1-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ro-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://{[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ro-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ro-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]}:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ro-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-bm-ro-2-1-2-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] description: > 'DEPRECATED Callback shall be deleted with RO v3.0.0 @@ -5560,12 +5560,12 @@ paths: type: string description: > 'Own application name - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' release-number: type: string description: > 'Own release number - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' preceding-application-name: type: string description: > @@ -5582,17 +5582,17 @@ paths: type: string description: > 'Name of service for initiating embedding process - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bm-001/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-bm-001/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' client-update-operation: type: string description: > 'Name of service for broadcasting server changes - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bm-007/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-bm-007/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' operation-client-update-operation: type: string description: > 'Name of service for broadcasting replacements of operations by backward compatible substitutes - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bm-011/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-bm-011/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' tcp-server-list: type: array items: @@ -5606,7 +5606,7 @@ paths: type: string description: > 'Own protocol (shall be taken (if available) from the stored data, but not from the initiating request body, because attribute is not mandatory in the request body definition) - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-protocol]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-protocol]' address: type: object properties: @@ -5617,17 +5617,17 @@ paths: type: string description: > 'Own IPv4 address (shall be taken (if available) from the stored data, but not from the initiating request body, because attribute is not mandatory in the request body definition) - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/ipv-4-address]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/ipv-4-address]' domain-name: type: string description: > 'Own domain name (shall be taken (if available) from the stored data, but not from the initiating request body, because attribute is not mandatory in the request body definition) - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/domain-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/domain-name]' port: type: integer description: > 'Own TCP port (shall be taken from the stored data, but not from the initiating request body, because attribute is not mandatory in the request body definition) - from[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-port]' + from[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-port]' responses: '204': description: 'Application registered' @@ -5670,7 +5670,7 @@ paths: default: $ref: '#/components/responses/responseForErroredServiceRequests' PromptForRegisteringCausesRegistrationRequest2: - url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://{[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]}:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bm-ro-2-0-1-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ro-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://{[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ro-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ro-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]}:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ro-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-bm-ro-2-1-2-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] post: parameters: - $ref: '#/components/parameters/user' @@ -5699,12 +5699,12 @@ paths: type: string description: > 'Own application name - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' release-number: type: string description: > 'Own release number - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' preceding-application-name: type: string description: > @@ -5721,32 +5721,32 @@ paths: type: string description: > 'Name of service for initiating embedding process - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bm-001/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-bm-001/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' client-update-operation: type: string description: > 'Name of service for broadcasting server changes - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bm-007/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-bm-007/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' operation-client-update-operation: type: string description: > 'Name of service for broadcasting replacements of operations by backward compatible substitutes - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bm-011/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-bm-011/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' dispose-remainders-operation: type: string description: > 'Name of service for broadcasting de-registrations of applications - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bm-013/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-bm-013/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' preceding-release-operation: type: string description: > 'Name of service for broadcasting de-registrations of applications - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bm-014/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-bm-014/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' subsequent-release-operation: type: string description: > 'Name of service for broadcasting de-registrations of applications - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bm-015/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-bm-015/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' tcp-server: type: object properties: @@ -5754,7 +5754,7 @@ paths: type: string description: > 'Own protocol (shall be taken (if available) from the stored data, but not from the initiating request body, because attribute is not mandatory in the request body definition) - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-protocol]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-protocol]' address: type: object properties: @@ -5765,17 +5765,17 @@ paths: type: string description: > 'Own IPv4 address (shall be taken (if available) from the stored data, but not from the initiating request body, because attribute is not mandatory in the request body definition) - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/ipv-4-address]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/ipv-4-address]' domain-name: type: string description: > 'Own domain name (shall be taken (if available) from the stored data, but not from the initiating request body, because attribute is not mandatory in the request body definition) - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/domain-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/domain-name]' port: type: integer description: > 'Own TCP port (shall be taken from the stored data, but not from the initiating request body, because attribute is not mandatory in the request body definition) - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-port]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-port]' responses: '204': description: 'Application registered' @@ -5851,31 +5851,31 @@ paths: type: string description: > 'Name of RegistryOffice application - find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-ro-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-ro-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' registry-office-application-release-number: type: string pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$' description: > 'Release of RegistryOffice application - find or update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-ro-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + find or update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-ro-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' relay-server-replacement-operation: type: string minLength: 6 description: > 'Operation for requesting for broadcasting a new server address - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bm-ro-2-0-1-001/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-bm-ro-2-1-2-001/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' relay-operation-update-operation: type: string minLength: 6 description: > 'Operation for requesting for broadcasting a backward compatible replacement of an operation - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bm-ro-2-0-1-003/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-bm-ro-2-1-2-003/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' deregistration-operation: type: string minLength: 6 description: > 'Operation for deregistering from the application layer - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bm-ro-2-0-1-002/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-bm-ro-2-1-2-002/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' registry-office-protocol: type: string enum: @@ -5883,7 +5883,7 @@ paths: - 'HTTPS' description: > 'Protocol for addressing RegistryOffice application - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ro-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' registry-office-address: type: object minProperties: 1 @@ -5900,20 +5900,20 @@ paths: pattern: '^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$' description: > 'IPv4 address of RegistryOffice application - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ro-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' domain-name: type: string pattern: '^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$' description: > 'Domain name of RegistryOffice application - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ro-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' registry-office-port: type: integer minimum: 0 maximum: 65535 description: > 'Port of RegistryOffice application - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ro-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' old-release-protocol: type: string enum: @@ -5921,7 +5921,7 @@ paths: - 'HTTPS' description: > 'Protocol for addressing the currently running old release of the same application - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-or-1-0-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-or-2-1-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' old-release-address: type: object minProperties: 1 @@ -5938,20 +5938,20 @@ paths: pattern: '^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$' description: > 'IPv4 address of currently running old release of the same application - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-or-1-0-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-or-2-1-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' domain-name: type: string pattern: '^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$' description: > 'Domain name of currently running old release of the same application - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-or-1-0-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-or-2-1-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' old-release-port: type: integer minimum: 0 maximum: 65535 description: > 'Port of currently running old release of the same application - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-or-1-0-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-or-2-1-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' example: registry-office-application: 'RegistrationApplication' registry-office-application-release-number: '43.2.5' @@ -6000,7 +6000,7 @@ paths: example: 'EXPERIMENTAL' description: > 'Life cycle state of the consumed service - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bm-001/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-bm-001/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' '400': $ref: '#/components/responses/responseForErroredServiceRequests' '401': @@ -6015,7 +6015,7 @@ paths: $ref: '#/components/responses/responseForErroredServiceRequests' callbacks: PromptForEmbeddingCausesRequestForBequeathingData: - url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ro-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-or-1-0-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-or-1-0-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-or-1-0-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bm-or-1-0-0-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ro-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-or-2-1-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-or-2-1-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-or-2-1-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-bm-or-2-1-1-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] post: parameters: - $ref: '#/components/parameters/user' @@ -6040,17 +6040,17 @@ paths: type: string description: > 'Own application name - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' new-application-release: type: string description: > 'Own release number - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' new-application-protocol: type: string description: > 'Protocol expected by this application - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-protocol]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-protocol]' new-application-address: type: object properties: @@ -6061,17 +6061,17 @@ paths: type: string description: > 'Own IPv4 address - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/ipv-4-address]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/ipv-4-address]' domain-name: type: string description: > 'Own domain-name - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/domain-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/domain-name]' new-application-port: type: integer description: > 'Own TCP port - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-port]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-port]' responses: '204': description: 'Process of embedding a new release initiated' @@ -6148,19 +6148,19 @@ paths: type: string description: > 'Name of application that shall record the service requests - find, but not at OldRelease or NewRelease, [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-eatl-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + find, but not at OldRelease or NewRelease, [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-eatl-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' service-log-application-release-number: type: string pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$' description: > 'Release of application that shall record the service requests - find or update, but not at OldRelease or NewRelease, [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-eatl-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + find or update, but not at OldRelease or NewRelease, [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-eatl-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' service-log-operation: type: string minLength: 6 description: > 'Operation for recording the service requests - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bs-eatl-2-0-1-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-bs-eatl-2-1-2-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' service-log-protocol: type: string enum: @@ -6168,7 +6168,7 @@ paths: - 'HTTPS' description: > 'Protocol to be used for addressing the application that shall record the service requests - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-eatl-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-eatl-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' service-log-address: type: object minProperties: 1 @@ -6185,20 +6185,20 @@ paths: pattern: '^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$' description: > 'IPv4 address of application that shall record the service requests - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-eatl-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-eatl-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' domain-name: type: string pattern: '^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$' description: > 'Domain name of application that shall record the service requests - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-eatl-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-eatl-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' service-log-port: type: integer minimum: 0 maximum: 65535 description: > 'Port of application that shall record the service requests - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-eatl-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-eatl-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' example: service-log-application: 'LoggingApplication' service-log-application-release-number: '34.2.6' @@ -6240,7 +6240,7 @@ paths: example: 'EXPERIMENTAL' description: > 'Life cycle state of the consumed service - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bm-002/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-bm-002/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' '400': $ref: '#/components/responses/responseForErroredServiceRequests' '401': @@ -6255,7 +6255,7 @@ paths: $ref: '#/components/responses/responseForErroredServiceRequests' callbacks: ServiceRequestCausesLoggingRequest: - url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-eatl-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-eatl-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-eatl-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-eatl-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bs-eatl-2-0-1-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-eatl-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-eatl-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-eatl-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-eatl-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-bs-eatl-2-1-2-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] post: parameters: - $ref: '#/components/parameters/user' @@ -6293,25 +6293,25 @@ paths: description: 'ApplicationName on the client side; as defined in all service headers [originator]' application-name: type: string - description: '[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' + description: '[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' release-number: type: string - description: '[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' + description: '[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' operation-name: type: string - description: '[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-*/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' + description: '[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-*/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' response-code: type: integer description: 'Response code sent to [originator] after invoking [operation-name] at [application-name]' timestamp: type: string - description: 'Date and time when [application-name] sent response to [originator]; only to be provided, if [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bs-eatl-2-0-1-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/detailed-logging-is-on] == true' + description: 'Date and time when [application-name] sent response to [originator]; only to be provided, if [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-bs-eatl-2-1-2-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/detailed-logging-is-on] == true' stringified-body: type: string - description: 'Stringified body of the request addressed from [originator] to [application-name]; only to be provided, if [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bs-eatl-2-0-1-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/detailed-logging-is-on] == true' + description: 'Stringified body of the request addressed from [originator] to [application-name]; only to be provided, if [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-bs-eatl-2-1-2-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/detailed-logging-is-on] == true' stringified-response: type: string - description: 'Stringified response sent from [application-name] to [originator]; only to be provided, if [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bs-eatl-2-0-1-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/detailed-logging-is-on] == true' + description: 'Stringified response sent from [application-name] to [originator]; only to be provided, if [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-bs-eatl-2-1-2-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/detailed-logging-is-on] == true' url: type: string description: 'Complete URL that has been addressed by the request; only to be provided, if the client is sending the record to EaTL, because the server could not be reached' @@ -6393,19 +6393,19 @@ paths: type: string description: > 'Name of application that shall record the OaM requests - find, but not at OldRelease or NewRelease, [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-ol-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + find, but not at OldRelease or NewRelease, [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-ol-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' oam-log-application-release-number: type: string pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$' description: > 'Release of application that shall record the OaM request - find or update, but not at OldRelease or NewRelease, [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-ol-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + find or update, but not at OldRelease or NewRelease, [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-ol-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' oam-log-operation: type: string minLength: 6 description: > 'Operation for recording the OaM requests - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bs-ol-2-0-1-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-bs-ol-2-1-2-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' oam-log-protocol: type: string enum: @@ -6413,7 +6413,7 @@ paths: - 'HTTPS' description: > 'Protocol to be used for addressing the application that shall record the OaM requests - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ol-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ol-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' oam-log-address: type: object minProperties: 1 @@ -6430,20 +6430,20 @@ paths: pattern: '^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$' description: > 'IPv4 address of application that shall record the OaM requests - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ol-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ol-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' domain-name: type: string pattern: '^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$' description: > 'Domain name of application that shall record the OaM requests - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ol-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ol-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' oam-log-port: type: integer minimum: 0 maximum: 65535 description: > 'Port of application that shall record the OaM requests - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ol-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ol-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' example: oam-log-application: 'LoggingApplication' oam-log-application-release-number: '54.3.2' @@ -6485,7 +6485,7 @@ paths: example: 'EXPERIMENTAL' description: > 'Life cycle state of the consumed service - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bm-003/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-bm-003/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' '400': $ref: '#/components/responses/responseForErroredServiceRequests' '401': @@ -6500,7 +6500,7 @@ paths: $ref: '#/components/responses/responseForErroredServiceRequests' callbacks: OamRequestCausesLoggingRequest: - url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ol-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ol-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ol-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-ol-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bs-ol-2-0-1-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ol-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ol-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ol-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ol-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-bs-ol-2-1-2-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] post: parameters: - $ref: '#/components/parameters/user' @@ -6528,12 +6528,12 @@ paths: type: string description: > 'Own application name - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' release-number: type: string description: > 'Own release number - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' method: type: string description: 'Method applied in the OaM request, which is to be recorded' @@ -6624,19 +6624,19 @@ paths: type: string description: > 'Name of application that no longer wants to receive notifications - find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' subscriber-release-number: type: string pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$' description: > 'Release of application that no longer wants to receive notifications - find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' subscription: type: string minLength: 6 description: > 'Name of operation that had been addressed for starting getting notifications - find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-*/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' + find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-*/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' example: subscriber-application: 'AlreadySubscribingApplication' subscriber-release-number: '38.4.3' @@ -6673,7 +6673,7 @@ paths: example: 'EXPERIMENTAL' description: > 'Life cycle state of the consumed service - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bm-004/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-bm-004/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' '400': $ref: '#/components/responses/responseForErroredServiceRequests' '401': @@ -6722,19 +6722,19 @@ paths: type: string description: > 'Name of application that shall approve the OaM requests - find, but not at OldRelease or NewRelease, [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-aa-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + find, but not at OldRelease or NewRelease, [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-aa-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' oam-approval-application-release-number: type: string pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$' description: > 'Release of application that shall approve the OaM requests - find or update, but not at OldRelease or NewRelease, [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-aa-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + find or update, but not at OldRelease or NewRelease, [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-aa-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' oam-approval-operation: type: string minLength: 6 description: > 'Operation for approving the OaM requests - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bs-aa-2-0-1-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-bs-aa-2-1-2-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' oam-approval-protocol: type: string enum: @@ -6742,7 +6742,7 @@ paths: - 'HTTPS' description: > 'Protocol to be used for addressing the application that shall approve the OaM requests - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-aa-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-aa-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' oam-approval-address: type: object minProperties: 1 @@ -6759,20 +6759,20 @@ paths: pattern: '^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$' description: > 'IPv4 address of application that shall approve the OaM requests - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-aa-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-aa-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' domain-name: type: string pattern: '^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$' description: > 'Domain name of application that shall approve the OaM requests - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-aa-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-aa-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' oam-approval-port: type: integer minimum: 0 maximum: 65535 description: > 'Port of application that shall approve the OaM requests - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-aa-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-aa-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' example: oam-approval-application: 'AccessApprover' oam-approval-application-release-number: '34.3.3' @@ -6814,7 +6814,7 @@ paths: example: 'EXPERIMENTAL' description: > 'Life cycle state of the consumed service - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bm-005/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-bm-005/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' '400': $ref: '#/components/responses/responseForErroredServiceRequests' '401': @@ -6829,7 +6829,7 @@ paths: $ref: '#/components/responses/responseForErroredServiceRequests' callbacks: BasicAuthRequestCausesInquiryForAuthentication: - url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-aa-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-aa-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-aa-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-aa-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bs-aa-2-0-1-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-aa-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-aa-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-aa-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-aa-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-bs-aa-2-1-2-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] post: parameters: - $ref: '#/components/parameters/user' @@ -6859,12 +6859,12 @@ paths: type: string description: > 'Own application name - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' release-number: type: string description: > 'Own application release number - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' operation-name: type: string description: > @@ -6984,24 +6984,24 @@ paths: type: string description: > 'Current name of the application that has updated connection data - find, but not at OldRelease or NewRelease, [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + find, but not at OldRelease or NewRelease, [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' current-release-number: type: string pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$' description: > 'Current release number of the application that has updated connection data - find, but not at OldRelease or NewRelease, [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + find, but not at OldRelease or NewRelease, [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' future-application-name: type: string description: > 'Future name of the application that has updated connection data - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' future-release-number: type: string pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$' description: > 'Future release number of the application that has updated connection data - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' future-protocol: type: string enum: @@ -7009,7 +7009,7 @@ paths: - 'HTTPS' description: > 'Protocol to be used in future for addressing the application that has updated connection data - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' future-address: type: object minProperties: 1 @@ -7026,20 +7026,20 @@ paths: pattern: '^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$' description: > 'Future IPv4 address of the application that has updated connection data - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' domain-name: type: string pattern: '^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$' description: > 'Future domain name of the application that has updated connection data - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' future-port: type: integer minimum: 0 maximum: 65535 description: > 'Future port of the application that has updated connection data - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-*/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' example: current-application-name: 'CurrentApplicationName' current-release-number: '43.5.5' @@ -7082,7 +7082,7 @@ paths: example: 'EXPERIMENTAL' description: > 'Life cycle state of the consumed service - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bm-007/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-bm-007/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' '400': $ref: '#/components/responses/responseForErroredServiceRequests' '401': @@ -7222,7 +7222,7 @@ paths: example: 'EXPERIMENTAL' description: > 'Life cycle state of the consumed service - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bm-008/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-bm-008/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' '400': $ref: '#/components/responses/responseForErroredServiceRequests' '401': @@ -7271,43 +7271,43 @@ paths: type: string description: > 'Name of application that shall document the application layer topology - find, but not at OldRelease or NewRelease, [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-alt-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + find, but not at OldRelease or NewRelease, [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-alt-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' topology-application-release-number: type: string pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$' description: > 'Release of application that shall document the application layer topology - find or update, but not at OldRelease or NewRelease, [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-alt-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + find or update, but not at OldRelease or NewRelease, [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-alt-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' topology-operation-ltp-update: type: string minLength: 6 description: > 'Operation for updating an LTP - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bm-alt-2-0-1-001/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-bm-alt-2-1-2-001/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' topology-operation-ltp-deletion: type: string minLength: 6 description: > 'Operation for deleting an LTP and its dependents like FC port and Link (if applicable) - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bm-alt-2-0-1-002/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-bm-alt-2-1-2-002/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' topology-operation-fc-update: type: string minLength: 6 description: > 'Operation for updating a ForwardingConstruct instance - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bm-alt-2-0-1-003/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-bm-alt-2-1-2-003/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' topology-operation-fc-port-update: type: string minLength: 6 description: > 'Operation for updating an FC port - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bm-alt-2-0-1-004/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-bm-alt-2-1-2-004/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' topology-operation-fc-port-deletion: type: string minLength: 6 description: > 'Operation for deleting an FC port - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bm-alt-2-0-1-005/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-bm-alt-2-1-2-005/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' topology-application-protocol: type: string enum: @@ -7315,7 +7315,7 @@ paths: - 'HTTPS' description: > 'Protocol to be used for addresing the application that shall document the application layer topology - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' topology-application-address: type: object minProperties: 1 @@ -7332,20 +7332,20 @@ paths: pattern: '^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$' description: > 'IPv4 address of application that shall document the application layer topology - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' domain-name: type: string pattern: '^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$' description: > 'Domain name of application that shall document the application layer topology - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' topology-application-port: type: integer minimum: 0 maximum: 65535 description: > 'Port of application that shall document the application layer topology - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' example: topology-application: 'InventoryApplication' topology-application-release-number: '54.1.3' @@ -7475,7 +7475,7 @@ paths: example: 'EXPERIMENTAL' description: > 'Life cycle state of the consumed service - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bm-009/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-bm-009/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' '400': $ref: '#/components/responses/responseForErroredServiceRequests' '401': @@ -7490,7 +7490,7 @@ paths: $ref: '#/components/responses/responseForErroredServiceRequests' callbacks: ServiceRequestCausesLtpUpdateRequest: - url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bm-alt-2-0-1-001/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-bm-alt-2-1-2-001/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] description: 'To be activated whenever a service request causes the creation or change of an LTP' post: parameters: @@ -7549,7 +7549,7 @@ paths: default: $ref: '#/components/responses/responseForErroredServiceRequests' ServiceRequestCausesLtpDeletionRequest: - url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bm-alt-2-0-1-002/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-bm-alt-2-1-2-002/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] description: 'To be activated whenever a service request causes an LTP being deleted' post: parameters: @@ -7613,7 +7613,7 @@ paths: default: $ref: '#/components/responses/responseForErroredServiceRequests' ServiceRequestCausesFcUpdateRequest: - url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bm-alt-2-0-1-003/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-bm-alt-2-1-2-003/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] description: 'To be activated whenever a service request causes the creation or change of an FC port' post: parameters: @@ -7706,7 +7706,7 @@ paths: default: $ref: '#/components/responses/responseForErroredServiceRequests' ServiceRequestCausesFcPortUpdateRequest: - url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bm-alt-2-0-1-004/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-bm-alt-2-1-2-004/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] description: 'To be activated whenever a service request causes an FC port being updated' post: parameters: @@ -7784,7 +7784,7 @@ paths: default: $ref: '#/components/responses/responseForErroredServiceRequests' ServiceRequestCausesFcPortDeletionRequest: - url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bm-alt-2-0-1-005/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-bm-alt-2-1-2-005/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] description: 'To be activated whenever a service request causes an FC port being deleted' post: parameters: @@ -7851,7 +7851,7 @@ paths: default: $ref: '#/components/responses/responseForErroredServiceRequests' OamRequestCausesLtpUpdateRequest: - url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bm-alt-2-0-1-001/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-bm-alt-2-1-2-001/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] description: 'To be activated whenever an OaM request causes the creation or change of an LTP' post: parameters: @@ -7910,7 +7910,7 @@ paths: default: $ref: '#/components/responses/responseForErroredServiceRequests' OamRequestCausesLtpDeletionRequest: - url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bm-alt-2-0-1-002/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-bm-alt-2-1-2-002/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] description: 'To be activated whenever an OaM request causes an LTP being deleted' post: parameters: @@ -7974,7 +7974,7 @@ paths: default: $ref: '#/components/responses/responseForErroredServiceRequests' OamRequestCausesFcUpdateRequest: - url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bm-alt-2-0-1-003/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-bm-alt-2-1-2-003/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] description: 'To be activated whenever an OaM request causes the creation or change of an FC port' post: parameters: @@ -8067,7 +8067,7 @@ paths: default: $ref: '#/components/responses/responseForErroredServiceRequests' OamRequestCausesFcPortUpdateRequest: - url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bm-alt-2-0-1-004/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-bm-alt-2-1-2-004/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] description: 'To be activated whenever an OaM request causes an FC port being updated' post: parameters: @@ -8149,7 +8149,7 @@ paths: default: $ref: '#/components/responses/responseForErroredServiceRequests' OamRequestCausesFcPortDeletionRequest: - url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-alt-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bm-alt-2-0-1-005/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-alt-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-bm-alt-2-1-2-005/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] description: 'To be activated whenever an OaM request causes an FC port being deleted' post: parameters: @@ -8286,7 +8286,7 @@ paths: example: 'EXPERIMENTAL' description: > 'Life cycle state of the consumed service - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bm-010/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-bm-010/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' '400': $ref: '#/components/responses/responseForErroredServiceRequests' '401': @@ -8329,25 +8329,25 @@ paths: type: string description: > 'Name of the application that has an updated operation - find, but not at OldRelease or NewRelease, [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + find, but not at OldRelease or NewRelease, [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' release-number: type: string pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$' description: > 'Release number of the application that has an updated operation - find, but not at OldRelease or NewRelease, [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + find, but not at OldRelease or NewRelease, [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' old-operation-name: type: string minLength: 6 description: > 'Name of the deprecated operation - find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-*/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-*/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' new-operation-name: type: string minLength: 6 description: > 'Name of the replacing operation - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-*/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-*/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' example: application-name: 'ApplicationName' release-number: '75.4.3' @@ -8385,7 +8385,7 @@ paths: example: 'EXPERIMENTAL' description: > 'Life cycle state of the consumed service - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bm-011/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-bm-011/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' '400': $ref: '#/components/responses/responseForErroredServiceRequests' '401': @@ -8430,19 +8430,19 @@ paths: type: string description: > 'Name of the application that approves the BasicAuth requests - find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-aa-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-aa-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' release-number: type: string pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$' description: > 'Release of the application that approves the BasicAuth requests - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-aa-2-0-1-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-aa-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' operation-name: type: string minLength: 6 description: > 'Operation for approving the BasicAuth requests - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bs-aa-2-0-1-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-bs-aa-2-1-2-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' protocol: type: string enum: @@ -8450,7 +8450,7 @@ paths: - 'HTTPS' description: > 'Protocol to be used for addressing the application that approves the BasicAuth requests - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-aa-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-aa-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' address: type: object minProperties: 1 @@ -8467,20 +8467,20 @@ paths: pattern: '^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$' description: > 'IPv4 address of the application that approves the BasicAuth requests - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-aa-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-aa-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' domain-name: type: string pattern: '^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$' description: > 'Domain name of the application that approves the BasicAuth requests - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-aa-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-aa-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' port: type: integer minimum: 0 maximum: 65535 description: > 'Port of the application that approves the BasicAuth requests - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-aa-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-aa-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' example: application-name: 'AccessApplication' release-number: '43.2.4' @@ -8522,7 +8522,7 @@ paths: example: 'EXPERIMENTAL' description: > 'Life cycle state of the consumed service - find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bm-005/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-bm-005/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' '400': $ref: '#/components/responses/responseForErroredServiceRequests' '401': @@ -8537,7 +8537,7 @@ paths: $ref: '#/components/responses/responseForErroredServiceRequests' callbacks: BasicAuthRequestCausesInquiryForAuthentication: - url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-aa-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-aa-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-aa-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-aa-2-0-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-bs-aa-2-0-1-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-aa-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-aa-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-aa-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-aa-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-bs-aa-2-1-2-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] post: parameters: - $ref: '#/components/parameters/user' @@ -8567,12 +8567,12 @@ paths: type: string description: > 'Own application name - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' release-number: type: string description: > 'Own application release number - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' operation-name: type: string description: > @@ -8706,7 +8706,7 @@ paths: example: 'EXPERIMENTAL' description: > 'Life cycle state of the consumed service - find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bm-013/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + find in [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-bm-013/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' '400': $ref: '#/components/responses/responseForErroredServiceRequests' '401': @@ -8746,12 +8746,12 @@ paths: type: string description: > 'ApplicationName of the OldRelease - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-or-1-0-0-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-or-2-1-1-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' release-number: type: string description: > 'ReleaseNumber of the OldRelease - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-or-1-0-0-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-or-2-1-1-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' example: application-name: 'ApplicationNameOfTheOldRelease' release-number: '45.4.7' @@ -8784,7 +8784,7 @@ paths: example: 'EXPERIMENTAL' description: > 'Life cycle state of the consumed service - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bm-014/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-bm-014/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' '400': $ref: '#/components/responses/responseForErroredServiceRequests' '404': @@ -8824,13 +8824,13 @@ paths: type: string description: > 'Name of the application that is target of the bequeath-your-data-and-die process - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-nr-1-0-0-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-nr-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' release-number: type: string pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$' description: > 'Release of the application that is target of the bequeath-your-data-and-die process - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-c-nr-1-0-0-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-nr-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number]' protocol: type: string enum: @@ -8838,7 +8838,7 @@ paths: - 'HTTPS' description: > 'Protocol to be used during the bequeath-your-data-and-die process - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-nr-1-0-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-nr-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]' address: type: object minProperties: 1 @@ -8855,20 +8855,20 @@ paths: pattern: '^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$' description: > 'IPv4 address to be used during the bequeath-your-data-and-die process - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-nr-1-0-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-nr-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]' domain-name: type: string pattern: '^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$' description: > 'Domain name to be used during the bequeath-your-data-and-die process - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-nr-1-0-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-nr-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]' port: type: integer minimum: 0 maximum: 65535 description: > 'Port to be used during the bequeath-your-data-and-die process - update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-c-nr-1-0-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' + update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-nr-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port]' example: application-name: 'ApplicationNameOfNewRelease' release-number: '17.1.2' @@ -8892,14 +8892,14 @@ paths: type: string description: > 'Operation for starting the handover process on the already existing application - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-im-000/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-im-000/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' data-transfer-operations-list: type: array items: type: string description: > 'List of operations required for transferring data from the oldRelease to the newRelease - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-c-im-nr-*/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-im-nr-*/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name]' example: bequeath-your-data-and-die-operation: '/v1/bequeath-your-data-and-die' data-transfer-operations-list: @@ -8934,7 +8934,7 @@ paths: example: 'EXPERIMENTAL' description: > 'Life cycle state of the consumed service - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bm-015/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-bm-015/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' '400': $ref: '#/components/responses/responseForErroredServiceRequests' '404': @@ -9001,7 +9001,7 @@ paths: example: 'EXPERIMENTAL' description: > 'Life cycle state of the consumed service - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bs-000/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-bs-000/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' '400': $ref: '#/components/responses/responseForErroredServiceRequests' '403': @@ -9043,17 +9043,17 @@ paths: type: string description: > 'Own application name - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name]' release-number: type: string description: > 'Own release number - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-number]' application-purpose: type: string description: > 'Own application purpose - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-purpose]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-purpose]' data-update-period: type: string enum: @@ -9061,13 +9061,13 @@ paths: - '1h-period' - '24h-period' - 'manual' - description: 'from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/data-update-period]' + description: 'from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/data-update-period]' owner-name: type: string - description: 'from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/owner-name]' + description: 'from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/owner-name]' owner-email-address: type: string - description: 'from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/owner-email-address]' + description: 'from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/owner-email-address]' example: application-name: 'OwnApplicationName' release-number: '34.3.6' @@ -9104,7 +9104,7 @@ paths: example: 'EXPERIMENTAL' description: > 'Life cycle state of the consumed service - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bs-001/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-bs-001/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' '400': $ref: '#/components/responses/responseForErroredServiceRequests' '404': @@ -9188,7 +9188,7 @@ paths: example: 'EXPERIMENTAL' description: > 'Life cycle state of the consumed service - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bs-002/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-bs-002/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' '400': $ref: '#/components/responses/responseForErroredServiceRequests' '404': @@ -9226,13 +9226,13 @@ paths: properties: release-number: type: string - description: 'from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=*/release-number]' + description: 'from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=*/release-number]' release-date: type: string - description: 'from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=*/release-date]' + description: 'from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=*/release-date]' changes: type: string - description: 'from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=*/changes]' + description: 'from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=*/changes]' example: - release-number: '34.5.6' release-date: '20.11.2010' @@ -9266,7 +9266,7 @@ paths: example: 'EXPERIMENTAL' description: > 'Life cycle state of the consumed service - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bs-003/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-bs-003/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' '400': $ref: '#/components/responses/responseForErroredServiceRequests' '404': @@ -9329,7 +9329,7 @@ paths: example: 'EXPERIMENTAL' description: > 'Life cycle state of the consumed service - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bs-004/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-bs-004/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-configuration/life-cycle-state]' '400': $ref: '#/components/responses/responseForErroredServiceRequests' '404': @@ -10767,7 +10767,7 @@ paths: unit: 'Unit at input field' display-in-new-browser-window: false action-profile-configuration: - consequent-operation-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bs-002/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name' + consequent-operation-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-bs-002/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name' '400': $ref: '#/components/responses/responseForErroredOamRequests' '401': @@ -11018,7 +11018,7 @@ paths: properties: action-profile-1-0:consequent-operation-reference: type: string - example: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-op-s-bs-002/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name' + example: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-bs-002/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name' responses: '204': description: 'Reference on the consequent operation configured' @@ -11247,7 +11247,7 @@ paths: type: string example: response-profile-1-0:value: - value-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name' + value-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name' '400': $ref: '#/components/responses/responseForErroredOamRequests' '401': @@ -11288,7 +11288,7 @@ paths: type: string example: response-profile-1-0:value: - value-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name' + value-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/application-name' responses: '204': description: 'Request path configured' @@ -13523,17 +13523,17 @@ components: type: string description: > 'Field name - from [/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-0-response-p-*/response-profile-1-0:response-profile-pac/response-profile-capability/field-name]' + from [/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-2-response-p-*/response-profile-1-0:response-profile-pac/response-profile-capability/field-name]' value: type: string description: > 'Field value - from [/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-0-response-p-*/response-profile-1-0:response-profile-pac/response-profile-configuration/value]' + from [/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-2-response-p-*/response-profile-1-0:response-profile-pac/response-profile-configuration/value]' datatype: type: string description: > 'Field datatype - from [/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-0-response-p-*/response-profile-1-0:response-profile-pac/response-profile-capability/datatype]' + from [/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-2-response-p-*/response-profile-1-0:response-profile-pac/response-profile-capability/datatype]' consequent-action-list: type: array items: @@ -13547,20 +13547,20 @@ components: type: string description: > 'Label that shall be presented on the button - from [/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-0-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/label]' + from [/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/label]' request: type: string description: > 'Request that shall be called, when button gets pressed from - [{/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-protocol}] + [{/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-protocol}] :// - [{/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/ipv-4-address} + [{/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/ipv-4-address} or - {/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/domain-name}] + {/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/domain-name}] : - [{/core-model-1-4:control-construct/logical-termination-point=ro-2-1-0-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-port}] - [{/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-0-action-p-*/action-profile-1-0:action-profile-pac/action-profile-configuration/consequent-operation-reference}]' + [{/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-port}] + [{/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-configuration/consequent-operation-reference}]' input-value-list: type: array items: @@ -13572,17 +13572,17 @@ components: type: string description: > 'Name of an input value required for executing the Request - from [/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-0-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/input-value-list=*/name]' + from [/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/input-value-list=*/name]' unit: type: string description: > 'Unit of an input value required for executing the Request - from [/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-0-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/input-value-list=*/unit]' + from [/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/input-value-list=*/unit]' display-in-new-browser-window: type: boolean description: > 'True in case Request shall be represented in a new browser window - from [/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-0-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/display-in-new-browser-window]' + from [/core-model-1-4:control-construct/profile-collection/profile=ro-2-1-2-action-p-*/action-profile-1-0:action-profile-pac/action-profile-capability/display-in-new-browser-window]' logicalTerminationPoint: type: object required: From 5f29152bc4c97c6fc70ee36fe297b9e6ecb9cb2d Mon Sep 17 00:00:00 2001 From: openBackhaul Date: Mon, 26 Aug 2024 11:54:29 +0200 Subject: [PATCH 10/12] Update oas to AP2.1.2 --- spec/RegistryOffice+services.yaml | 18 +-- spec/RegistryOffice.yaml | 214 +++++++++++++++--------------- 2 files changed, 115 insertions(+), 117 deletions(-) diff --git a/spec/RegistryOffice+services.yaml b/spec/RegistryOffice+services.yaml index 791659e..3c7d320 100644 --- a/spec/RegistryOffice+services.yaml +++ b/spec/RegistryOffice+services.yaml @@ -93,7 +93,7 @@ clients: - http-client: application-name: RegistryOffice - release-number: 2.0.1 + release-number: 2.1.1 uuid: ro-2-1-2-http-c-or-2-1-1-000 tcp-client: remote-protocol: http @@ -112,7 +112,7 @@ clients: - http-client: application-name: NewRelease - release-number: 2.1.0 + release-number: 2.1.2 uuid: ro-2-1-2-http-c-nr-2-1-2-000 tcp-client: remote-protocol: http @@ -135,7 +135,7 @@ clients: - http-client: application-name: RegistryOffice - release-number: 2.0.1 + release-number: 2.1.2 uuid: ro-2-1-2-http-c-ro-2-1-2-000 tcp-client: remote-protocol: http @@ -172,7 +172,7 @@ clients: - http-client: application-name: TypeApprovalRegister - release-number: 2.0.1 + release-number: 2.1.2 uuid: ro-2-1-2-http-c-tar-2-1-2-000 tcp-client: remote-protocol: http @@ -209,7 +209,7 @@ clients: - http-client: application-name: ExecutionAndTraceLog - release-number: 2.0.1 + release-number: 2.1.2 uuid: ro-2-1-2-http-c-eatl-2-1-2-000 tcp-client: remote-protocol: http @@ -244,7 +244,7 @@ clients: - http-client: application-name: OamLog - release-number: 2.0.1 + release-number: 2.1.2 uuid: ro-2-1-2-http-c-ol-2-1-2-000 tcp-client: remote-protocol: http @@ -279,7 +279,7 @@ clients: - http-client: application-name: AccessAdministration - release-number: 2.0.1 + release-number: 2.1.2 uuid: ro-2-1-2-http-c-aa-2-1-2-000 tcp-client: remote-protocol: http @@ -314,7 +314,7 @@ clients: - http-client: application-name: ApplicationLayerTopology - release-number: 2.0.1 + release-number: 2.1.2 uuid: ro-2-1-2-http-c-alt-2-1-2-000 tcp-client: remote-protocol: http @@ -361,7 +361,7 @@ clients: - http-client: application-name: OperationKeyManagement - release-number: 2.0.1 + release-number: 2.1.2 uuid: ro-2-1-2-http-c-okm-2-1-2-000 tcp-client: remote-protocol: http diff --git a/spec/RegistryOffice.yaml b/spec/RegistryOffice.yaml index 8c468fa..00f6adc 100644 --- a/spec/RegistryOffice.yaml +++ b/spec/RegistryOffice.yaml @@ -5332,9 +5332,9 @@ paths: default: $ref: '#/components/responses/responseForErroredServiceRequests' -######################################## +######################################################################################################################## # Service Layer - Basic Part -######################################## +######################################################################################################################## /v1/register-yourself: parameters: - $ref: '#/components/parameters/user' @@ -5529,12 +5529,10 @@ paths: default: $ref: '#/components/responses/responseForErroredServiceRequests' callbacks: - PromptForRegisteringCausesRegistrationRequest: + PromptForRegisteringCausesRegistrationRequest2: url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ro-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://{[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ro-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ro-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]}:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ro-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-bm-ro-2-1-2-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] description: > - 'DEPRECATED - Callback shall be deleted with RO v3.0.0 - Starting from RO v2.1.0, PromptForRegisteringCausesRegistrationRequest shall be executed first and PromptForRegisteringCausesRegistrationRequest2 second. Sequence shall be kept regardless of the respective HTTP response codes.' + 'Starting from RO v2.1.0, PromptForRegisteringCausesRegistrationRequest2 shall be executed first, only if HTTP response code different from 204 PromptForRegisteringCausesRegistrationRequest shall be executed, too.' post: parameters: - $ref: '#/components/parameters/user' @@ -5554,7 +5552,10 @@ paths: - embedding-operation - client-update-operation - operation-client-update-operation - - tcp-server-list + - dispose-remainders-operation + - preceding-release-operation + - subsequent-release-operation + - tcp-server properties: application-name: type: string @@ -5593,41 +5594,50 @@ paths: description: > 'Name of service for broadcasting replacements of operations by backward compatible substitutes from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-bm-011/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' - tcp-server-list: - type: array - items: - type: object - required: - - protocol - - address - - port - properties: - protocol: - type: string - description: > - 'Own protocol (shall be taken (if available) from the stored data, but not from the initiating request body, because attribute is not mandatory in the request body definition) - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-protocol]' - address: - type: object - properties: - ip-address: - type: object - properties: - ipv-4-address: - type: string - description: > - 'Own IPv4 address (shall be taken (if available) from the stored data, but not from the initiating request body, because attribute is not mandatory in the request body definition) - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/ipv-4-address]' - domain-name: - type: string - description: > - 'Own domain name (shall be taken (if available) from the stored data, but not from the initiating request body, because attribute is not mandatory in the request body definition) - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/domain-name]' - port: - type: integer - description: > - 'Own TCP port (shall be taken from the stored data, but not from the initiating request body, because attribute is not mandatory in the request body definition) - from[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-port]' + dispose-remainders-operation: + type: string + description: > + 'Name of service for broadcasting de-registrations of applications + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-bm-013/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' + preceding-release-operation: + type: string + description: > + 'Name of service for broadcasting de-registrations of applications + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-bm-014/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' + subsequent-release-operation: + type: string + description: > + 'Name of service for broadcasting de-registrations of applications + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-bm-015/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' + tcp-server: + type: object + properties: + protocol: + type: string + description: > + 'Own protocol (shall be taken (if available) from the stored data, but not from the initiating request body, because attribute is not mandatory in the request body definition) + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-protocol]' + address: + type: object + properties: + ip-address: + type: object + properties: + ipv-4-address: + type: string + description: > + 'Own IPv4 address (shall be taken (if available) from the stored data, but not from the initiating request body, because attribute is not mandatory in the request body definition) + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/ipv-4-address]' + domain-name: + type: string + description: > + 'Own domain name (shall be taken (if available) from the stored data, but not from the initiating request body, because attribute is not mandatory in the request body definition) + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/domain-name]' + port: + type: integer + description: > + 'Own TCP port (shall be taken from the stored data, but not from the initiating request body, because attribute is not mandatory in the request body definition) + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-port]' responses: '204': description: 'Application registered' @@ -5669,8 +5679,10 @@ paths: $ref: '#/components/responses/responseForErroredServiceRequests' default: $ref: '#/components/responses/responseForErroredServiceRequests' - PromptForRegisteringCausesRegistrationRequest2: + PromptForRegisteringCausesRegistrationRequest: url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ro-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://{[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ro-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ro-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name]}:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ro-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-bm-ro-2-1-2-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + description: > + 'DEPRECATED - Callback shall be deleted with RO v3.0.0' post: parameters: - $ref: '#/components/parameters/user' @@ -5690,10 +5702,7 @@ paths: - embedding-operation - client-update-operation - operation-client-update-operation - - dispose-remainders-operation - - preceding-release-operation - - subsequent-release-operation - - tcp-server + - tcp-server-list properties: application-name: type: string @@ -5732,50 +5741,41 @@ paths: description: > 'Name of service for broadcasting replacements of operations by backward compatible substitutes from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-bm-011/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' - dispose-remainders-operation: - type: string - description: > - 'Name of service for broadcasting de-registrations of applications - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-bm-013/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' - preceding-release-operation: - type: string - description: > - 'Name of service for broadcasting de-registrations of applications - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-bm-014/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' - subsequent-release-operation: - type: string - description: > - 'Name of service for broadcasting de-registrations of applications - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-s-bm-015/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name]' - tcp-server: - type: object - properties: - protocol: - type: string - description: > - 'Own protocol (shall be taken (if available) from the stored data, but not from the initiating request body, because attribute is not mandatory in the request body definition) - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-protocol]' - address: - type: object - properties: - ip-address: - type: object - properties: - ipv-4-address: - type: string - description: > - 'Own IPv4 address (shall be taken (if available) from the stored data, but not from the initiating request body, because attribute is not mandatory in the request body definition) - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/ipv-4-address]' - domain-name: - type: string - description: > - 'Own domain name (shall be taken (if available) from the stored data, but not from the initiating request body, because attribute is not mandatory in the request body definition) - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/domain-name]' - port: - type: integer - description: > - 'Own TCP port (shall be taken from the stored data, but not from the initiating request body, because attribute is not mandatory in the request body definition) - from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-port]' + tcp-server-list: + type: array + items: + type: object + required: + - protocol + - address + - port + properties: + protocol: + type: string + description: > + 'Own protocol (shall be taken (if available) from the stored data, but not from the initiating request body, because attribute is not mandatory in the request body definition) + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-protocol]' + address: + type: object + properties: + ip-address: + type: object + properties: + ipv-4-address: + type: string + description: > + 'Own IPv4 address (shall be taken (if available) from the stored data, but not from the initiating request body, because attribute is not mandatory in the request body definition) + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/ipv-4-address]' + domain-name: + type: string + description: > + 'Own domain name (shall be taken (if available) from the stored data, but not from the initiating request body, because attribute is not mandatory in the request body definition) + from [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-address/domain-name]' + port: + type: integer + description: > + 'Own TCP port (shall be taken from the stored data, but not from the initiating request body, because attribute is not mandatory in the request body definition) + from[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-s-000/layer-protocol=0/tcp-server-interface-1-0:tcp-server-interface-pac/tcp-server-interface-configuration/local-port]' responses: '204': description: 'Application registered' @@ -6148,7 +6148,7 @@ paths: type: string description: > 'Name of application that shall record the service requests - find, but not at OldRelease or NewRelease, [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-eatl-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + find or update, but not at OldRelease or NewRelease, [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-eatl-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' service-log-application-release-number: type: string pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$' @@ -6393,7 +6393,7 @@ paths: type: string description: > 'Name of application that shall record the OaM requests - find, but not at OldRelease or NewRelease, [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-ol-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + find or update, but not at OldRelease or NewRelease, [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-ol-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' oam-log-application-release-number: type: string pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$' @@ -6722,7 +6722,7 @@ paths: type: string description: > 'Name of application that shall approve the OaM requests - find, but not at OldRelease or NewRelease, [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-aa-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + find or update, but not at OldRelease or NewRelease, [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-aa-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' oam-approval-application-release-number: type: string pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$' @@ -7271,7 +7271,7 @@ paths: type: string description: > 'Name of application that shall document the application layer topology - find, but not at OldRelease or NewRelease, [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-alt-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + find or update, but not at OldRelease or NewRelease, [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-alt-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' topology-application-release-number: type: string pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$' @@ -8430,7 +8430,7 @@ paths: type: string description: > 'Name of the application that approves the BasicAuth requests - find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-aa-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' + find or update [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-aa-2-1-2-000/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name]' release-number: type: string pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$' @@ -9339,9 +9339,9 @@ paths: default: $ref: '#/components/responses/responseForErroredServiceRequests' -######################################## +######################################################################################################################## # OAM Layer - Individual Part -######################################## +######################################################################################################################## /core-model-1-4:control-construct: get: operationId: getControlConstruct @@ -10781,9 +10781,9 @@ paths: default: $ref: '#/components/responses/responseForErroredOamRequests' -######################################## +######################################################################################################################## # OAM Layer - Basic Part -######################################## +######################################################################################################################## /core-model-1-4:control-construct/profile-collection/profile={uuid}/action-profile-1-0:action-profile-pac/action-profile-capability/operation-name: parameters: - in: path @@ -11446,7 +11446,7 @@ paths: properties: file-profile-1-0:file-name: type: string - pattern: '^([A-Za-z0-9-_,\s]{3,})\.([A-Za-z]{3})$' + pattern: '^([A-Za-z0-9-_,\s]{3,})\.([A-Za-z]{3,})$' example: 'application-data.json' responses: '204': @@ -11838,7 +11838,7 @@ paths: required: true schema: type: string - pattern: '^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-op-s-([bi][ms])-([0-9]{3})$' + pattern: '^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-op-s(-(get|put|post|del|pat))?-([bi][ms])-([0-9]{3})$' example: 'xy-15-3-2-op-s-bm-000' get: operationId: getOperationServerOperationName @@ -11879,7 +11879,7 @@ paths: required: true schema: type: string - pattern: '^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-op-s-([bi][ms])-([0-9]{3})$' + pattern: '^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-op-s(-(get|put|post|del|pat))?-([bi][ms])-([0-9]{3})$' example: 'xy-15-3-2-op-s-bm-000' get: operationId: getOperationServerLifeCycleState @@ -11968,7 +11968,7 @@ paths: required: true schema: type: string - pattern: '^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-op-s-([bi][ms])-([0-9]{3})$' + pattern: '^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-op-s(-(get|put|post|del|pat))?-([bi][ms])-([0-9]{3})$' example: 'xy-15-3-2-op-s-bm-000' get: operationId: getOperationServerOperationKey @@ -13415,9 +13415,9 @@ paths: default: $ref: '#/components/responses/responseForErroredOamRequests' -######################################## +######################################################################################################################## # Common Components -######################################## +######################################################################################################################## components: parameters: user: @@ -13446,7 +13446,6 @@ components: schema: type: string pattern: '^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$' - description: 'Empty string accepted from external applications.' example: '550e8400-e29b-11d4-a716-446655440000' description: 'UUID for the service execution flow that allows to correlate requests and responses' trace-indicator: @@ -13456,7 +13455,6 @@ components: schema: type: string pattern: '^([0-9]+)(\.([0-9]+))*$' - description: 'Empty string accepted from external applications.' example: '1.3.1' description: 'Sequence of request numbers along the flow' customer-journey: From eb2064f1013400783790bddfc3652d4b78d982f9 Mon Sep 17 00:00:00 2001 From: openBackhaul Date: Tue, 27 Aug 2024 17:06:06 +0200 Subject: [PATCH 11/12] Correct individual findings --- spec/RegistryOffice+config.json | 4 ++-- spec/RegistryOffice+profileInstances.yaml | 2 +- spec/RegistryOffice.yaml | 6 +----- ...egardApprovalStatusCausesSequence.plantuml | 4 ---- ...010_regardApprovalStatusCausesSequence.png | Bin 511754 -> 588392 bytes 5 files changed, 4 insertions(+), 12 deletions(-) diff --git a/spec/RegistryOffice+config.json b/spec/RegistryOffice+config.json index 9914724..ad4363a 100644 --- a/spec/RegistryOffice+config.json +++ b/spec/RegistryOffice+config.json @@ -380,7 +380,7 @@ "field-name": { "field-name-reference": "/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=2/release-number" }, - "description": "Represents v2.1.2", + "description": "Represents v2.1.1", "datatype": "string" }, "response-profile-configuration": { @@ -2813,7 +2813,7 @@ "layer-protocol-name": "operation-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_OPERATION_LAYER", "operation-client-interface-1-0:operation-client-interface-pac": { "operation-client-interface-configuration": { - "operation-name": "/v1/approve-oam-request", + "operation-name": "/v1/approve-basic-auth-request", "operation-key": "Operation key not yet provided." }, "operation-client-interface-status": { diff --git a/spec/RegistryOffice+profileInstances.yaml b/spec/RegistryOffice+profileInstances.yaml index 40bc928..2df8310 100644 --- a/spec/RegistryOffice+profileInstances.yaml +++ b/spec/RegistryOffice+profileInstances.yaml @@ -202,7 +202,7 @@ profile-instances: capability: operation-name: '/v1/inform-about-release-history-in-generic-representation' field-name-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=2/release-number' - description: 'Represents v2.1.2' + description: 'Represents v2.1.1' datatype: string configuration: value-reference: '/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-s-000/layer-protocol=0/http-server-interface-1-0:http-server-interface-pac/http-server-interface-capability/release-list=2/changes' diff --git a/spec/RegistryOffice.yaml b/spec/RegistryOffice.yaml index 00f6adc..9e909fe 100644 --- a/spec/RegistryOffice.yaml +++ b/spec/RegistryOffice.yaml @@ -4646,27 +4646,23 @@ paths: type: string description: > 'Current name of the application that has updated connection data - find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name] and forward to [$/v1/regard-updated-approval-status.callbacks.ServerReplacementBroadcast.body#current-application-name]' current-release-number: type: string pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$' description: > 'Current release number of the application that has updated connection data - find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number] and forward to [$/v1/regard-updated-approval-status.callbacks.ServerReplacementBroadcast.body#current-release-number]' future-application-name: type: string description: > 'Future name of the application that has updated connection data - find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/application-name] and forward to [$/v1/regard-updated-approval-status.callbacks.ServerReplacementBroadcast.body#future-application-name]' future-release-number: type: string pattern: '^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})$' description: > 'Future release number of the application that has updated connection data - find [/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-http-c-*/layer-protocol=0/http-client-interface-1-0:http-client-interface-pac/http-client-interface-configuration/release-number] forward to [$/v1/regard-updated-approval-status.callbacks.ServerReplacementBroadcast.body#future-release-number]' future-protocol: type: string @@ -6015,7 +6011,7 @@ paths: $ref: '#/components/responses/responseForErroredServiceRequests' callbacks: PromptForEmbeddingCausesRequestForBequeathingData: - url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-ro-2-1-2-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-or-2-1-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-or-2-1-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-or-2-1-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-bm-or-2-1-1-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] + url: #[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-or-2-1-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-or-2-1-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-or-2-1-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-tcp-c-or-2-1-1-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=ro-2-1-2-op-c-bm-or-2-1-1-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] post: parameters: - $ref: '#/components/parameters/user' diff --git a/spec/diagrams/is010_regardApprovalStatusCausesSequence.plantuml b/spec/diagrams/is010_regardApprovalStatusCausesSequence.plantuml index 8ab078f..955172b 100644 --- a/spec/diagrams/is010_regardApprovalStatusCausesSequence.plantuml +++ b/spec/diagrams/is010_regardApprovalStatusCausesSequence.plantuml @@ -150,7 +150,6 @@ end note note over ro #orange IF (oldReleaseApplicationName != "OldRelease") - AND (HttpClient for oldReleaseApplicationName exists in RO) CreateLinkToUpdateNewReleaseClient Request for automatically creating the Link: RO => OR://v1/update-client-of-subsequent-release @@ -181,7 +180,6 @@ end note note over ro #orange IF (oldReleaseApplicationName != "OldRelease") - AND (HttpClient for oldReleaseApplicationName exists in RO) RequestForUpdatingNewReleaseClient After receiving an updated operation-key @@ -220,7 +218,6 @@ end note note over ro #orange IF (oldReleaseApplicationName != "OldRelease") - AND (HttpClient for oldReleaseApplicationName exists in RO) CreateLinkForBequeathYourData Request for automatically creating the Link: NA => OR://v1/bequeath-your-data-and-die @@ -255,7 +252,6 @@ end note note over ro #orange IF (oldReleaseApplicationName != "OldRelease") - AND (HttpClient for oldReleaseApplicationName exists in RO) CreateFurtherLinksForTransferringData Potentially several requests for automatically creating Links: OR => NA:// ... according to RequestForUpdatingNewReleaseClient.responseBody#dataTransferOperationsList diff --git a/spec/diagrams/is010_regardApprovalStatusCausesSequence.png b/spec/diagrams/is010_regardApprovalStatusCausesSequence.png index 6f39ac577f477d4de6f76e1fa06fcbd0148ec08e..c6c57aaca7360b1416f3ed5363d60161396cd7e3 100644 GIT binary patch literal 588392 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 tozKh}pk^EO-1tPlqQcqhS6p1h=w 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 ey#-)v}T zfG&XAhyWUqD29-ciDF(k>D<1>I^}6|k?{#=pH5CrHv5e?n7dj0u!ro8vhxLg7^Ve{ z7)<*5`5|KQr^c&&7pO*R>#J8g!*v*~O89+92{b+vv_MvZUuFF`n@2N2fd-<+4I@Ic zdRNTf`gfr>X?1f6Bk(O%P#;1IgM2lX>f^`bd9CrIILIWmg;lz81A0v2?N}bzYn}AE zgdg1XrM*_l>Oa~7%3;vbfuWoP{rUdbOuU7VUm>y=ixD+UsW>Ri`tBYRb9x!C3&cMLZ>+mJ9kA#=eg;tY_s;%)Koa_y&qraHaW&dcG;x3 z#TJc6Vw59nagwt0a$nsQ^3bQbeos3xswX?Pb{{u8^!am4y~+g{RExXH^B|Ccrl&@>U0f7af=?G1DYKvJHCIQ#`k`P-Q~t>4fq z_{TEwzjkK+E35P0FUnVM`@Bovj6(TL_WSF$&p#72f9Eg0F}T)RBp@_C< ze8>MU$z8LZ^$d@($m(Q&fU@jt`%@(rF6)%b{_H^Y+a44DgoNK!F@k*KexLmzt!8ka zIG6RAzjEuESWAGd7GK<5>!LUmHY+Ui#rGlH*gkO(aH=(B30k}-K6^8L@f8gDUsQ*m zW`CmBbD6QjlAjH6zL~m4e7f?ovN=K$@GEEAF&AD6nUqp#mtuG;$5dDNip{Tze%aZ_lAG#E z4}>Q=(9%kL{G%z0a+BuBOzjTh!k4YY?djT-zIhzyZze07=I2JqdZpXnF(41pn z9SAgeRXjURW8x5*c^8;#*?sv!lybFEP0FX~o16RAjP_JttV?*>Fw??1z^@UFA`l2) zhx5%FVvm3prBmql6V;P`AjWRe3@)nFd|nYHpv+@rCQG7fM;&QJ3nBj{5U9bQ{-QwE z)b053BGjh)4Qs9f{@4YWaKrVg%R0_a}m77(0Y!htY;dKba6)^`*|6WpOBiuKlxK-HiEbsdS zGP85zGKJFQUvE29CFR~dUKyTlGuFG;u!bR(2HI9kR@x8%)H|ng#8Dt7?rqujmT<(9 zCvgFae9zfgdAe`e@bN+ys7g0lO3tL3RdxU{OAY|j>7uY|UP*0yb#T-%fSuF1bHU2|>7-eEv4(@%(d00$jkQT5%bL&8j4@fTQ7W5}#PMUef3zk(g#v4`c8XVnO;_L?3 zfm5uU{l@uaZb<`qpDttupHI~8C|0AmY&5P(IYkdTh4F0LxSo)a_!$-U^y=ro8Ipb7 zCI7~7De71u>{Dnzr&xnRgu^>E6p3Er zC_%&X5ikK-nMSbMX0FqxRY#p3^+>w!Vv{zg<`tV6bh8v2dB1A-;!^)`2c=?-Jm5O+ zwn=Utbs?zpDT(lc>Tfhb`!#h;(tNS(Qr#c~rNKH{zaphQB1Y_Gx}SDOXX)D<*&wHwt{9Wda{`bp%51s4N8O|% zEa2>_RGmIgP+vwDyoghhrgkt6_f)z_f@%~bzSi_%Vo%n?*$zzqdYF|%f00V|Eiveb zWsXz*j@;wQLcN4}DX@0i2-B=O7S62BUGmXu()StFU24s(H+@WTPl0X_e{PNTrt0 zfT`dH2`-)bByO$7XA{Q&Y~rCrPUicO)UU|1^+nzGIAXzh&RT7tjihU287TNrRId3Y&VNZ+D>cmGz&cZhyBlY-~}0&>0^8Qu|!n3K;=}b6~&&G;n@x0 zaa}l__caX%e_RGsj*V$qOI_|yFw_F!EZIbWFFC#=>5dy1wa$+KlRs6z6)dllh0z+u zCH~`3C$ILBQSUsHBXUd)!&{@t3sp^ICfyQsw;FR|e+~4MG*YhApN@?Mte+IB-7&_p zF-Y#D6%K)R#Ob#1$UxD=3_tDA@g=}>*be2d9%Atbl{Q)B31c|#rtACj2+Cm+SVe^} zC?Z!l$lBD8IZ|$_etPyy$1z~aub0VlJx!VWMce(xC5k+r<3lL5E(jQ@Z=Xt}IH`N= z;~;o1f=@T>6X@%6yV-v(%rXOnyJm@oYAiasLISIm<1{|6sE|HWW%t)I*;gs(=+CZY zB}un2Nc>SU#al~IwMy8yDNc}`-KH-sMvIWHw?sst&_BgGbeMO+Gg>xQN*1=_ zy&Se)<}zILhBV$=`$98k$#Ui@f0}7pZ$cz*VV<9SlHta;wY~cZE>L^03FxT3Ji4{k zY>-+{(tXUyWd7-W$v`Ik#3T06HsMXWMba^6UIZCxIE)5Z*AZ+r%NcNQQ{KyvJ8YIZ zZxZtxOv@6}?O8KfYK9oj@M7))cVrVT&<6)S2}du(wq!Ho3<-`TueUw>)i>r(?Y zp)%F{Mm{oDGqEqa*7j$PuZT^G(@@bGCJv|d6SXrD0Ofy~_7N=Y4>Ahs12qxVjv{nY z@bcSan5aSXWE2S&sB=(Nsj}~Ux^>E*KI4{v7Mz|~R}VL=0q}Ui&7F7Wi&{{+x~W9y z18pWX6YQ3-upN^p4x~Gj9;M$CVBc8G>uVD}rHy;sUS|-o$yro;53j4Jtxo)EV=)5!K1%%l@zbfzch{MEt*&*=rdzk6hTxm={-FKS}DnJ`N~=yss) z-?XB-n`OLr^f9kSe|W^M{1Ykk@qAxCzEb+c&r(?nE-6*{p(Al%W`cF(b_ATquD!jr zJWPXB{7!0VTL~L|sK?Q{48w~`NU0!Q%)g$uf~Ah|!h$pB$8KeKVZDSG77R-tks_l^ zrgE_RRPI_zK_9C~AmGV!U9033tPY;ZPo5aPf6}CE|B*X6AstLpfN1*rsHSd9-IA=wf;d)0@Q97vzE>I1rk*D4fDytaZIJ$Pa1wZjXGog;Z2 zno~s2YL@-gZ>Urewq^DmbH0~lpMG!Sqg~ez1?2X_K12ojXbmbaS7h4IJkJhTwMmic zkcs?QoMB9>Zo2*x+Em@Q5DsDrjqB94&u|jz=wbgPi=oaZk%BQc!||hs&U`6;Lev?{ z+gNs7T*MG4*3DwsTNtUD8Wj1uY(*&%w5A8ej*5$4G?}4xNH|8zh3bGctzVfYy?Fv% zCp~xFxEI)kn?XDvSl!(`1tKLrhJ4tm86SgieuFAS&WG_mVwR#*oY!d8(bUOZaXX*u zE3W5@z_d!rmMZ>s}aK~EHU8Zl=bNk%6m;7AnF_n181RYgX4KYeUwP95eGWDj> z)}a?RtAYo%KD}1sh%%<;N`FaF8f}axDE?ykE%^v_pqR}~4TuMAL|y%wE^-WX`fg5d zhBa1ySMcZt9B~0-lyd$y2YjNsy|J0^_sQJIoU@km*wJ` z6<2RS!sAR`6R|aGD(n^1otCaS`hDn~!gu#t&~G;mvrM4kbgSu|sow`p`BUGlE%JLo zR(g?H@KcfieTvlXkZw_$ZbWsxTconySL2RVn-OJ38)^Xgp1Z@T2yp{tA-_&8o3dz= ztK==dIqk)9zWJ?umAOuVs92@2aectxZLwwi}-wp5D(DT}P;mgz|A?8kOSXvtJK- zR>P~f@BY^-@#QxnuEB4@Js${P?O?{e|7uq;5STY>IAHxBh64;}F*(LXS~djwUTJQ% zF(+v#lN=hcrvl?lAqy^RMjK5r?uk4YqfXyv*;LB(SbNagc3tKZ|Fi zQh5Im*pO8|$kAT+T!ZiJlI?8!s311~{kMQs9Nw5DefNo}$GV8JoA+lNwm{^XtS%_= z&@L(^sebzKG*HIB>C#@4(T5?dPH@XY80DtXdm9&9t&^|&L|gRz)+bl5pI>S4i`L>* zKMC>#UcJ8KCzq?v`_J9_?)Jj-4NR*vRyXY4wUPB;gU$_EyQAwZ4{rU=_s)uR!}Fdj zThF_5cg?s89g$KZA6F=oywX8WFV2y-mmUQOa-jajxP5=b!_n9MBIH&fW`3Skl>PQP z!DHN}&jqE#j?9!+D%G;~Hzb}R-DMH>ykqU4EJk{A$)$JD@%$7!?;!ajqvium=_8~h zt6J;!-skQSqAH0~!|@&bJshhIYW%2Cig4ztx@dXPv_08nCQ-9Zcj`Eou=ZLFu@N$< zEmrZN#bQ%gQ?8jxi^7cg@ZK<+pQvLU>cG=vJgybrz>{O5pSswB^XbhL0tfNOpH-I# zNzPeqCAROcmV`GALIGh7lR~O&@YIVJQ9rEg=dj^N+{v&G#-z1cz5eOhD00?xw}`dQ zi4$>xPmLQV#`;tocH25n01m=}_Vr0g1G!ku-d-WOoLqjRhile!J2@t90*Iqt+SVY5 z|Lyyymd-JEich%n%utz23LN;1THb-Ik*drUeB^f3ZMVov2|wGf_1v(x(_)a@R2ow< zb(_h>?=p@eH5i;*Ddv9595v{ZePf^&LjL#iA=677Zd<^5#~ZmLX; zrYjX%mrGSU16Ob1uNInRKQ>vfX=XiLbHUNo$w`THK1;AzefRJXIl?8zKv<{gyY%H1 z0>l1OB&+ns;W`t~wuf9C$tsJvxp1C;RQ+0%rFYTc8*2t{b$*tcdI`Cy8*_3~gks~Z zp%st!%`Rpsl`7_=+Syq5LM}b_0$swvPk5kcV!|iRijR#=Xy=O;T*n@>LZ-yN8J6o^ zRL2rpB7k^~wxh}UGJ&-Kh`bRV$l5Nmr$RW%$hIxE#UN)8rnBP@CByTQg}N!GHOVI9 z9D#NR9Y)M?ig@7t{C1l)XO8LFvD>k+j7i4ihqS4jK;AqlY2z_`ZV%SmD@mZ-d%%V( zBqZ^;4C{|f?9ybhw7UK>h`@kM;+J$QIJfGKBe(FVRD%PE-N}Y(z1(T9fn?B{vG)_) zBGCUD8Vet3G*@qWKw{eu-M$~CS-5e?dXpp_ax%7)^ZU;JVZ-%RqlA*2kO*($qaw;|=9hsD0;O02ia@QNV*->&b}ho2{&Gct(uXCWqXN09%}IM=9`(NyX$ehKTJG7Z@zwhzG+e7s&+R4Yrb@+;yX2b_o{o%s7kq5FM=r9eK2B0V(<*qGrE5PB%<4;u?yFN1 z>aUf3v^%%a-ja8a(b_d|X}N%@Q*x8TA!<#$t|#AxV;gw-xOcseJoPkVOqQpe+7_Q9 zKSGP!$wM2Rc5JX49yK*}_uYH(=i%U!)>+!2S@&3|V)K7!*x&OgU(_bab;+enacm)`pCSI%hcuQl@gXg0;>&7lzaoB!6=05ps5w;qNh*5%KVST&Hu zI{dpN*1TH`pMX++9+Fr(Gd<$!FUdvO)VYtbYyo`Ody*nCQOy^-)5{&cprV_Frs|dD zB&p}fr<8#6deVC;qqmxuaNsIwq8BEeZ<#kKt1dnr5g1=187P!~@pOAiP0f-zwVEph zNrFAUA~Rpc>M(8)<2JfJs?S^Z7{A^r3D<7Rlcf1WCx?I7#4gbAA~>hMFQC!F+C}A| z!;q%J;icMm+!ir?jn@>uzUnEYFZX|zzBGjN<Xs4I?6%aN5K zOzVsvu%=&5O>?BHNc*XFa8F5=Q+TGTC$FoYrP8-fM597qY=Tsh!% zej%5@`=3)kN@q&1H%Yd2?u%1>*w$*nSz2}c-><qmBx9 zeI(IeD7P}qo3$$Af`myuRI?z3b!odvi1m&QeIK5(3K*dUpGm~DZ0v2JckKWV}=tS`D}q#wrgdp^PR`LAH*g?#&N}d1JuS`f} zZ9e5J-`%%1%ZlA&IRA%0?@I{up2%hn`Yh1<8Unqm=LC8QDQ+DtEoc&ZDE@E|KinWD zvkIs-AanqO2X^_%vd>Zjnv;9yrND#hvoz~}c?37iJBO|u91{RLc0ipBK+b#6cAZ(i zdn`4FN0+eLeDe!^u)j~w2!-mq%NY7@x`Lh`srC$zz;(j&c94G?-U=@HLYedLPxb5( zS4#d&D3p~SM4{<5Jd{xsk4AQ}lty{MO zb}6`OG2q$m0RaKfro!m2#Y-B@IyV3wy;&*&3e|4-EJ;1aC-Yhf-7+A2mfj52ypjZ&W zO8kX&H=BEdSM3I71%9(W3JHFr?Q=lr>wq<`VA*d-$)dqk>K&gyu#p7&dg|BrzZ^gA zjV@hmwU{$SoKGviYf^uv*ZR(QZQ?rH5P+w_T?N>$&6L41@yU}9!1sX{W zNQJHXV)#@rkzy=-p6)Igs!mX`h%K~kjSnm`vlfkDQ(_O!r~C-+KE_ix!xMJ%sz*@_wo}CIKKP@)7Lx&ET znGIcV6JaOq#`y;j+t%e-NC;>aWXlYva@Q>)yY>rT>D~(g66+ys3K;7|+yj#cA49M5 z%81S+UTr!{0L8&T8z=qg+v6wn?x> zaUta5b)@=Q2}6tdKP;Ol;bN+Zdap1dXVLkdK;kt|03sNnnmQB_lhw`XlLRsnOopPT zowc{uNJUJj_1-%1b0tU>8%){=miwc1w$~j>5*4mEbK(<>=W_%;W=*tDn*P}9!7a94 zGEhRa&Cr9qhc};RqrG^wKH!;zf7c)qQ=Zh;H5=dBIL9zI%a#1Bm3k&{*hWIk@)*<< zJdHC3kM#wA_IdpFU08rX^E2Cut3Vyg1RN0By7fGKfo?s0{P=N4prbm~3q);=r5sRM zoB-LVbf&$RVCClm;%N;?Li0IDkknPK{$7#bO+U#MsAXiDBD(`q8BjnpQR45rIc}$};F}qrubcd~! zq+7DZ{{9`w9a+&7&bP_So*MkV$jU(2YI~}&AHEFCigIYc=kvY>=?mej^%)iY_vih$ zl_s7Y5M;rJ#rwW{8SF?iXk+ztxxl%)ZrpQhjL^2RAVNjhsYAjYAmQ=x@o54PYG_Z| zzMt&QSxp<)aw?mi9EO@gdrC?Q;pB%`WXO(O+|LBtxDfDIY|a}~aGMe}1%*AMnCxH}Wx-iNe~b-k*0SaTOUS@c zpkeo#USrk4xxfuDdtq$c`L{n_J2;lPVSul!HFXv1#j|fsIQ~kXT&643BSiJCnIZxiUBiYUd{!|T;{R+-c)75MI6cTb5YALywa=w}r1W{#Z3 zE3Izb#uz0RtoW2Z>e~LxOW(7f*KzS$cGU~oAi@r{;;fF@fe3;|WVr*2X{d+1&BK}7 z@hVAy%jE4X;&*y*T$EHs__-^;n}As-Zrq-(I_BLhCnNSuF&uisYJSwzJw9OesKG7q zo%&p^b9GyY-KOuZ-}~LE%hU0PG|Z;4m10o3n(jxQk)2E^*MO@r z$!)p~r(evp`G$6=3{2n>OehXeP|6B=7=ye{FXs{jo!SVqypqxyDNLCIw;s7Q;mp4A z=W|!jUe=yXMJSJ-1{4|}2fQ1vafDKQJ0hx~LjT3o!-0>`7s47>^;^m=Ly~d2Y|IX@ zdq@oSR82bX;sTwnNZ!Um%&#$yd)xb0rz$(*y^D;k+u5A1CP*H0>}Fw1?Zw=+@w7c! zCl;pt9mRUVC8AVAyyP>sNlyRE^ENMp56AAUWQ(1+yaW>8Uw-*TuPRar-j~7y8Ns7H z5f1>beh+fjZ#G_1Qb<7}dg+rLf#7nhf*Xvp2C)d_$OkX?*C)q-2oe;J?4dG3!2}OO zs(DAYBYXB@0PIY_?-E3g;~djTVriGA4D_&|r>BHXG)1;}1ptzbQ5&Q;hlYgYoA0$) z8?6+7%q|nyC7|2`U`6@o^F3(vQb6K#7~m>q)4TZVYs@@l|aq4SQ~c13A}$@F!?t(U_Yz>K~>A-inn zlhBEeh2$icgN|Oh!?j!`IFb3Cp{E@h&0bjey-T&$y#daj*r!+XZ%K>%RrPVn1!=3A zb(=c`GeF?ETXoTato$r5FK-7I*WR&XFOU(g*t9oq+D7_@the*4pQn1`OOzAzP*2|T z^V{6w@(`m7^4G$I-xMkT$G`pmRO^L-;rgHbF#afZ{+^Nlk41g%-Mh;!FcrX<=>Oc3 zRtW!e4)emlR%`r+?glywnCLJB$sc<+QI?QpZ|fyYgHx7FU_DS%7gX0WaDHnekLYI1 z)reTOJ7;6G4)l#0EmdF^9((O;oCeeKSFHc$Tj6&)Z3Wav{4yQj7K>&eD)`t``U}=8+O1wwfR(nqy48T^A^^!A`rbe>-F{z; zjL_kyc=2t6Tz{r!N2yO+CCoCozBUc{uQ&W)0^yU@M4LhvJv4OX`?{&+!`k#P*UM(OX{x zLX#Ve|yZi-<=Fa`O9u{$fx`dAt z9jrriJMpi@av!h$dWp0Z1_TXj)NVUWCRbsI0pqd{A6Bl_u)0jY);8oaEb4zY%WiUV z>CB6O+!FNdpL{KT@y|Q)tTpH^JYr4FaIm#z_*sbAXpVD*>QZGZo& z&J8CRjz(Oq5dPuCAVvM4+uf_*+=j-B`lB*-;^>my^S+Qp{`+TK zT&GHjul(bWHZkm(g&`3ki@`&`I@+kWY_=)>tv~?8%skHL1%m%SdgA_R&amzk9{Fd$;-%aRW(71Ks`+^T+K&RT0%j=&tg$ z@A>WTLcs3%@nQ&fUGMWdvx=C7XQ@JQv45eC3b!_ZMll(epjSsZGRK z@j*>OVMuE!+qVLIhzSy|?&BW_QrmWZ`}Wg+^7#74B<_z~=JRJSx}W;^z%7<<{ou22 z%PGydU%k-#>!jn*VO;2x>#6!D41nhu1oj2&9{!a#BS-t~%Wv=5Q$(9dKG=BEfsIY2 z5*Qau{mVr?4A(?4t}~w08hiX;+W_I#8C*pf9>=an%nUw0p+ z8?ilK9H{G9M21TX$l*I{e^`-`2pbEx1G_5@tc&A6-@HxI!$GTmoV1{uXTOD^a9@NQ>2`Qt|e!}oelHbWN*EJ?{W-0h?y3NHua|1Fu~9&Lmp-uHm)1ZW$dJ zh=ug`rWOqa-wDEK(}3|lKon5Lc<|YH>-cd8$0r?ejuWr!pjJs{ST9enq4@h?LL+Ql+jV#p-)@5V&>9N zg$!x4daT~yLSYM@!FVxVNB2(na7lcD>obpfc+&6EMBb7QT8i zRyBWj+Q(uw$x#kg;Vg?TOM0@A?b$;gJpwIlvq^E3E_jZN?9-i+cQP<4rdgO)Eo@G! z%WrlG>IfYjPISMMZUEqeNsK7B^dst%z-)s=4t1)^mi;5e>{6S0#a^oRtY+S^bRgrb z0uwO00|1%ra4TVIb=F>IlU(4YNh4q<&hCL-yxhf;Yio2S;**WrBf>2<_Zly2e-k1wi4T6OQ@sLGs{5q(U>a zd%E?B=|c^Z4Oncrle`!WeYSn&rpvbQ&Wg!QIx+_obkd|kQ2{!haC6}n^A-^wnf}z$ zaBF#w^9+(x%z`e#;8eT=KoKvm8pZSi>@u{f9k3Ro?&{5)M{YOm%=&3R;53Sn@YzzH zK6GzWWm#Drz^N?!z0qD?UPnmNDxZC}*y;v>p-C{Z)joVU6W!cO$y}}Hq(~T_3}rYFM=Hybm-UpL!9FjiiY8x1D}1i zqLlidrfA3B0;*2$kuNDsZ{x;|@6Jfv|JEXac=ad6x;;&akcz$^J|ynsUBQVSje&ti zDtnX|8(S(s?h-?1om(P%S6;ZlY1rry(hobXaQR06Kcf?GHbupG87dV!sz2k9PHFRC z&LG8%tdUDJvJJ6Y*z_3yxo(}YkfkWG&e?u=XSXY^+CX7VFO7gHM;&{_1v);q?~&Z-pix-!a+eE8K7Wsr^O zryS1#b#tk3!7vp8^;<_Du`l0E7cGYE79~C@BPffTe%^J=GIq4DOfsUN6E3Siz3lim zDd*L)mywpL@nhsAj0LQM6Tb?o11bzG+fa?l8PdL)$=eBgI`y` zrlqNm(Lc4QMxBoO-ty^&-POXzwP}i~1_N1}`?PA8WU4SZ>`~(yO&wf0+I=NB(&Lew z()y1($Fhe!m~`!*_@6VjP)LrnT(^*s^PRNUL|%J?N#e#NBf8OdKtqF5;cZwMuJ&-4 z#^J%ixxQrt);xVx7n14f)Tkssjm?}vosVke!q46lwiF!)%u{5vLgQ!&Tz#@=#V%$m z6MqsH2TPR^P*tC{Er9EFOfFt&`@-_>s$QWl{I~w0*qAFSpX>!t3#5qC$;Q(urYj51 zhMZ7+M+ta%WarL&lT6xm3mvHYz#HLdzayTEgc)3vGhwIHsS`b2%Q5?*@CI_bVi_=g zl0-nAXj2$avrrlZ)7TozT6bp1B~@j;wzi{UqP`#h$1#>#IBzZf(s|1`J<1^6Lc!J6 zqT*ShDfH_k{kW)o&Y#xV!odvX3FE?ANu6%q@O^VOW-T!t^pLUb-{=A$NmCIxc*~=4o&MrJ@zi_4FP!rBu%ycTfKQp;xWMd3E z-$$~dPdhG#`3|wF{U3p%?;>0xp$$1XJ~Qa-U`A)AlQ-D>+w}!!8APvW`JOn~Hf`Le z|I!eI`BeFcqe4CpA4bx&&zE8X#HZao-0c9~u^k5`Ad_yL(|GIN(gZg|1A<{UDckOE zIkuUvS>5_@?5HcAR;SX;)`6Z$`h9nOw$BDr>dMm*{=M8bF6V(7Xr=J3mpU0DzZu|B z>yAdxgguFi8HpurP633FsLG$0`80PsIo<29-!HX=ZkrRzhxwc~oS)0F4**bSTejJI zYaG$Dj;nUyV@u&BJEV^)_LB@PRE&g3{O&@|tpvh7z*qHHCrc3j)cb8&kqt9np=grpATV*hrWHH4*yVd}9$itsEe2qf^=C&xX7A!fXni2U9Tj zSs=~CLtiljAo_Sexi;0{V&P3Ob1n}iRt>obK}<=RS#5S?g4J+-O-?{f?X4lusB5!^?YRCg_TD?J zsdQ~0#Tk1?K(GKRB1MXT3P@8?5kWvjdQm_@deMZM*r*C99cc<80t(VWN>m64p-Jzd zg$|+jkl(YwahyG~_lNtt&biLH&f$-}M@q7?*84v1Q|>Y?6EJzN-})YPDI-*5t~p7q z7WfYAyKkeDTlFqkLd*>q9Mc%aEhe<8G?$Un+z*K&VfWpYsHW?x(U4%Q3DnimoVlynv5pW5E}3W1*xWuT7zRTZB~$nSmdVJ)W%uCvLr&dhUE}Mp@!9*?h zd|D8I$#w~AW}|ooVls*Eo0I8Pb#r^3oVu5Q98sav#mBDD5K;3{10kt2eE13$))$^K zEuF`LF*uY?4Fn<_ghrc?VFeYQLd0`YGoi>NWjR)dESsoZYzY&YcrN2o;vEU~hOde$ zcL-`zel&xsydrC5+8}G{o~5bJgL)QtZMO(no-Tk`zZg70u|NvcA7499!$0pI1+D1X z%XJoEk||acmpK{l_gv}3gyGh}6btH1&(hU&2zn6ji&`vVl@Dz*lF_7_9dJ1`-AN{0M3>4Z-v}Ew z<7U@GX!ub?8%y0TzndNKjSR9&a645AU9MryI6bxL9qU~UYgT1 z$UhU5lI>-v3(}R)pPL}5hR;r>Wavap%0q&7xnz;7yC>ZQxlp4kEthtlH#h$`A6cI! z(z}KHW<`G1^6zb%zf1{!dCc;cX3D=& zdH(n92vA4?eg&w&{y%&m_?OP-FVDV^zlI1Sgp7HWVSKw^K<^wtaKInYZ2y+Gpb+%ujzU=S){(<4uLa1Bm6F@Ql#ClyR=MC`LNV?l(~SOPp~6hKpRgub4uj55#v zR;(Jn4cc%_4stOsU*5>^2jIw8x^r(z0W8%0^*I1=X(>{aN#CJBG&gXBOt$RinI%7! zMDRs{At6UAzPZr%idlmw<>SYX!52zu;rC8ZpjMEV9|ApGz`=Ox|G9>C&LNG5?=8L# zkOEJDX|uWc2+Yo(>aRIr+5QQ?zu&oLV#vJF@0p=FMzq9z# zLP!To<5qeOSeX6QAJIS(+iL5 z6yfJ5gVhwK!&`W5aYhb@r@m*AZLT3ApkrE!TxLdH9+YQSwC>*1fcx^2LJ{2 ztos^U;NrIQ17phzi|Xn0`G{JTqhIfUfHK~zcwxM;^kpJCRs6GInyKv2=y$j;aX&$} zMl1zO#en@+J>KG=$lI7E zS6kTq{Yc&W5b;LyT~p;Cyles1dE>T#X+Lxu0SaR*ytHi_cnfnxja}@E04MB$&w&l{ z@!FD{E>2BJNeRj-kn2|3PaX5dmVW(uEJ7ch7fw<$UY4f-u;_IF2%UmFzGy%d0{Dxu2t2bscKgT~lttDL z4ugjPECJFTKx%;z132vZiKLu$-n?v0RGXS+-Z~GCW7&ysIS0U&@EOOGrFtEQ%lj9n z60yUr*%=`DtsM`Vpn&J;6cG~>1G6@O$$22wP*G}XfQ1KFCoMyOq5<^C>AdsZ@uQJA zF!@ph$3HMVcc^O;?|cH-es78CpdoMrw1tpMa@a6DeNJTx(dPyzV+(-Z$urlT0=DeD zcJJ>{UT!Zy{#JuYiMq03M(ubMyMWo%t3E1BF+pJA)wz~%3uK+%05+~^FJO&&5DPCM zu<+6omI+5Jy!5t)T;us};kEgPg%`+`LV0WiNTx#pApa5^5@I4*H10TeMSqUYP2Y+U z)HG)ph8M%oZCuM{ML3*QHYI8C7Wl0ps3cfmZ^;iFf~4s;GDgyloHID|pHqt_F>9rh zFwa>YA~Ch*IV}KO8C3Q`=RA@OBJ7BkH@cM{L9 zJLN@g&H~}WqL~E{qFv_}D<~vH+5{F-2v&0GYD!QC5IttNGMc=CRH(b<@raKUhZ-M5 z%vN~1q2MX0k{^@jVQ)x3<%Ku*5-;1&;(=#68KVX`i=m^{} zB|NMFhEmg5zM%>CL~lSBuNZl4iC22{5S85XPw-vC?BN0Cl;q^eiLVZf+1)8b-x0>R zc_0)hC+Xqgkq^Yr^Dw@Q;D&oKw; zq3K%IyH9Ot?IB6{X(6PQ} z=ejS>Mvuj4gE#(r2n-CS*GMDoCFjpaC1zgf_zoNX*~9DT(Rg4FfCWz=e>|O#_(Z7? z94I@BfcX&*R1Ux(%4i?pgLLKS+6>U)a4Q4Upg*nao`s@h5x@yy*U`X1+Cgt`@A`pha~uVg1T?6# z`Hwrju3o$5x^3T)?FCNTz)H4h*zSKmFn z%-0WNcojcrPQ&~KWR7_Zr)|YM8U3)Q8?ARmSQ|cuO}cfDV1X*VC~Qj3Gk}pr4&)D_ zD2KNK^5~sTePJHLu+}9aNc!72{=C@Zs&VyWk znqgQI23DybFJxo#JvB$XN&F^_v1Jng|McLklKgW0PhI-|@JN2f(tL+GI)jMF-W8j# zp%ol4tY5Qlk>?=_!?EfB-g%-xwgbUJTf0TLU^k0m+`XgaI3ThZ;4XxUJI-1HO9EVB zpFevB#$72uJV3YE$%NmiC#S@s7gqqwJi7yeg46(`x^ByEw{m!T;QLepXRzLi%NN(u z26nKHfPA`M%f|C&IB+D9+}8up&ybm2yLJs!?71PG0%x_}qaP!gs^TEjv>VDsw5mwK z&I1FqCe`E6E6m=Lifjk#M!o8SLhybEPC-ED4dAT|#J@$uc0B>0+E~qu1h)z(m;7EX z8>{WsZ`hwLff%bnuHX;dDjbX-3SOKab=v~DOPS$y9OsA;MALZ|nJF*HkciW2S=P6p zvG_(3}_$5rKnD2xyddBp@+u%CSp{ z%AR2GcLr)Au|e|?yXO7EoLV5M`6n_=`r57koj}JE$SVoT@6wZl#5yi@g-8@+#fUqD zt}LpAPuxTMX|+U6bBdw2o50+WD`KDtz6htTXYO|OrL}pHQakxa=7FJ!nGOk_DH;z< z8}b7m=*3UJ?_fHGB=e7}K%&jZ*H`8#Qxb@_b}_9~k(ZFU`*&z61LQ;~aGj`&y=DkE zq%f&n2J1pvVScM9gNM1UU=C8*=CJpc_F-f#qbv3 z8bGb54X%h#p&gyR=e_baqZ^Q($=YR7a@<_BTaxfB7;j|Rj_K(qI!WC>cFL-=pe@&- z%pwdy5AECynfYBnz=L70;EhlB3kuHZ%&aunlH-EPp|Ey^3jN#Ede^*KXI55pmi+DYRapS zkB0s4NWykF`0Jnqd*7A>CptLRf}x=!1|#{8vM}FKBmc(R9a)$>PD%Q(oFQk(y4!!% z%o-m2CxQuLJ+c%>Qd= zZP_*WUp>?iUjKby$9@75dg*_9q5l!kbP!ksFo1(%_1N~6HMa7aqqu?J)e);!K?~z`qYFDhefNULdav1E15>*p*Ak!BT657V`mzO>B*QF$=dVHW? zhO~tl3T(uM80@%U+w>+Cu~dg`dCBw(AiSR;+zguJx4D&LFH92l2pW7vsIJ)?@m}|@ zt@h=9bnozWVn>b~@xWT-j1@xdt=`Ys0$!$_xcJV~OZEQxUZT^znNWBIQ1;sl`REt7 zR0tI9w<%2$4=9E2>`&GY=MddaN_r}MpsM)o`gV@1>o@*Qfq~}J)#1(oX6RjT$Ok8j8ib2|5%SPT|f|m{Ajo>w|O~o zeqU#nV3G^k{d_B#t?su$7Kp-D;CI_~`gtO5=_4p;gFytOu|i&1@{m!&sge$4tl80< zz_y2GCDDG6cf!g5Y_greC+2A`l3_!U2n<2pr@vo0Gd6hCW%7tZXePuG-Ir03|H5bg zX|V^sLcqo=4eKW-p!@}sMQKB5D}L`tF`NPKMk+9J#xtS83Ava~qAG@mhljq`@Ybz< zqJ?225eM;=azs>EWi-crJ>!=C=ehJh#f`LkzbRQ-9}7ChVTpR+4Qn*b+>< zqmY%`LNeeBCY5(n?920QdRvA|!zxsJy~#qfjN;I(t;fjrV2Z$-1L&{noaY#=RNSMD$jrbBP^(twO=2mMVv0nYW< z3I?({s3>Hk$$1_anJi_yb#`po*+Wng@K`|0L@##UZem04z1hst(wGn_@EGGG)OrYW z?rzT&Jc!~Fl-gr=pOjAvedg8-3*G#~f8O*@W_?H}_d^Y{=Roed7m`l)V5^iC7|5p$ zwW2C?Tt^_t`1#Qf?^p|_Xf|V=cYqT4a#|fJ_YxQpN!E@d~$m=oD(O>jEIsgJX+r%7{cZD>%%se6P$DIL*1L^p3S4N3h8`Zo7Z>}s@nMJe=JSw@6yfo;(2UJ# z1TPuRaxf3$)XmEgc?U@mnA)J4$eaP(3H&Vg;1mI4M}0J-RVh^OM9>CJdJV?ggq|w| z@8ZElt37Jr=1Y?&db9)Lrv@IrQgqYy*s54)LZ!V3-3(eqX{q1;ym6KXvC{|!x{KZe zVZj7^zk$c^Tm|)o)Ig}GIJG~fF76ROv+!A*kdD}1AtgId>U6&m%F4=$i<3g>_vz(9 zY7J{3fH7FuLI-rJ@t&n{tG;>yn{g|PxSF|xSwMH%09qUveo)q@Jp!?TF(@Rynn@7+ zpJ0LN4r%s5Z#y9MhMX`tqRHXw>kF)Sg>Z4Mbi@b>j!wHsQci1gMo#QZ38E#PAi^#n zU^(d6Xazuc|Ou$;p|s>0E65va>)#gGpd6c!>(@S{iN(C^M`s-aLw zF@-OLF8P#ldBR5`c!fdI52kjz_W=i$b_Se~VjCnu z@WML~JnmpULD`~rb>T@NQuXnJFATZN!aW2CkfDqjyC;C(oEnnhun-_TrPBz8SkOn+ z#OF+B_yZ}@j)CHpm^1FtlAirU7}sn8{fExW(Bw&g9SkxgqfL(T3ao)0Y)YXC)X8mz zdmi4*(nzeJcqL<%sRlVEu59mhaiHOvuty5B2$3mO_Q1~7+^*9&wnZ3+!5B>@%0BT6 z*ziq2MqN-;#IKnyFNL%0_yRd|A*}lMnlsR54)E#2sC=`UUOrX9?&Qdzr;EtW*&`>a*7-!tc zyJy5GTp%?K=%yysWKOUiv;uQwIAZOmYE?;3ACO8&WPX-YcQ5AoNyT#NYMdNxT>1E$ z!64cec1(AAYgT8np3XuD0b~ZQIQOAbvk8!fMMg!X?YIRLWsME5UQ>e-I<5M-6lTW2 zC``o!R+Yl@Tezs!{BLmcNN+;S1Hwj7635$u!h@Wbf`>WQeV;W1lSR!68>*3b%A zzkPpSnT7cvxMtRndcHvaH5Y;aj53}yNFogD?9u?=vq%L$GlKZLSuC+K>p+AsH&2-J z0vu<$)}vQlWk64*EEA@IuIs*wou2tYkN=ZJXjl|2iDADr)6fd0+*QjAwgr<<@EuoL^ zJhqy3GHQrJ)a?{raUMh(+O6N-wrRdZ%N6w+iyej30PE`(1Qx` zaD5gO#I$c849-mOS%~X6%n59DJFnz`WA8jhW-J*9+=!D{e8mVKv=;fV$0>scB;*c| zQE>mRKO-ROq_rM}+_b(l_4oB}h~GjHM>_k<$hl?tT0p-LNx(nmKRDg7MX2Qwcwk*T za@Gs1mA~#g^tD6gW^Y4MSuk z>4R=->w`9MTLsaHJ6J9?elalzSWpmjxh$`WKraPCCk$p2%7P#=C%snl3C^?t{2Mgm zJ;mgCR3T~XfQ8U!nBX-xEEgbr;)D3i7w0XS>88;6`KGuTgmPf*1l+8Ggh3QF6f`R` zDLTe2_2#T(!r5^1EDbS*YX%sRFZb8{&f+j6@bB{&DC^HbYYFBMOJBC|GtDeJjUjem zRJj0JehCTf1)GMAp%62K!EX^(!%@|Q<0C&E?wMOb>zk!*oWF*81_z&*$29?zt$~zLEX+wR^9xf6V2WZ|~;@E*&@K5KsSkh3;7mq^@ z**_r&&|Lfm#vXJOudNqo_qgb(X8gl%%%u>K4nT~O-%c7hwYrE>i(OyNW2@73_X^AJ z>x`b8Jz>%dsh0xwqlloGVeZL^@@)P@HBn7--OQj96OZaQ?8vid|Ky-U&EHa#Qtw{; zBujlh+em-$aYs+H+58egmfzd9?^RocxKLk+MehLmy(Tr0BVrMknks1{<&^SiZUgI3 zl0p9lmnVa+q^qP#76J&z&e!*ndvuy^N@{P<&$sFoaq4jxv)n~Dm}Y^Ew@W}rxX9@v(cGauUUwOkz# z4aJ)_-78dNT5^^00_oroP-2~4DBHrXRa#|!B}U;r5NS$=WmvN69kZ*VyXL2d7ppRF zcHW2lw`{Tfo+z~}!v?%{$GUx~!d6v64BUPW!&B6}6WMe8d5dzFF0oBakv?d~wH$5J zx3;c&c5ug5rpowB{wC(RY0kD=dY*I#vv`RW`NitL5XM>6k340?YUsDcdj{}cYqNKV z#IWsmz1Zb|wZn@iGJ#O|uIG}|UFaTdRe?}RGa2dU#ss|#lV81UD@nht(;&Jgowum) zvaa$wwWXn~_w&^jd0BV*tE^-&vlq&ZC|-B&IDwXVs7Th8a@~^V#weMEedb07PNr7F zoSbvJP|JBKjL7`^bO}?n7j><*NnK{Yub=d3CRaGV*UA#ag|`>G{2`oLXTd-)EZpf?safobES1yIUnH?(XXyA|fgl~CA*&yCj{WUjL zdOyDk=aICdY6>27IL(Ph5C4>HI4z^RFuU=hh&u5}CGrx5yqmF9H0ewdiw&-8Z0Md8 z#qoS~+h^&c-CZZP5^hC^;mn3V&JEU4<#6I-bK#N`PN?$vr={N0BMTZ>T0CDi$BoQH zH8ZdwPt29Plp}6$nl`UBHWI)~wX7f6Dm5*(H#|MGC1vJl(igHYe+^aXZ65L4xJ{~7 z`k~qYe7Irt_}l*~(9K5?ttR`3(<4rS9g|n0T)_Tk@SrryGofVSSWW-sq$B}yp0GN0 zw9f2FRAl7ju==`bv4Nt;?ux?3%2F_$k3Z+$px8^9skj~?p4P95oA=Lr*P7!v_myo% za#{^LachfK+)|QOX3+I_Y61jSs~V}$7CEs3&G;)(1Ayi5@u|AFpjmjrL`6Gw)+sBO zdS9mHEJ$RTH3z!ogA#E1o$5G^H12VJD@_FtXZFK2vhwfH1m3cE<*eJE8L>&(VWjTL zSHI)c_1wJsE2?#pH5J3JHwxlB*go~1c!fIiu0A2eLL}3yIfO&rvB`2CeBAQ1 zDR)dwOA}i6*aa>y3x&qAL7w#kIR-L#Z7ncY=%Cx%Jq#n5wLabrZ8)YYL$$24nAO^k znlGIhkDhME1W=p<$5H7<-_D6|n0tg}v`I;}scXKRZd|J@xmG|jZ02@toIhTh$HGvQ zs}PAcERGR+664WX#4*_6h=Y0juPfk?A3O>MSx9!!Xr z#C)+Fj`pT_G4kDRb(&$;GwUt4pyNlAi|HAOIk#S+PJ8aXj{h>$Lz)iF5{gsKDs&wC zEs(oSzvdR~#Q<#SDRPNx3T%`8qBlFMT?~yHbu;yQt&^I)m(KEw^UY^02D5`BS`5y}(4fSZadhu*a7)UV(*& zUx(M3sKii`KK%}*1gs2?MYowLIG|cTwjPXR?_J&zAbU5{6s;iv9oVzZzmoRkO^U@) z!|!z!Zi1D1LqvO8%)B*SFB012|@omH+X=t}q)OBKM zF~P#v5!+)jKlhHA&@D&MMk#(8w<2jHZMg(BonS#L=sZnhqNl_#89gbYHikj2b=Nf8 z*SKJc611CPW?)p>5c5W!xjIo-c+8ZPGySZLHMljIanys)OcZ1gsq<0-RxCk8_L-_273-2)Fu~X6Ef5h#p{-gOd%we@rhVNynu2 z3zUZuPu>~;0&nLySy0%>l9E%==98VLIT1X>@3#%rsY`M9kR^cAm}>_rz;}MTIAQ8* zAhbgC?he^D6MQ4gYU5%T{kG*>H;xxE?qHcGCzHrrC4m8#J;$R-$hm2!D*ysu<0B5f zQ$;}){y5p#b@EGXF+=G6Qa5b}>tcJxdNirqPCwYt7cpI~z31DvZ%r~n_LCN66ff&O zDZ%VpgjW~S^eTVmme91LC&hkSQl7;WZK8`9X-W(0xci=HMO~u^9nq2iUS6?|rLp3D zup_Y!Qrb(K+aV(W*b_*v=FeBxQoK3~z`+!H^d@kV#=&50wi+8!rDJ>ZV!q2gtYn_b z$#ZRvHrJ+dn0AO)=3Ao8-Ub@m@^l^qy&mbMTV|9>sZa?ATvNJ}d&^QruP>DB#ZrMS zkoY|KoeXQn2wGk#b-K0-!@Phuw(JQk(_1Jg_JrH3sQ~RR8*&>u>=Y#;-o2JjdwK>E z?0}4v(9-PW-z&@|?4~JR5#d>-ltRx%FK&%y03^v9?AM>Y`_=yY=U@>--;*~vP5Wq#p;qW2#S}I0Hz-0$k zgq!=)0ttu1&K7B;#X-uDXFp|vcjwQWeOzaE#1&fKEt~_F;KEC^A+fWDA*LVq_3;-b z+=tm~>tA#a^;GCK=)_)ih8iS%JnR3e7{iPzJ!-p5$d$#AwG7#hD@u6 z4M8WJLd9=WTq^KW&h;X#^VgK=d{E~I2(3-yNAvYl!5D!U@i zLaq=bjZ197S_0&5YTu@6G=NK;tS zy=J|M9fx*f_KTBz472f_nd=*&kR1%URuBLc-+>F*Xa3gT+rs6g%Y%~?Lnjq zjV+~yoN1$4n7?D@L`Ama)_no#sIabx&o-yNOm@sl?&ihd07jjr%Wm)(rFAc^{})c4 z@6`#s!B@@_1bzlp2#Q>MoUHfw8?5Jz46AI`e9z#bq3piV4KaE39}@x+?jViMJoBEd z7nXkIEs?h7AMH0}MZnS>?~c9PV~2Y>(n?-5s#BiG;b(if#b&rtN+6#O*~KlC3h3EYDL#dSFB}K`3BkNmGufv)~z2DoHRBJu1XI_Ukk+@yMT4g@QWb`P{cQC*8roBtx=l z=P9CvPLRVL*U&MioAU=P#<~zwB0K3K+@AsHM?ZI?B zWDL->XtkD`;J%)qK8n}veqLNG+X;5wh%4f3gw2~Lf#4r`Em3C}Tn}M-SQ;!Qonu;c zSU@uG&8+I672t13?=v`zRl&qd$I2s!M?JY9qK)ZjFa8#SZAdq>*iA5MTP%#g=yVyu ztuX(FqqcVPSjmHC3kPmIl+=kY&4`zJubu4@WYHpWhUX6CSmR%z8hicv_%3qfN%RJ{87Zo zYoxzXg3r#wPBwrsL(|={c;ooLo}17aM~o}3abDVZzupy7q@67UrqF_dQX1LjdHbO@ z)y^7-fZD@so^_FqKSrLS7!}S0U5}?;UUf@PrzkUM>~!O2>*h-GY!MfK$#7TWV1XxC zcIEkH*o^rE>(xUw1qR_VuG=$;^&Pc>Fm9Sp_ese+a3vhTT2+3Sec!zMN&Fq`h+S_2 zRm+jMge5m*X_;8pD9Y)!IMySt}n@UgM}VRgB*N4y-{y6SP}C%eivNwMl`zB-!~ z%$kFN6Wgs=)BKL4*?eZs!+B<2)|VKjHpJdZLL$3}T@gIH#yi2?X#0(|HV^*Edb#L=G>`dI%Ny2khLnkMvF5gjxfiH_B@!fRa)DmesOab^yMfp> z$jx{gHcn{dg)hj?L;bH8gQzL_jvr2|vHX=g?kCiAdB;!E`$TY=$d zt~D815x zG#QfOWHF^yve92xLH_WhoS?2&(yj}m8z_iD>ncYledx!;<+iLo$P}hZN##QD3&8CS zGBkcYp^EETNq)z79O@;_{ANt?lH`+@D&S4U1@RPm3ZD#>)Xxb8+pZG%sp)B?_cKEj zV`vzTzr#96a;dy)D83fL!;!X7Vl}deJm*^_1;uFIwx|Y{V=n_+;<0)z95?1@wlNCl zREu*w$#Agu_#@1n)8t?adW4ZVpuE}%!lc+23)t*$h-1WXMTmCz!opPZFm9di=_tH4 zbfYrPI$LvbdBX7(zVf8uQY05UU<7-Fy*5!-3e#8lKm!-$y`_4G)e~s$xp^mY@i8!} zLIY0sBvHc)%wtd9@v$9FgUA{8?1g>4R~Uh`m`9YavIzUu3h_; z;#JZLJ?RPxQ~SHRUzGXwe9NN%4N)banL59yJ;u2-jrr&pyL=mFAh<0mIO*oJRufXN zS^;v&Ihn1OCgpCeHT%`w{iE{&Yk{{29syX3O-_uZ^=Lm}f(_LM#S%YmIz}hR6es3j zKG?&%#YVyO80!rt*X@bo(9pG8vYq}25iA0_ADAjflce@m2SI!ZRy6y(#GdgELgyAo zdz3dpyp*xt#g6@H`!D5ckdo5gCsVv`o+`zee;suio%AUG*XWH@JzSk|^xJlRzD1Ba zULoYTM?5!D2)_U4xkoc9hD>QZW-&7BA9WD^=`~=`v;NU@nZF#Dr)iL+_>Z{^KTL4e zvtfVr4u6lI$e`-;SJq$21mQ9PsFH)sr=BjtLB5mwm&Uc979w0nH$VD(<5#YDWl;BD zjhFv8L=mCu|6&YBbK}i&tNo{^cK;lX?IE|A*aCQ&%!2s)Q!$zY*2@@{pVM6!uelu< zvlR#Amcpe=8cBN2R;)DVj;{=KaQy&Eyn|Y+bbRGPM84EtS=B5Y@_Kz>kiz)hee3<{M_vFP zi3?&DC{?Y93801`4u?CM6N4o|%fa-v;Hwa;)Ijz6Q|Hf;1ih2q>zg96t zMPi@#;KKyTjzst_#AzDC%-g9`#+$efc5&G}{I0y4E{1~al%f&^S>z>Go|;4X0h zZa91PH(qZV55Yg?yQ{piKj*svYbr4#Nx;cKsGq6gkO$rYinDNwCAjWNdoF18|!eh5@Hq=yd8k*g_4nZ%xai z)fLmUO3$Qbg8cjp>c?jR#SC^>fJht!ph}?=U-c_#*O+ko5|P0v7E$ZN+}s02tk~lt z8#ln!nYHE20WJ$W-_Ow{83v?`JaB87_iVqYpa3A>H&%7R9u?=42tL(awT^Z@XE5an z(Y7ic+V*rD3X3o@A*HiM7z5lHV06GupD7ipV4CTF`wt^&x0fa5xS2(%QtbTe&3_c=P(}S_5&x5m|tMI%wLKqwbj3bkn6= zoS;~3-ndS%{(1e9aR6aLgSR-DiIfW{Z@?AJ09m*!Bv?^c3Jkya2+;`Y`9MZmjB%ii zjN%0*3H!T%s@~>nzp@N|iYXUi7xBJPjA(;dO1=TS7<>eXDmDb(3}~SZAW9TH8@4hj z0gecGVr8%_S3t?TeG&MlYGNCJk~gwdhyY5HM)uqpWztPpu)vdc_x82`4idx&Ny_9k zfh?emfuaUbiLA=LgQ43Nw|{}X>b|ATt~acce$Lg3mm^no8Zj&cCZi;HeysqPRfO{! zwLid{1Kuj285k!!8H>xyr<>jpt&^Ww7{jf-KJG3oXx4Nb?*lCZA;WU|3N4dL;6h0Q z85pSUBsovg=G-|}66^##15{_U`}QGTA!Etl0n@q71Dm$~ME2nZZI!XChT)GMattmV z!B512B{>Bb%|K29-2;s+vD2ZvQX+|zWT%^N*%B$WE3RL9^g<9Rb_sPd`}3%e1J`_( zd?>-d?xSeL-U)aLfEC?en?7tkvf%q1*fMM^&X~f}e+$)caA)EH9tYS_{UCV-1>~+G z{#7Vo8Neq1P-VBHo?hgTK}lKJzi z$)DD1I`?p`tVqAjCITa_GZBoxShU^7cDD?YWcd*te%=8fD5aLHd_B-(Bg$m-7W&3GU(;=WC z0{J@?3ftU|m?9vAdO$7Qf&!fS07fQzi^fT9^#r1I6~Dzm+yb++VYuBJG`UT$3kV#Y zb>RCm)g#QaWE;Gw1fE?zSU-qA{`JLQzq%o{dEO{xhDZe_Yl#`*a6_&YzE>|}keiQP z()qngDh<8u{iWbu5{Xwm*#M}V@I1j_EaYoYXnlAJX@g;g=`hU+CuTc;)fBC8J6ROI zuM8I`qFw%k$9)d?00Yv8%wLIUQ{Qbh+!G0&U5OJI8P%BxBrcITV{W9SuzrpD2@MhL*8{KN4wdU6qt$;jT+oDR!&05ht}3p~|DVS%o&0U>hE)O+uYIKvpJ}lP6GNYr2kwjs zR$3)bp?2=4}V4v^+1Fzmu7VVuBpF`KrsfSe~scmm=qQRAO_IO z9N$6KP(Wq2kTdm*wp*PT_HKhG0Qb|_Wy?vU%69N7^Ua1>!xoZ2j|7PB5W(Y!bJyR2 z<7u*VlRAepw+)G))P0sJg!p#ur#lo<%11I6^O$WGHQ!qYm2=V82*~tJ`^y_ zCaoILT1!vxO=UN0_;9c!jw$yf#jAdS@d z%-_?p&2z9gkFR2JB3*+w&(;J1+XD9QR$qYILRRc&b^#(B?4s9MXl{Of{u3wejkbT* zV-pqzvV0yQoYZn}VK@V9QYOInlD3&cG29P4yWntuWd|&jRB<$L?mFMWzs!kw+To;S zFgj|WhKnGZm_WP&23C!b?d8t#>O%5e^`c`pkJ>To?u&L$3r8MG*iSNn7pE}w5Ma^2 zy+Hi^MAc`7Z}oAcX!>a5y1ynjST5Oj`wtxf?vUE6v(DhFxP_6= zR-DD^G{OKBHs?7B>B>l%MTejw!o|?aMw!8$#tQ&Z3kw{pwA&&{tzbsHe0SkBcE*6U zcocZN(jAen{M-H22h@LNkJC(ROc|3}LgnCV;y1xfsKB%ZEqWvdIKRgB{J@+0*ggVX zsuSq`Mkh-YAzdCky8w?4saT4ZkG8;k6=2V$T8l6;iDg%j)r%6Hp%f#ODX_Y9xa+#_ zd$o1-s|DNXm#e8pelV+i&aS@!hacopRaAo)GuHLrKw&K1w9y)@X(@auaDl9%)&-D? z-!?R~0FN^`TIP$9M7;Im6dZ3&Pcx_f1g=lL{tU?Yf^kUoCVjsn%`q2}v)dsABO)eP z3k`knjgyti<4Uxaz1>*{2N|KX^!P}okDaqu1N-OkjS9!DDr> z?~U|@pqd7`9-+r?1c|ZU###p+xAE<)8Isn^t-BQ5o zjtIb}Qg z(&{qJyI&gv&^(V@7%ld#)7ea((3| zs#AY^HQ7H~IBRK6zZOLA_pl-t1fwM-RirK~nz)8yjhcR&7~7GvR8dC>zc@U7quDir zb+#AFV9RW#))p2Z^J&*Fe5U^X{z8Ne0B@B%Bw}i5vk*76_XJr|X&-K(_kt+#BazPK zk>-?Ls%f;b*#^&nQ=L0-dFYFz*~h;nMr|WxE5gnAu-f_jN>`TV95=yBnvi#aFc+xO zy~urPzGIKBu@D_jEJmd5SV8OXh2GBfB8(kmv1{)iNZh{dk1M~4qZREz^q#; zvX_Bjs-3m>#g26Gwr}mY-1{sHYgXOe+emZ&;;nkJ+WVz#ybjx{3ds_U)@?1ghEyA> zoFc8L>&@ri`L^rG=z^oES@Lvb{svBx*5& zrtkVJReGn*>4yKQZBP-K8`bN7K^xZAk6DfKZm8^9<-I`K|1|gA4C={7jrB&tiJqzb zy5|^=wxPc)NU|jU6$5bp&_fJp!EA0P0_2IiHm(`-mFy&?Bkfjp%tfTm*?s0J`AFt zeyozvCnkkrhxm1C@7T-TP3nw3s^WeWd)d8;bZQZ$^#DFCJk6iZJ&%n)auQ&BAGoSM z4X`5q_u>MJ)w~s$Jew~Ax}^?@_V7o2W2+oZ!tDAY;XEyT@^jp{NwM`tqljyl2e@{v zvR{krnMeTMFekUXpTKB7o%wQg>*f1QVP`Bnj4$g}xq$x~L6$FZwbKu{%U}`p z{I8FGqbLHB;r!&QughC%)RyOJS5=g|?jIlT1JDXP(dCD9(|`Ixcs?{6dHz0D`1zrJ zr|?4~fAwozKtiH*8U6g7sr?H~sO354ug_an#=rl!y&cf@5tpd{l6tuOG(qinnIrbE z&x3EgG*gw$qGfh4y+@XH=A&Ip?fV6UqQ(k~^vBm}WCTWI`FtdwLs7%w0qyRniKq(d zn_=cu@t;6{_uG-VVEds-F_&*US?gvKy}$j%PxE2^kD<_G8X8XVdFFhhuRERu$YlNs zoZ`>3s^c4(>4Nma2P3=34!@X#ILqMlnYK|}&lA|R9j|NM}`ql2J z75@0? zf?k+@-u#v3W|LA)Z_2RAg!=s0Vx$v}I%72)jrt5H?Qyc?hf85Dn}mt65$IDx3A#Zy z=aB2ETNGcH#^b2sks2f zYPzg}58#$C9$O=---kXz(v4L-kU3CYquP z_PSs{o_{B^|K;Tuszzw1>?!#wmKs$l$?@_kL&l-1o+)WZHB{7K6r0#G*~W13{?D`5 zgx$!2%9u2W9-40P+w0Cnr$W8@=4$N*>M@y+#I~2RCE7FB-_h!FMBkHlzZw?)Lb=`1 zIAa6hdaMpxQa>fp>CkN##}CP8(*_G1YwbPZ;9jVas#7STZmIF_qD#$QG@o|q>(i^? zZ{sh2ua=^ayW6b5-{i!lTKhxWC|+h&7wRk;M|vc^i}yGITyPkk8RIoU1+8oQxy)Z_ zf4GO^kW+nk$R!Bp&>gW=crVx`Ot};@#MLJ>cTOk!$4QLNOW|LWHV-FQWQ5Dk?T9;H zaa@4Si-$$?syJ4ZyZ|M#Fy`ZrFarPK47-Tt)A^x!W|Jc)2FLGyY{-nJUh{0aTip{c zY;-kNrIk_0%VSukOiMtpC4&7HSXTne)zLuvIKZPQpqLLe{M?)3$|YIl=z zZ_0dckdGCz)mz-J?DjGz7L!JkXLdTF*W;}wdRjM>uv*cpvP{%^`wpoZ**W3u3m(O_9a9(Ikkm@8 z^_KJFi>FG+>8?kf*^jSJxSs%UH21%x451wdSWTjyFtDa|zihx**P-zqMPG+y=gjPe zT^Du4l5bxXnv;9%VKP{KPJT~ zlc^=|WaqS9c2vwJ4+3>rGRNi1V83(j{h29@gTVY&kyw#{4xC<*PZ)kZKlMXDN=3ZUk3 zHf#hNTcR&qnT4=z>i(qYOK6s9kCyAXXMA<|^J1BUZB2U9cSt3MlZBQNn-ZguYm0#qQ$(C`8+J8xR8KZ_hTL(RqdrD!&ZH1)qalB!wJz&|UJ3If88q{ltDnM* z4m$tx_&LDx-n7Z%-%W=sZNP_lG^H18SRJj5wY&TV%e=4LN7NFU@fY?MYTHlO39B@_QH<3Ttc18*F7&okQ(E0 z$;<HVt(qv8SOV zvh84%6rAXVZHR1vhM>{b#v{WH^>^%_q-R`ix;Q5I=3MMS)_3&$5!xS)a&sH^N!7Uz z$Ml-9`m`X?$2#Wuojs76UhSePg)D?^k_4c26x)rNRluM@$^*9>bJ*rO%a z3eE#$x)bHS#GV2tBwkOi>l)@g?qwu#EQ=piZ)W9Ssuf%^wkf*gx+7HIKwo2M(k7Zq zOo|sQz>$fD528d|>LHnsEDwfxD~YD|LB_MIO<|Bk5^B8ufq7=92*YKt z+mA3tL$ml~`KS$AV2)}((vx=~`)BO)D0QfHQzktrjDLx4opL4TUW4my$#JywR_+95 z)x%aq%jC{y=Y-@BMX6t}*~F*r#l)Prm#*unVBw;^mfkM?ryGxKJF~&^mJN}{-CF5* z32L5N9-Cy*EEiVYAa^gKqBqtxrhGvKr>#w)c%HDqX6(H`UPaz``eFBsSku7W>K}EW zUm#rMu5&p3eA6GG{rltGfDPjIFJX=pf&?_bn%ryBV$9?2|WXm=k ztUYXTe7&rT59gk@$FHxycWLabR>7eWyg%&`63?ytbvxdH;6epzYyMH=q4g z7X@XHoZxt@?3?qA>F}OQkp?fTl=swd;kV4yoCijspC=6sYnv+H?9DE-4dJu+#n0Qz z>&QJ)n`<7oKes$|$@(H&@!{Z_(4AK=k6+M#X29w0^Wf68TS_tX{N2|W1t!I=o`jx} z63l|FU6Ttceq*;1KKsR;v-qIrVPAu*HfJxMDBkCJ#^=@HOY6BW`=1HBn)6IiyP%SM zv2i2K=`&-@o?|JeWm`O-{m*Yz0^%i?qOD!~+E}_K01Sz(qm7bH%5lV+G${^I#m0eZoW<0vzBt9(}y9;*V5+Ct%=d{27Sfn56!Y zdN>V0Ga6+TM;ZM^odRO8$G6V?udc(?+`N4G3EzL%DYm!E@PSX}zJnd- z{JNiA@R1da6+QU+MYm_+fnudy?7#cJDS4^DrSmn0Pp=RC+VodH^*l4zJ}7oM^P>I_ zdv6{Ob=!sy>uymIcL_zPw3odSgJ~r%5NRIFC~T%d^WfXYD$*6(z2KPUi=%ZhwIw3*2VR5)iR$nP1ccs~$=?P}JDb3V74#Xhhje)e zbDt8y6ws;lCNU3eowIDVx$zr6JjSQIqwHC)yWjPP(tK{)jwwH4Kl^x(o9uIkE%@x; zPgh}yXZHl6j+<;{VOhSgJXYXliiEz{)qVt(Q%_akCt!boOPlbvbP>ipJq{!$NgX#= zn`F~u6ilD3##Kd(-U5LP3E0$7w6tTy6(F}yojTPQfzdVIwvQ1lMBg>!_pa>n+xxHj z12@W8cY|O2L)2VH9C({`&V#;eKNts@GWY7u{ubgo6raH%)9nY6o(Svm-CEEQpb09) zr=ue)#*~X@RUhvkVAGo^v~Mw|4yfa@)6xz+AW*7Mz<PA7M%q=C4? z>TdKDN>Y~x;c&n=351i3_m)^GjE|vJk?Ox}YFObbS-QOz7J)@($35_VGW10{{UAQE z;N}QcZ&T2L##sG%3tuGI9!i5+tWtPgk=l!_J-OnP&l#X=x3gbowo`6YL{W`%M;Pbu@x8nbb%0FN+m_j8&4dUrf*fFKrMf)xK{OdGrI!I z`U}Gcijl!hUf%^YX1TqOZ%Ar_vP%#&M`ImDoUn^v1+{@GqyAV1fsUvbqnGAS#akXY za6sg8ruZ;=^20IIaMH25cy691a1;Zv5eXa=bIAFq)GH2&)!6A&kYuf9vq<}N9!=}u z>{^(kCRb;$L4ih>XAgP9i|u#m&Kb?#%dQq8-q9t*oYD6X;Hih@>e>#QUfcl`X?Emx z`3DaK9(BLiJw=w zKd(B}^&qJ(M8W{%D)z9M?x8`YQEfHRK~n8ADu4;x$KRd+TL^KU6u`9li{>BgrSPDl zK40@7gHww-$B>X?w|~bOA-lTMH3h{yo&-st$_d~Q7)=KSf{ft{nE$p8FU@^|#cDg4 zo$o3JFfK5@MP)QvAG%t$n^`uhhj@YahFLPa^k`d$apPWkm2%7SFAxl-$D3ATmlps> z3_iatR@)K7y53L|<2gPr?>?8YI}I_PrM0cZyP(hE>eQxhwO8IqD)QxgF|&dlA>`Em zq)8Z*TbmACuhX{7o_SFHtWrW$KcOa( z${AB{Tsyh&GgKUtYOAeTw>u_$oxr9N2$$taltkuSBE;sS`$H_86LnzWKw+6a4&*0b z*6uppWMWWKdl!H!Pj4`?>wM=~<7m;Cqz{_Jfpo>}{_Xm-X8~$+qZk4|J(S{HA8J>~ z1{T!g@s_T8`OrggsnhMwC4o?2jDYESky3%>`ZF8 z{yHA~`FN(0?qGn)DV?$_7PXr+IilYLA_Wt^uB+#NSFo&HvRr*0oTrB%lJ;(D2lcS+ za1Lz05G>JNOwINJR_?0Wj=s(}d%-$tv^A@PUFvR|WbXW!i##EyIU;v)ht&W`tfSL_+SRCM=hz7glqR&TI1=h#YpaT#FCJ_EC+q|#B zoGIvdqUrs4qFLP!P0?-j>v-j5;SsYn2whUua$IU=aIA)Q3CG9B!-<10GzkSd9h_37 z?S~spb1x9Oz@ex}Hk5?I!jKo?p;gbB?3n|e*>fMw1+4M&t$iPbh6ndL{G$Kzbz;7( z>=lTsVdm)7MW%C>FMn|apZZQo|s0Q)Z)^kHbmxNohwPDsv3y7sh06WwQ) z*tctjdmn_}aK&CsY+q$4*VF+Xes$cK8*h%nazfJ`w~bHk!%~?aEiN(gulG&X@=0}K7ygy75v>-7{O>>Edje#hsbddUJ}ZLK;w!s13p zvsvo<60Anu*nXq(N409Gkp`F;@CHYO$s^F@1eQ7M0`JGq5wCyf;^5WZ042!K3}P!q z7d_up&7gYM4vbB(iDqs#meYwPNrYbj3u8%ElTFUU$%;pZ^=TnUPAgjB(mcJRJeR$Z~7 zSeTE_mbqLB*7b5DpY!KOQE;9i#>^F>Ikbsj!UJ4zaWXIvaCZR z&T?aKmXJ|8hNZC*5bS(FOO%fGl<^{sS z!fd`K;vqgIw$7;qn0!hEk{C4!7dy>ARe05(bx#Jmj?5&sR^1mo&wD--o&eK) zEhdQoqHQF}fi`C*1hL#U@L*h6tCWswv09X{ zh^qvw^YEbj5bmed+QYZ5#zZ7T{s6z04I|bOa@FgZL87X-ZT|-ntyj8+0dld&zmYMO z$a;4v#S*W8k_{xM#@Qd*N*m*JOCDIcOj8b}`tEjcNr$ui_scW4LiKtg!DK*F`;X!E zG{mKjyFtMC1QQ!J8*seLcURs0|9Xo%Mi4fF!{Tcu3T??opsx^K{!Cnk*rDO1A~om~ zj>Ofr>3|$5<4OqG$Fk#hzk;$9I6S71yu-pdQ>PIxu79+V3GK}C-XCmnw|mNc2ij7Z z<lwbBuFmgzZNXlR-^lLZ3xY?+?Rb zXEzayP(Q>3eW=OYv=2lxt9wYxkc;9jPa#_49eYFdce*5i*cv)Y7Su?RV_zpWuCh&fp4j*tY`k!II`mDT1?6AeYp7sZu=IY!G@Dp%61Z@i_MF|ronO$; z`iM>Rp--M<0Z57*N;aB2Yk6n`3?!JxolJt{QZOLLgd81B>Ub`3hPkLe650S9Mk zOp7Fsg^C4)9@{63;+=RG$vT}ww<}L7(|wBb?_7Z-AyUrKI(sA=GE>poh6`qLeQvzD zUt&gi$l(;9-h3TA{q_C9K-)yYcuyc7^qYfb zHXL$eZ^P|C@S6!a^C%>rkm?mdNe41jrn!v=%0>rOGV%;U%59Or#F0M9ol^&junuHP ziItU-G5gZL=TcrgqQl^kY7a?Uk`09VVuA`S&~Z4K2rhXo5Iy~>RmAdax#k4eN}?N) z)8T4^xG;ev(N=#!#<0{6Ih#Aek2w_b%R{@BfunS<4ldW(3cV`9-7iTJI^BC$_EzIb zU?edn;{KXf;lvB%gsx&0b8uaaOq5)2>s!VbGpW% zzaNj7F0BehHdH*Ha5)QB=0gRY?069~u*}bj4l}G(+bqmHBLvklH3rL3yKr|mE$7_j z(A-fCIjq716Lh@P87qH>A&_oDmC|(Lw%}J6)VvL;XFH$exT4H8#j z$$;keeS|aqudn}47h8D4URad%pvOhdHcZ0A1pc=TXthjoC2gH_SZ~qgBA-_8$}nj$ zN^9*3aQdaP^B;_Z(gNiE9wEF@cHQaNAHjoIHn>?>BGDYw?gG}ONI}*yMwj6Bzd%e6 ztPvu9b^+{=V$|=zyqUU zaA&ZFQm=7eXDH*m^&0}9{Q%jdai_^m57e5(MA*whgIFr0omc9r&h(GC*%pDRXZc$RVhODp5}fD35@8nGv|;o=!D@VjmCojn<6WKIeQS zh5w}Wcevmm(XOej*X=inUpWkr7_?bJk~LOAhs{!Z|BC56N+l&{WyxTEuR8t>a#{Xc zr-i#a*Xch27lVb+k{x2h2D+_X0jun9e?_C-oa4W^dXaue93NHNavCK@o1`uhzL?MxW!}BM+i6(_RRxere7xW z*-1xhtoO0r-^cDhLyFU5b&qg5lZET$Vynqy^ zEvL(QRjdEomJZisH5uhGg-%McOU?14lsBg9BY_@wjYiF4&o&%;3noe zpaT6H^mo$uIa0wATWK0PP!8YenjYC{h;9|<-Gpf8UFU1^nKIW1z4N0xN3?A8+J~h} z@|l<=f5Bk^ve`fv%dow)0LD(w320xsl#tnZ9|7+m_PMr8n||1g5!cv*5nePbyuQwY zU|@`c)*5i2PQWn$LH~8n+Jm=$21*=sAQ)_;WD?;;I5vobOwu;|XMVk$Y+A`9#V|TB!F5J0Jo|louG3CatDLb!SRHg(Q?7+ObG5^<)019 zw{=yl&0?YANtRb?YRHZpFjdWv4zqA>?SiFAaprQK?3cjOW}v4Xbe2elx}%N|QyP4B zyLE*K^2vJG*&c{mZP33!VJ3UhODw+;vU%{k2dJuB^+=x0VvzAamNoWZ31BlpP3XRG z8^|TNM}%A_Ye0ej`!v!H#TPpnjof^COZ#v2_8Na@a}T@zfo!)N2?ksW34Zp_J~*kE zN4pikmzo*4vnovZ`&Nd_NZE9sl5Vqwp@Txt%dnxod}-)`s`IeX0wikx4$e<`hq2Gd z0Y--&Woa*8UW2}Fp-mu&N3QBM3}{jX^^K6+i~S+D8U#~3*dqu`-(-)pu7Il$dhG2| zxbpHdTp+53J$?*1N{CDppg73I>nWW}?NCSg-bB@m0}6xR3-w>ao_CE$(p_c?IDh{=hds}s{LmYgUm35SEi>QTtP0cz_D(zaOT zq2oIBsVTz$1IuFhhQ`*`@E_sf5->OG>QkU*LC=YNC=+VxLIEU7V9pbi<^h8+yMFx= zocoPP|3VIE4LLu`U!vsAXZQX8)|Bwu)O=4I;^ zS+1WXFOYlbl3Okd=gGH7ef*Dg{FBU&|Nqf*{BS@18KUZ6kMe(^Z2mES_&f3Of9cR( zJa6}nO<4YQUN(c2lV#7|1!n5&w{HFZJziY=HhWtaQnZEC@tfZ0_kTzp7XKXI_w!*Q zJ$BYb`YjA$$8z zqaW2Zi8?sQli&2oQsG69|D~V$@Hqi~JFonUBEEI^7ZX#Eo$)<{3dE3-PiIt0zwYsW zY_*szy>KGg`eBKRZ7Br!%&)U^cq4fJMXf;IB8c+-y5m9)4gXet0*;Xb8cC#a@O>Mn zzKG;X-}@qh*+Oc|)bFaDC7!i$wrdK{sF(Afm9lZF;bBzblxgV}^pDyv)KQd5oLtuf z%@;b31+RjZhrWa(VS+b9CxZE~;k<&R)fJ}n`S+G>&xSP3n##>*NpV3S1z7ls+6Oyb zW9h8UO?`gUv>(K0)yI>wtGLugKivT55W!UV09w(jbZ@~tVzuR*es8svQw~|du=8E* zQ}gCP-fqG+;~N+0{osVONz(Ac_TWh89^aTv)}@fQjLvjxQctALk4O*R!|MhyUl~;} zo9pV{Ojt6ZM`lAzV@hBP+*dCNeqE%uI1_=7e|dJ#LTZ1@XKy1n+yb_k;N`b8>*aQ< z13gG(4g^&W&#h5mI=5RIS7*u3hkEI2e@eMh;+CN>-&(nbACDdAIXhWb1fMlG>g**c z#@@xRjlYI@xm`ub;YtbaeHgB~*-k|lXV4z$%t5%?Jlm0$81M3I$}J{1H7~<{oVJ|0 z&tWp7<8EjHccMIP8l|on!+SpD(D<7z$5!Oc)_2vI9l`@@blq3}p5o4++K`Z04H>%6 zb6tG65t|@adY_&{e?e%5!fc(ZO!b4x{LLex>&yYPJul*W)@!k=?t2{U&%C2^vx)99 zR4>*BIfE2oW1i_a9a@tCXwl%t(Hx_dID*5GPu0x0Nm&A#Zm#ItZqS&dQzb_cl8V0# z+zq3PF0Dk&owVNbzyvFo{rL?4K?T=|G9~Iz!+fbQCzQ5jMEl6j-v3edtoG z{-FS?s~y5`ut^fhjULVJLjiea$p(eWSXviKz`k)wN6~0%^-dUg-5XEX))7t`vyse_ zM_Nd;eZXy}rKk74SW-@0{6Tz}$UTIS8;YxryMA$OVs9#3tEC{*6tut8B6v5G$#6au zIw4l0k7=U^wCACxVID0SXC}uwal4e2NgL7k5LRSo)MwX6s2l<1f{?$!~nE_-blLzw@Rq&Ifw-M)_n?{T|h_iq$ltZtz{^D5ov z6d6kEZ}bu$<6SL`H-yRz@ltqOxy%76dmm0oPGfz$s@nX%vi;YJMslZL(hx?I4hD5=qBT>A4Ju#hZiCG+sW==iXC zOvIe7^*~nq#UI}V_RlI6`phdfg7j24z+zi-Rc^GLs32^X@Upd{=&jy!s$>yjk}qep zYy$9rlg{s9%XL4}EJ4Cb_LPct%j4zJEoQ0WVR_GuNsP~x+8OQH&b>X=gfWd52a@1d zlAjmW360MCM*Au}gJo*pWE9hab+o(j1WTlmQaSoQJg?{tMKc+rg=4z72xp}m+Jvt6 z8JE|3i@`8#!1Y%XDzPK5?+-#Bw=hPR(x2ZD>O*G$Hny)RHqo=2I)R_9yxFn6M!QeX zFXV)5=B(KAz#Rtve*ODX3MMO>4+g~|uZ7z5Jw_6kWzXZuRN4tbTX>#`tCQjeU#xic z6y0Q(V*Kr69$4Basr6THCN-C2I49sG64=zPoip?5wb)>DT1A+pyn=CMq%?!Z8v1g$ zw!%yuO}TPmEKrMyDd-<~P=g1?NFRu&2*ACnjS16eMrxKy@cU?dK-K;oB`&dN64j?u zihUe=n-*BCnWP%L<_nq%`1v-ch@DJ6A)BAIGy3CVGy9b+0?6&QQ8aIuA4P5@=cRcS zF@VCh8hnYrM44vN$|)uFCW0a3dPCB*>gY9am86yhRGXULsNk0#Wg1>u3gAF2h*h@p zp-0}Rn;@?{MPuU>(Vd9tzeRY4O`GivBc%0u!mXz>+-3*tS=)kIuk@tC{u<|S$6oZk zh@`5SalFFJXNj7#YJ@H(_4N(ly65oH(jLOvE!fy>b-Zq0yH|0=?PqD;1yw4i9hH75N{Gl;3lY}c_-C?CU0n#PPJEB58 zC3{G0)qJ98m`$aGhk2eIRlf+i8~Xb2rM19x>a484jsD-`A$ z$%Q8g*gR+_U|06M&zOqhxjZQLQg3QF%lv`~wavpl;znXvb8~&4w98Ba#8COMw>7gd z!A+5u97u35A)OuV8})N)qNxsZp{&v4;aFl4y&)dWVY#-RvyVq@bGX%uP|2JhLv58j zRYlu8t>^c(;ISci$Z=xhX@LLP)}@|gmHvLueY*qR_3)bY!x%G+^NsghY`pYw?{kz? z)`kS_iMqo1OXtzqX0v*5cIazoU4e~1a#~(j z^tyAE3RO29Ojn=`+eq<>)6VnuczZq5my`g#fL&pv*zXhEMXOjA|XVgtrk86lEc z+E_4Djyx~husF@)A2||`%reqc!?TYUn^`Q0a(j#l0Eo4l!^jhFE|+!sYbMCjzhMFO z122d&f%0|#pOW{z-JuQj_<%+Mx@Wyp;pETjDLDA`vOTRj7*_=IlkoT8l@m!SS#Op6EIQ_L8pEIlsG|v$8V8YKmmFn;12=T7nSJY zZGi0qmIkPw0`Oa4e)T>AB~9JT67}TInuP@v;=f%?IR~T(v+og5b!td!__oh?4d!3y z^?!p8-g+Rk1wb|L&>v3!{7jxo{{h_pu8jO&0D>PSs!dVPpBn)=xA%NpX#~r}q9m?= zyVy$rl3yhN-EP503wWpq6zlp$-LH{=$+B5bRmmXxgBkD&h<;SvrIX8bep&!bH1rq~ z!Qo541q<0N3rlBKz`H5MB$`!r^i8cA!1HWfu)6DpzZG$PQ44>9grWDg4?uo4cq+I* ze*GJz5dK;Ayl%r1!O-s>j`(0>z%_gJD%qj9-rn9MF2))UXj6&+`9PWe{eSq9SXuaV zf4rctuZzjU5`%(*U=?=w9ph*MA(*=Cz%$TGQLj;eMMqOjHwP^?PSSB9{oROk7-1{s zVMHVLU;7B$hA%J!{WpCt2|ihzhWaZs728Gk@vrO>oTrirpsvvYMT`uqVGF>b;JyYi z#TUrvzAD!bU$wzKJ}+wj5b72(;xpQ1)7}F>j-}?1?iSnlR>4jFHwPe;3$vhe8zqZt zdwDoz2cDK24w>7J)pc18?yj$1rbqz-N{aukm{D3VfIF{4$_j)*c+xq z3iD?D-$cL~msy2ZpWD1BDLS$Qt{O)Z<$Zu#h47YTL!K`ZVtfG70i55UOS33u)D56z z0-iA$lNCKM38*(<*r1~#+@*uHmd_>`$=m_pZNaJ14#cg%jw?`?3!R1c+W?|Y5E12% zds}v^J=$ecg~0N7Cate^fCGF5Cjo+gwD6`GIut87QCv0OblKKVIh3)xB}RyL*YGXM#W*R4Wl}cW0Y{ z;Q&=A80b6A9O}?X(LHUu$EFHV1G9n}IO{HDRbMFmT|P|;*X1oe4GK{3I=Wj_xOyPh zZnZA6-|&2*t~?0OL6RjQC73X~gmu#gP;*skh1Y%x#{Dut)naSdrkXcVzPIKx7$X(h zA#zbk5AK|h;^P&HO}{H#D&T%ac}~;|^=qlzxkikWbONC2Mgp|VMOhm`Vofu9<`u5W z2=oMlB_rC*cqsab&R_WWzeBQrg4@0@7A*;&A+!MEzd{gXsY>>sjs=JcAtyjXI|O$G zL2nak?E7#T8z7JbU`c@T6rhjFJ9Hlq6Tn^XJwO!o{ncPF#JN$@5Srhz3fO8O{05i= zn#wshT_vjip~D5ou_(}a_JNt=$&3TMk-(QhOhW-lj<6ARr19YEA+Q*%Iyi#zURy3?QsJOOpnmbcWZ&3y$=pabE_i{ zziHlR62A64zm%~ms8vRRZ68B~DjTcNH2wp6C6_C&7N&Fv6a}ZioeQ}>6rYc+3Kql} zfp7^TAysK!j6kz4wNg=0X%qszOpewL9XWmw@%EJ;cPlu-tFvC=bg#N;@M7fu$T@*z zCuTXK(AydjHBepDvWM=?bV z17CTb`szu19$XbA_C9NIYD@U5eD}uj77#jV#b4r{2GRW|aKHtD^+D_&kl5r-fnaBc zTKEQePw~qo;M^7C749etu#eQxyUR=~NpKql*11c8sK?-)9%xyO%4{HD}X$T{> zAP%+vML!K$DeyBK^Q8H9Dl+rP9-|||7@%Cy%-QNLF=Gk+CO_|3X$j-IgDwN(S}y>} zfN^(HE--r+t~wo9Hti-v`~17GPwB?5r(zT|Mf=7emN>x2CFD&v-(Je93u@%h0$9e< zz}I0d5z)pPT>j)om4P_HH0V%$x1iE;swz}!XAUWOz!e^~f)--ukSHz*yL>sh1%N^3 zTm!*ajNe8TcIt(}SFaNue^JHqwr_8%kLGFbOsNpn2F@vmJn@fmTU%}6=Iz0k*Nw!q zTbzvkgDggeVWDh|11z)+zD~-~3HeDj6Jjt#jil_fHA=bAzV1Z^ByQYuF z75bbHbfu5NTtBQ-G7KJ4TwriM1oUzs!x44TgLd$UlEBm-A{JxV1no8LX5b^!dxuT* zcYHY+!)_Vj+9r8F!Z8_33>gwq>jkQ{Oc0!lV`?wzxI$S1q9=w37uohnYj|0TR+yBD zTIS{&toY5&cVpXOyKiW!D2da6Q_gHS&~pIufFN0e{j#o7nh<$v)u1MRuI{}wDIB#R z=V4(voCVawt?~tm)V$%F@-!43-M1d*<8=+bCVEpeT1x&psJ?ACRMI5LU`z}Mq8scI za#9fodbUjcBbj@t{(@vo}sV z159Og!LWI-iOeSC2>H|R#-KqCon6xTU9*aYrL-Z!1thChveT7FCOB)s{77GPrlz?p=lMLF2o7Tm}Xj_j0id$WFq64(%ntc=p9d5b&m+ z9`1VPMMde_eL4qch2`k3uSsX%KWMzthu}Cx$_Aux>FMb{g7R~)s@YLc0R#yM4bJgR zryz>mffK_S>bVBe(^CPkKEOSQVHeFAPJ!|QnN3{NoS+uegt{Au2x=L56>xeN&dF5p z$n_#p&>{5rJFbEB^A&JrD8*ZffutB(dp_m8$Gn3mOkt1i&MZvC(TAXlp%;t`y*W6* z@_MZg4vgDt&Am+l#`krqLqb0A^pdp}7tD}IHsgVt@d!|p9f0`m+=zpq1!Btc!U4JJ*DBSMBq{#YVXy%BCWlXO~3uX2^`GpIQzW}hc8>14uu8`;>WI;i%O zmf5!v4R`4DGzq_{m@QHSGOXjpUh+Dq;dqdeRXO&Zc}- zeQ-T8$Sw_yX;H&MS^*Ik1u6}j`rY<))JHNDkPyWK2L|`r{~~}?FG&T0*=yx?Bf*j6<>tZ0q! ze?6D~bop#Sik>((h;MdUrjw31$?E0HnTWRlQi=#%A=Pg6ya3DY;v3T%s06g$nX+Ea z7{VYFDwWApkM&Wi(LyDu__h$yl%o=-g^{zISD`A*GQX+d<<%e6o~t7rbDHxQ0vXqK z`uXD|Kr1~4%!J60pM7_tU*czp<<+_S^qdSKje;=zo_5{-*|Qw~t4;kgWk}xjT91Bx zbk};VGsmAi{qLoyKQjF3I)4*o+U%PCoM$_H)`W-Q95K6nv_vy4#~;>}31r$Z>ERGN zM>nn4O8fn2&QE-f+k)=WW~R9ze;T~rdwtS9L!X{LH)3H3a@a%&nLE&!0JYcG*WR^P z{;$=(KZ2S6e+llt7aspO+y6@m?jrRZ|8N%kqmuLQb=W_s&3L|^EQ=LlfYfWi9!ePq{rBLW0l^6J%x!vnAS{=bh(m+vh2l` zjl<&_*x1-CXu&j~eV@5<`%wk$^XTS+AmYCPWj_{#FU(66G*xMSn0sP&_)3MrzhRVr zE1LiM@shK{C;#`~PN6he{M2v%NX>nH{+@2B{2qy)DDqy=NtMT5A#~x|=DOw?Gx$(C z`IP+5)VpYkFJ77%3HK7Y`JRr_pijQWidg$DstE`bn)QH15vh%d0PZUCX36f_gxo9V zD(;A9Vv9ZwW6I2eFFRQQe&V{w*|5SFRq=D_I*0& zYZw}v-l1`IPSxs*twFIOXuO1o@84uws{%>tJn2x^D>Fa5DwGbyz2wc#Yc&T)%GoA- zAv~)aQ;*yW2H77ZE@%@)&a8v`lF-Y)YO(*}00yM0 z-_;m1z&EM^rzk(YfzMu23`*dmi}Yp45A)(3Mmj1PGJUF*lluf+C%16z2;Ve9a;e}J zqW9P1a2Wkc2Z!1S`@wmjn{Dbdwwvq?sjlDpPa}FR2_N?iOWdu==&9302T~>|)p*-? zYgyGmDr35B5ObL_%>@a-f($~zp{8>l@U4_Ej+PNjWjjKY=8PQ7OdH`%&S-qvqJv?Q ztIr_}CsO30-*mOB2Cp|;KA=Y*G@%5iZ8v0_-Iwl4%?W_!77fkKk5}3J$ynh>d0kYl zEMyvV=XwwX1lWurEbM?0snl_Hwolz@#y@B?6_F=-r;BXSKnN0Ge({$@J+R{Swpx}reGe8B>b$>!iyl6TAv%})V zpA0-|&a4sMEE>9y2tkES4YDdswNoZ5e#rX!W2O95;J%54r@-EegqrV{$b0`^x zlOcf7CB1H#p7m-Oyb5IJFUkk&PlVFlJKY9!y?PbJ#=LCS)B)~1kSDrB+OS)P1 zk@fN8$AWVdu~bgo9E&n2bjH@=XuG67LXthj9~6n5gIhnu07c=~mw4QZnGfgA^@c#+ z-l+vWeBt@9jZhSz1-l@-aT0Yjeo-L*0!eUdVh%bKca_lbUQBcAs)}f!ginP#G(!Qf z;1uc}8Uvz;MC?>*6DyO5JBS%bnN<;skrW<*=H#G!=~KWILJ2&gznPw?LQ!+(NMiS= z@s}L*G&MCR_m^Mo(r4>}T1rV1SM5AtX`h^5lqO)o$mFo2E3~Cn5t}c8XNjats1my1 zqthV{n5Pe{okB5igzOhEgiJ>pL>^FxPwi`Mk5NywsivQquIQQt;`_=L766a!Hj}ZzUEz#FzZue#Ybpr=hrfUO=S{Y8EvcXe3;PkXX98nQL!TpRwpA7bdLvzG`ggNT8MpqHCF?mClUo zwc1a?*7qaaiPr_|_pi~E#VCff_GE0zBnqhcN-@`KE)0jl44bOZL%7=>sQPh)d-?Je zH4KQ;s&heDrLg!N;GFX<9H+q6+4cylq)oT@Znncxp73L00!`i0=h_y%h!LhLCeN)( zk!4pR0JI>fpuqS~5Gzt5tP1@JnInU=aUU~o`Q&#NO2Rtqm-R>X%bZ1bb$o&1D%eMiUX@vt}R%~D! zym>75f23OfA&r@ZHy}t@R?BaaHF(Ro$4oeI^sq+uwv~k^aO{ar)Vvd+T6cwu^qcm+iNo6V#_8pbb>dUiyJmR> zR}aa7kPsw$0^YW?cPSbDB8=&|T&sur@59F{%aq*6@j7z20(mw;I-+h$;a%02WH_+2 z!=+H$WQA9r-Jyxw8<__z8S+hD>o+|}ADalo&67>h;b(e93d0bqk>2|~dbh!ycaMe+J#l%je4SP3zN|v_7t&kSc}AN09VKiW-4Z<#+mhwoy23JOHLm?td^6- zxt336J<(v<*|$s1{;F}B*J!;!{Sv#}BWG8PnXc71eputSU4-;#loZN?xVh4-EQuli zAyD&I?$f82oLDcD%~;EQ!rtD{*p^#I>HHLxf~^kb4uzgCQ(iCHDO5@35T{KK5vu5( zoeI07o0nZ5dz#K!5&1|c$A09(g~rQ_hL<K*|lQd)vB2OyYXo-HCmUs^EhwAbo+%Znc zv+1+9K6#^k-b=xney;&A1LgJ;c!fNG9Nr8UJ01yEa4@Y+(qC$b2kVX(ay>Lk_3G=k zL_A}DcT-k-{z&?e`>#TAt`{v5X++8zzPf-IlvHoT?Wk3@9#l0hA(s!sfy>l`$$l;< zPCn(%BYDDpA~e1urT$M>a;B{9IBvXk=;Tqub+h+qhj%Ph)-PijDA}{rdc7C#*j1ei z&r;eY)_I1Uid8+y@+>H$J^9(NN&sh|OJfdocfbyM4r8WMg#tY=V!e31?#tQ@H!AW9 z5BkbG+c#12oPGm*m2~#?`S(i3u~oR%j0E$R!nBF*ai2ezs6{ll+qc-w zbwPDIQcdl+YGa<0oq&|FyI_c%S;HvCO_VzJ|@tD?Jqr1OeEiPxe%txRHVzsG_=fF|q;RU0x`P;aOuDGUG8tNrOdm~?;d48Y5 zHw5Mh{nIVPLG$SLo4s+)lhai?RFDZem3(|w6;*d!Z=Cv zWJsfgj5y~!-AX<;#N*CQ_vVhy7QKH(@kP(#PYLCVN-MPFm$#XGc#fXkeSZl9 zRlkcA;pWQk4K}ISXc@~v80iEpa^`jwlgkbrSt;X{QqBqznBSBgr+of-P&zkhSZF|< z-ydIo)-XsbUs?|dXvNX0p|9E`8JCXQYMHCC?zNeAZui>0eN>|K`8=yiiL?kEa0db` z^-cT1L4gQO?99#hU$1t(=&^Pl`-}zT{bRQ?vHG$6>_mk}sph1_DvnBliFIs|k4IfL z?T;nD^Xz({68vuU{@3ST54zO3%{C08OJ8TU*j*5%X9VLnihmx4W_@WEuALM@SiCRQ z+?M!EnW=E~otW-S;?C}|{MK>fJSXBvGaWIpu(gZIYp=ol(x%^f?Tj1eUGl>-bxsP8}fFQ&YOs2U#YEg$5!HN85Z~ zt6IvA$E-2BqbJMP{D%hyHn|UK%tG8e4i5Ob&POV^%q(}##}T$ozZf8hF@2Y^N(VWt z9yoK3oH^BnEBB_hGhdrM5(0yQ{yNl-L*kfHmHn3O7kEF>^_v0?+z=cQsi=*i_TQXn zOb#wv(^OXKPdGFbr|Z-Jt{DeyO__OUm(5_AG%8QGxIt3Ey_pgklFofmJ%=wPLsy`= zwn(Zgf5gyWBeix8=IYZ+O>I(Iu2L2dw&HmW@&+aBGip&aSvO<0m$56DPVcMj`LY)~ zAEdTMwSUW0kcrvcbLJv>gXi(e9cOoJV>wfi(LRpbN`P)xr@Z+-RUeA>pv^Q*pL1I= z6|Wg%@4*p2^a%wLgaB+a;mJGAlfkc?l(Jl*>M-uyYh!3q(~>R{F5YoHrd^`ocGfZ7 ztF4)P+1SD=60SESOw|>#<_6b~7c>XMVc<}>3h5Kn5KSx#Q*hDAz|qQ>h@4Cpdd!~( z^_A;vpoyEPh{sM&)0(HseN`jfC0sT!{Swanc{dreCI>89H7uD_Ja73+2m71JjQ&Uo zgB5pnd=O|yopKpFlB%^%PAC7^#E6{fw$UfeZca*@wPz08@e@9=R?twm(6jP*y}x_u zwuv>fw^dg>EPS}+qxZQL-Me_iJ{M;voixgeKHYx1{NA#|*JtZdb0rw(cD;oq zBtP%DmErQ{j1SF2sG*rZRnU_?zqN_&v8bg33R8%Bxa{Yi5N2@qv0pZ)txLpI){H5% z`JI$Is^I)nF?RWs&&iGJSY8HFr+lQ_9X?Go;3?@`p2tf~e1B@NzCFrBe!G8Z7yQ3c z9<2A~?vtn8S(|>h+A8I5w{450r^_+y=78JJk_>Oz8U!wpxnIoYkSx0IPYch>NogzQ z=Y|0$N|@!@uTwt9M^{XJ&(o1by;~_y_?F*Oc%-(!uJ%~WvR}{Cq1I*b!+0S-`}OPD zCioLaUu8PT9_cpwOJu(KG7j_L_*P@CJzVQpSX`R+@{Kqz*>+b?c%{sl^&LkJZVfM0 zH55?(U3DwTPpH&z^X`2cH@96dI_z_G{1@FgHm|ewC_dlRqejPmVYwydd?MOa?AEif z8_TvR-QOx#s_4!Y>KP}z%3ryge`0AU`?kB=mp_SgSF5ZzDSdvUU-X6CTf9Sscbt@- zscv1B1l}^B8^S_6tzHh6(r|^k{hKa0ZI+E{yXY4`S!0rX;*$B|? zK+U%}^=>8N$pPijA@Mc+&@^l{8yjY{_1b9Za*$F%5~)h`5vWEpU2O0bpn;i$j5|kK z64C4cXC|f1WiYF|FUMuObFR)-o5&7F4v~t>7wxmMOeF87&drmUh&mC9v1TW0)!(~{ zeqHj(Oui*4|LdCfF`cx;&1(Z;CJh2T920A!R|@3?I1o`8-`GC~7NTrhfO*<$qa+#v z$#-?6e1=)m1f<4c^OwQ3>kZV*XG%*($HtnLJ=|`5KwYVU?6z^%JAe zy%nO!8lhA0%(|A{;h&&bV6-tg8p_F$euG)n#S6<|^KMTXyvFZ~-nz@Vu0VA=bV-xs z15Ho`bR@(A#S03xx%zl*?`aUol}!tv>`Q~7{(JziXGgH-^R_Mna|iR*%$uO68;wa6 z0In9Kjv#mY1V!?fiHbe`6~SUSpfcMc9QeJRl;j_PyVAA`?0q8|k(tnYFi(WI!{gGK zGf&ZTKBSD~tZL*FbQn&g$oRlng9ABF4eTfhprK9xW(^^VZR<4-LDsXAKO~XbM zJt&tWSxT8U_Dm#1n_5}s7kSOCDZ@w%-WY+q2{5Se=aXwkd*s_tS{x)e)B~k=u|{P? zTwGI5d1kEm7`SBs;k*^4zsA+GV-VLY78TdNNA-Z!JKjPgXm!-c{^(?wXz0fdqXMco zsT-eOO@Y0c%m~C53y3P+h%)tH!IU_vR z1UQqHmq0F)0TCEvnJLv^o4|q->KE>H z$73$17;BerjmJi*9h8gePFkK&FFiKL;kVV zmmZ|_fXX9KWWwiqecUYIc0|_GLF9pUnymw7mgB&sbnCh%j&jO76U8t&$CU8Z7_Wk_ z`+%Ev;Fo9oi@gcnz8|9C>I6gjpahyXL3kT(&C;|;yquK+2U3`{W&H?jg1SIesL&a% zdsz#%7cbPaz?}dbFLc+{LMQ{%*nX4TvLbtOy9htTDEVt2x4DjiT~r;2g<)4ETuki^ zG4Q$hYG~4}(}h1e!AYqpbyLZs-J0F$!?Pe#NaHP9Zr87E%e@~X!^{enDVEx9KtYOSJyo)N?n0@O`rxq@1-;nlet&^Ef}LIxzs zI?yFvp;(&hPIj7$*pVEcsMmU+CiA8PoWC?Xz?##lI*Ssk=2#3mZV+fj%tcF8=j&bm zkTgZK&T2Sa*BnM3%SEQ3rZEjpv1t&vl#L*$Du4l>WQL7p+Dg@>4T8xU(Pa&A`H*S` z*H=XPCM%RT%H2aL|(=nO|;5|UrX#`eSIBc6h|Db6KZrL@uA z(OcXpRZXxMD|`{#6OjDwl1{fIjfM+)>!=(Ai>ir;qQUz3c|>#r4v6umqf0=tefYH+u1wFeks+KCv&;p&y(LL|3@JPecVbW$1sqc;Hsm&{hMDoM@-Vh5+ZxhvvjW6BiR)n*_iTJ!(j%w7isNxOq z4v`5hMxtfYFgsZR$8`&>vz-$jq&}#d61cv97OtWuip~&UK?mdz`V`53YWs~7P2Z5e z83`amdP^}+IK>hY5vb!g(%0_*UADK*i4!M4#Po=A^F!1TuAORiBcKSW@kX}#`S`~+ zmGB35x%;`o_r7PHDA;?3qDh@R216{8C^Fj%jN5Ki2F;yM; z(GV%@?swdovHxRbo;@)rAZ^+10xl|u7ajPE!M!U2yO{*)6I`V}NMiNwDE2e zn|yVCYBPW1H=5mSc}zdJkzZ-&!s=OL+TRZfBaxfKJWS&~(fXQWMI%jy@_ zA()f3LnH;?uPfu7#cI)E|CDsC^aANp7cXJvZq0?WXS;Kcoge)8ydpqd;blw2^=Q=Lcf&#?_HJ0BF%Wbx0))k0AkR^X6^N zHo8tZ);+()Y^bX0Pl6-^YB7YS65xPV;nlfVLTl-Hr#vdK&+8ket-*}61bh6L*Kz&+=}EtT3|S_Ve;GCJ?v zi`X3fN-S2oVr;+3Nmzwzv0f5<8sz@TsO9lJu{+UitvUOSO~qr_%PGrDN+jSXK<@U* z%r04Le>3&RtI1&%qr9(K^I7pFkpN@B$;j^wD+{(`gOMV{^Vb(sUu4+7diLxY>{vK! z0{I~vZUU2UkYGK>MA%fxKw3bDcj=x6Z%?Zmtc-CUo4D9T~m;3^dT--Z|yYr3NbZBXDXf(8i9nF+juzKnB=7$wHM4)Lt;a z_j@Zp47UOpUo|yCNJr{2hU(3sA^k+PyId5AjiG~b5I^J+-X#os2mWZIApub3j)0+g zg~8*4=1!1rA1b!8&H>ry+y*5L4_GSxG1Bm#Q1%7aF}wQfDNvWlH97d5T|W$ zxxU`~X5gJCSA-&2v)=k{xHs(9(0E5UN%RCD^QMl6mp=V1@b<;Y7&QGQ{2L^d;AkKC z$JJu-DHQ_zgg)B#R!gFa2zK`4aM2NK^VZ0QN)wP%Qebn2qHeilK%EoJF z$M)@T$)DV^NC53?xbkCR`TXS)ym|M}@FoCII{eec9ZZ;={?EVv{0Cx&Wz6Wy0$%?! zu+@djm(317k=(L`#V?52|Jy(i`zjWe{4dGh!=EBzg#CX9Y{C710id=5 z*ulc`_U|YN+&fuVKK_UAm!G~Ym$tPgk#w=WWEr)5gQVdY9PO17Kk^7?B@ysW!^gvm zEb3`dbzU`matJOg8h>hbw)n0Qp6vcmY4egrZv_qV?~h=Sb-(tjLj}Rx zJ@Q!WV=u&)Z7jE3xFem2>wXhlviE1!_jf)3e*e|N@87<%=!XX06D)6YyW!C_~YGp8X6aPT4@@%3x7(4Ruf z?4Hji^CJP{tQ7Oyq!02 z6SAh3e?oyiYB%tjO`gCRMYZHj`AF)zTmxTnVOd*K5qA(6zP;_nKSJNOfi|+d^}^c4 zVb*`FpR?qC?S>6?qwn@6iYA&<<8aUkW_m{+RxG9L2?VWuCE z+QVnYgFah|eJ;6wcyWCC_stOHL`*giYZ?Ef zi}2z5d!5!y{H9s?rU%4$7mjl;6zB98< zCNKBW#?%cA=Qxc*^kOp%%N`@iu0ALsIaqoV#e&3-=j0kEk2 ze@g1UZr)?#Z#!g3I*XX{lpVoji}^UU2^0jAx!EpZwK*?Hsh7`({gs zO#Y@NaCU6giN$PNS-7(AFaNj=C{LD?yn_O(?uZxCp#j^ETlwKpgxh4B@>zCdgFfwI zRQC^@{jGOD9y4zb=LsMARndXDPh%qF($DPcP>TqqN!cH%(tUCQ0APKBXBK znsAR=qnaxJ(#m(Xw1nX5)0mp1TH!y%B`?>P!}}`GRsy|+E?CL<`Z~UD5&I=KzxwM#<<(!^3_GG6;T`UjWHrY--XW~g983~>rAET!p zE;Cp?{*$~Zd;Z;1^ql+SOMlBiW&CPT5O^B4Q}q=Z}xfCn0P4?JyT_4n-7q8kFFd%cuFEABli3`S}(7$^O+7o${YVqJT-*% z5x@K;&lqCRHJKFb(`1?8(d?u*C+rzxJ-zw^UPAcOOC4OFHbtJKqbA+heK z7+=UVH@L8cJ#bPoX_0QnY1E+=hn-)jcBxn2$Gq^w#CXv?ZWKRwoTS5c*0Uuj)cF5l z?XBaYPWyLpEHF`NNoi?8LRysW?vie#VJJnVL%O>|kd}b~mG16RnjyvkhK_TOyU+98 z{r&cwXZJa0{@52U(b>=Ej`#a|U+??AuEIp8k9S&&&bY=aH?Udn+smm%kUI-c4XlkF z5IxW_55mV)n@vW74n;)ZvRm=03g2RtbA?mmQz$e+NSU)#Cl7PGyUqwPys+T`51;90 zxNYSY;UTd}gl;6YQ@0tRgCM1@)n!k3}@OZ2^X*nq5z4(<-V|TT@iLF`x=_o2VVx{9>e3 zExm3`Jx*B6R}{`QvSNsx> z8_!!FM-CoDXs;gDNZqvYT&dpQDiZh6-N(nsR4>5<>yrWk50hRvT;I7qWw)LUXEm)P z&7weO2C!{c24H$;PNOHS;bp zQ_{G)0>Oc7keTX^Ys|c|TW`O8^&(20)G6@q!9H+673 zv0@kb9cQqx?z64p=_2Y(^dJt-;4CjUk(pcc!Mf{JHOn-cAWXI}QNU;XGOFXtG*)o{ zHryPms~J+O_C6NcA8)6G9{?@rTOV@_-Tf@;v7QNQNqsT0pR``&o6mum&hJ{MA!fQd zQnuS@nen;6yn&sV>D+o)Q*cw!t}KP7NCQ8aqPp61gKXKwvs!()IQ^7<_0_@U>L2`$ zf;fxbW6<=B&WJY5;g65czc&-Mg&146mE{6rE+vccT5V6L+x7@Q=ACEzW0loKY%$XZ z23bYC=DL|R2ZGd7+~FFeQ}n|@-sKR9)f?}dw#%@0+pfeX(RUsGuypChA}G$1Izsy9 z7nIKV4hU?1)<&|ijz_NY2#nV{RH$(CDh)P=v2x`7 z-S1!xs*K0^j6@7O%~duWDWQz?mwdsJDN=nJi6 z$Xu*Ld}s4rd1tl58MKO^NiMNP_9R1kdbGsF!qM>w>igl$sSO9OK^%m&YuPpN>*2G( zw=7By5w+!Aykvsft?6l?Q1}QA^7%uz_jz-%Hhz-TZFkkqv0Ln9mw)Z>aXu-%R-_k? zTnDGd*f&)jS`(3d;GAE^rH(l>ifvo4sg?_d#x=X;?I=pPnWHU5M;VL0E8BNVeR!~N zCzW#l!?@%2I2k?nJr#+9FkOY`^O~;F5X_ufK|omkvE&0sRxUq-(kLS=eA8W43E(%J z`r1Jt)63XZYWnDoIs*f-^O}!K=I#Wa44Gkrw0pa*LuX;p&+RWpD2HVlH6{83=wg`X zC~Lk>H~ZWA;seEbe%aVHz4Iq7!Hs*}Zh@D?;IjiC749|Fm#4_n-Bv`9r3rA7x0AAv zKfp)i7i7q`u4bsTv}j&?saTJu9mWMM<*$Yb6#PCC%ypTvCwUL7>Mwpk+EJ}V``a+A zF7$f(GCK`C=WU)6k~ztr%2dhb-De4pxGUbKqoQ^xoo7tQByBk?ETZ7#cvaAp_@I4G z>Z}K4#ShjFk3LbE{_Aa91%p3<|JMKuV|-x6FLNW+q}e7>KUNYh`dK+qc_ll5B8Og> zkLzW!5ti2zHlNo%bm>Y~bjAml2Q%awqLkya*H`Zo|8OR8?pcvgLnZh`REA0s#>XYC zAFgYu`KiN-_~;6v&q7A2_x#iI{PPzH^8=%GS`G;CV;a3R#p7{XqsJ$vKrwm@-D%nm z(H5U8b~#NQlwb4lqZ3Yg1~cYVFM9gf(-M|#iV+0fTrN*AFI=%77u9y!{KPC`j6RU0 zk7amg6IFz%+9c1HAN}|d`3aAM6-g!g$G@6u)rL8TDM>Y&RWD|(qMIvi`zj<@@qv-B zRxL8s`udJCPZ`wb7K@S|Yr{z2!o=;mj5mDZb_ZJ}U3Z!c@S0k7>eW`oYa83W1awdr z=WmM~hHnpkwrd!%*1T;c#1 zv=tvOkMa8)ClKc}sOTXq9y|kEc<^0%!!X zk~IkOSgr0utI>O@Ng*|1YC*}YTp_Xqs0bzFwVCI(Jz;vZ1-O%rqguIFh8=te9lV9B zl~fqx~j(D0zlHaJ#8^BS&lxyn8`#zI5 z^~0Kit#ijP*~l^}nDGU>nqT zK9@ILY$Uv$xn!toLBT8ku+D(g$oV-sf@Nm59QxGuK1^gi;1p^BpDBTwH^LR zMFafG2|)MDqVTX;4j$G6stMT#tmg=k-PhD1TTU%$@6ED#(n#p_>zZw19F!E0r(tH< z_pgMsR3u9alj~-+A;Jo&dvIrw6HP%p`7xFrd(y~0&fUi{n+Z%eNrF>%dtKdVgh(8} z{IR4d9PsW+aCm>X`w_mePi`zq6`fvmU0V2nDBNA(hCKg$Japy%?~frmc;$rH!xr6c zwN8?WWiP6Joy^t%^~p$0ec;c)YzZdho@V7B$yt3-2xK}x4DX_$-G(!(;2Fpndy8*c zje2;I7L$_B7R2+7rDYyj{9t=UNw~=@LXEz%^)@quWlQOe%9-2_Z!v!X-T1~qFXUC{ zp{Y!H5`)XNEx>+kgIZ1-6_JZMcB6U+bkEyCG;i%`o^FXM{#E{HM1_y< z-v{~5KtO4#!upN7@O~(aZ8aFCP#jUFpc?Tww2eIDa7-2TS!6NM<5$(tigh;_29VQBkh6dME z$aniVk=xGY^J+iM%iKmZE+A=1S3Q!qoA-Kb5-rF0)n9ST+tY{hLib46;bbuL&O56^ zjs-h75FLFzyY369x%-Q9Vz{;2Bwr{5PUamEbUa%a{;Prssm+f|G@qAeUSB1D8+}{k z?2s-9QH3jo&XfQ1(L@iz`T{^QK9L1Va?H>^X2&5V)r_?36D5snbILFWckgnGaZzU* zy1vZ}@^1&@(+dHe#@bvs-u%T9jQchpgL_OC^$3HfxKw2#)ZrMDIL;77ShmVGU4Vlv z#b92!RiT!ifDp9jx(jS^e7B{4s+f?9Ux9URjK7gr43ASW-`Oq`;)!_UUJsj7A{U0= zcA<8hsJ03WU=67)OLznyQ+FHBEF_vPtC}lcsB}0GTbPL+T_kb|sh=A>D7iQfgI@Fg zV*7SPa!e?v=E5PuLb1KXEoN7xIvCPio!e|Nsok7m?1fO(m+x!nN!*17+Pz;mWv!9l zM2}15*0ciWL#c*gd73|;k~RcTvt5$L=(pb2+uAt?)LD^0U*YK!ut4$S*7<6pak^D1&mlD6lI9~;HNT1XEETuNM88_uYv6^+^!ZMedWWGC#IjRVp4S>5K9p5 z%@?;rR4vWItl*uI$D(=&BImf2L@Tw{fF}!BZoKS1{LulyGV);u3<$UJ%jH`R4kw1F zpOSSi*B`@^yt>&N-JoVr_`Ci9Wg_zeEqXS7=%7pfCdZ`>L>d5q=T;WRV^Yk?7VEwq{!iQxZ!=S%u^_;SlaC zhMBwGb1DluST9iexMw;Rhn?D4OSJ|tzDmdXN(DW*I&&MkcA0OedsPF|pD+&7!l8M6>gM;9dfqfFQ{qU1f*Lu2z zNF~$0j~Y4xp59(M`U{2DGH!SH#AF*JQR?|-mWyLrMLc>4P2}VNDtseE?ZmRLo*@a7 zgraUNxbaN=aiJ(8G{1f~7z#GVzW?{y0O&LIk{DmUqx&H>@QD*3a98(r1x=k$2h(e zcD(4J*YbH+I%0;mN%nqP!@Co?Nj-Ty1^sNyhwD7v62>SmDs@Cc6nX$SmJYGp*gm>d zrBoYbS-6)#EKxm7qY}I;p8iGBiunrW{%&md?!XHIM5g$i>4evax>Mn3+>fR88}2XQ zIs>aa&c`pRMR2R-{y!oGeuo)ov;`OpG0VHUjQc_#g?wri@gi{g+sV6EODUrVYb%L- zk`8?$r&zTZBh|Lz7bGrjBbipfzr~k1 zjSIqDy@@?f3KL)Lz4ZQ|S_whWu}vWVIP!kUf792*-a$R!kkum=Qr%iVJi7m;wWv5Q zY~+243}+cdS-FmDbb*$jKJ6qdH{l)=)#2Lws${!Ub#eM zHLe(uG7=w07&V>UAD(Wi8Y54_aFe(|g_#U$eaAcE26XsiWsCp9VNhgemR0PbPLnr( zkoIuD4#Hxc{*hFuC4JOCf_#6Dz4qu5s%^Y9=qdcsU``q&U?)RmWcVZtw0pOlMoRg( z!~*h)o_*5EoS^Vz*+?UEFhe9RLkDCy$<3ygMv= zF0T258*<$k839w<`jB~_;&tggIRlP?G}KOMZV zqOgdRkt~0t&ClfOg}+Vd{kkUfg{5FlslBGX_1FmcVw2r7ZlY2Vb{n#K$`QuDQj~wZ zPQNwTe6T0mw$E!yer3G{tc%M-?hLMbuPA35%~k7`Y87H9t9{F@W?)|gXlE-OOw6^Y zBC)+AkT8`aWOicFtcQ3W443RiUOKjnu&C9a8*|K{MtkjCKF*KR_)=gg>LH`rU!kly zh(v}ma%}hhKG-Aw14b}FFBUWrz=pdjaxd=Bzd~Ov`u7nBB6OdDsxSk@{(m$$7txJT z)R!>c0#NF-*b?)D(M*@}+^hI$)ri2u=5jQbKVahwC|&?Pvy7jB+RjNM>6=hm%)0{| zLKI&Ayal`aBwb|3x7I9?JNl z6rhVxeuYpW9Zo*^lu;2R4q5nJA|awG0DB8P>}xS8DvS_ zDvV&i%fusZ%|viIWX`Yia%MboHijqE&UBx(?yCSD^23p^&+EyA4n-#SS=}4|OOEH~V?az8WgULc9176F44ZKihzr?HDTB=IyEiz@Hp6{V)4bWX zJcG!}=k{s@l;tA@WXKKI>ERlPNAy3EE8b_O3$pq+hqd28sCnhHugUC%w|g4&$*re> zxX(l%6k#5}F3|=mlnYsImF^q%wb1Q>+S-gkXfr@Yk(p4y2upV$KR2y4{8z&USPybd z<|1_^`@>O+al#N+xsmSdegLG;4grwfVxkL%R*xF*^Ks%EpA_PBmZhm~^=^b{AVMj2 z*Nuz3$1m$>fJpQ*KiCY_>Y*oE`y3SvuV=-pwhoL7Q(evOXMH0702i~s$+QEepvy9s zLIt97MdiQvdw|plJW4lfJY|qr{Uia)rRrg#^L=neL7n#QOK-)u$s(4sK;>AyXT@Tr zs$$O&)%P&uB;s{-jIn4p0jPu30Vw)Ifq#2YK(4?X%|^_wu z*?suptV0~pojS|DEue-;7$yiUQ*m;b&Ty}9c)!iE_}*LWn$^2Dr#q>y(hMHin^>?p ztlq08uc;f|*Qn5b-GjnF{Ak<=7lNrkTbEu8hc@4rp=~Om`u4&Cl zyNVIvVT=V7_OR>*NVBnw{g%dR(0y39?jzz8SFbW7S>u6tqC4af4hGv)-|XJQdBYt~ z-Xj+#l8`bKnk8^LibesSI;Q@;LbpBFjp=05DsfOatZnI1WP>B%!i-ZqEUwt zHJ1Fh^CkZb)L+7|1DidZcvRZJ3}%{Vr3FxYz1Ht2-i=eH@0K6n)U{&>RJn*oVg;Gc^~OTM%}83LvL(*_`XYi1-PTfRLLlFX9vF`IIVDXBSI~RXbNcY{U1nzfwoU zkwu(kRh9*#%e*2|wPV*srasm8IU@1gteG#yr@f!PKs9;GC+fxdfQ;a{I3{9rXlZ4P z7`B?a*oJ7;f#bbI!$f5h8*sfZN(x-b_vK;Pq~g^@xm&_Q z*{rq4KGjPq z6<+)8Zr=MN5g<{mNVE=)j`Eif>gCTNHXEj=g3#}6afI`>4ZOB9WX$QarT8h%_Q>%g z^~wZE@RB^;7GY}!`oF&}U-=uz+-l#^%KFh?5;UOdZri?=B|^q-A38PmKD2LmGi3tL zlQd&DX)!ihI%H^y2j91WcJ6#kb+oh?^DWeIA>UlBP#0AMZ~Y3>Zl6EjBmuAN!}!BI z;ABK0b%cTi6`o9?X8P(F)xtriN6OZBi@5Igfjdq^0Z4HJxnVME11ML>+>-BXJ@eV& z7=IU$A`N+iENot@iE--se6gq?dRn#HjAu0J#NHj_^hMJdG`{c#i~;fN@jd~kw!Lc3 z9CC7_b**yrRvGMVPx7Ck!fz-7h-$=u((aK(#?5=nt|08Gba71my+Q+HXB9Zyhnm!zo;6*G^x{xBZ5$g)J-w^nYfWKmZ z3gQv}`k=IJ_npbnj=6;rY@{(Ws89OUvmqBE)i6tc3tb-l6!Qmlo&q=YM?e}`Lr>~c zlLl)99 zbHyyJ^NQolP-4*#Blz{vZPh!+uK0<}aEk2X_21ZVRc==sI*>q??dAsgK*=>GL<1!V z#0^*J&)FQ57W7i8^}L0eap=C5rG5uRyZ{*W(LC0^%Fr1i1u8=HwGe340gjS}<#+l@ zwHp~Jwfl0TcreF+kLlp}+gq6t8iW1HA<75;N-=}qkwgcvlJ|cApuuJo|A9L3LdIc4 z3660<)G&*Q0?UKi)UERY;I3ddypJUT6Xg+cy!dxICyc z7H4Raj_X^czff*m3e7@R37>R?J@pHL|AaZ$fnKzx0rP%aT2ldaq0dqkg@z2wW2U~F zY_9mw|3D^`jyLVzE=fXIr$53XsO7(*rkf*2`KOuzRQ^U#Hpd{Is&w4b`k`H> zHZXvV(Dyhj!6nwhIVHh6)&nE*$A44Oe+Y-P>)jf;71-q6WkdfQhwwm^ZRFe{Z<4$Z zbYLLV`=3-=UA$W-fiGku1>?MF#txD)~=`yX~59YEvQNy-l_(Wg&}>3ePGKag=3Py^~f ztvI0`hga|``ee}N*`7tN6%%Yr;@+E+Z=2TO;~gDEbca=MTsE z`SN{*BsM+i=GT44Y3;BvWR)S^?D1aVD#fZ*N(x*5MsyQt7$v8Fznf%@nxp3DUvix%nD!aYkPF{nda0BR~A%@AK*WBd65wS(DkkVR#@<$yRZp9v#v^S7!lT!k|~oSBSn|XG3scUmBd)s^277nH6YW^n^{uxu=){eS2;D*u6b)6W9kkx9xBc)rLudUx*qgKYSZW>k_yxqD zQ+G%AyQDywRDPsX?QK!W_%xYA*EXIRKR!)g+h$eZy%PD8s`$@NlBd}xy&XF-zf~#} z22e4%k`t-0zLzlVVhLk7)_Lb8P&0I)88yYZ=e6Gsqqz)-*upZzSkvHv>e@Bw&AkSf(b$(y1xwQ`t+aPF^lm| zttG`HPV1nhgJ9s^r$djYXFXqGU4Km|K>o2FgPL{vmB$MQi!yHD)Hqb(ZqWxO#(Pa+ zY9s4wgN)}(!n}8*cDa9`X@7{BbX?Kb?#ToW-P`M>04$Ferc86Fkg;L??5lF`@HiRw zhO_ik;F49O-!(62uA%Ue&cy}fd37{u@xPZjF1+gBhiJ?op|<-f_Df3NoufUUH3=i>dcy z?gsr=&1X<(oY}3BIknQ}7bShX5;BTz92gb)&Z(??KP!)y5O#u1b^?~ABH7Dm>%~gs z;KW7*{q1{l8$qn}#|?%&ksFv{li-lWBX6TDPn|Yvw;)Khno<(!7o4 zJ>FW!r~=0rsHt0nLz(-zI7&d6te&u-xk!x#7X0rqe8s5f>m?rMG<@3$jN$TZU0HFz zws+GM2pnN5Cf(g`1@zuyrIgy~8EJck{c^4#HeQ`gT4uTqwNTW62z2&EImG4eiZGbG%HXQ6^b*1cTgz-a2IXVx`kwS?9}ku6$bj-oX{P-Ex0 zjP<5eu#E=7d+b!@M9ZlyE&I$D^XtqTHJ&UtYlzCjbpzEhhC;dQoToAa?#072*Gcw& zTyflC*&^sU{@#?sbJzGfH#X(Xnk$3XYi>l|Aj1~9zI6kMsdt6y!53yt4vaB>HOv92 zm&nTnFZHfJoWIYEc?lz9z^akj+lY{p{xV3v+uBp7{xkjQ=l!=lhR=nYeIKackA_tp zdsvF^UfCyasy({zd}lgF0zX~7jA?E6fbDEmB$R&6Mku8E;rvSaXyqMT38IwLq;#H6 z=?VV83;GJ)d8KnYqteR+-w++dY+^x|5VCLjB^7H;H#a&!l5}negll}Mj`d-<}>~gy-ezDqO zZ?MmKY4_>J!N=Zd4W5hD*)h16gveV+qF3;Fhp;nb;KNFT_*8~CL8v{snyVz+eEF+v zO7mvl8WjUua@+kp%Suf3vimTd;gri?#jeR!zl^~%zd>y8lC<|t-02yo&Uf#}%Wp5D z<^)11C!W50G=VKjJwYc*=lt|4Wfgr3iSwO66O2m3P7F;F^#{-B-?!e%@OPm!?DT3M z8BsO8KO=n)1LJ1i62H1F_w6-Q`|fUy1o8Ig-huw=qs&l2Pa^%q;^aQsbCc2&g`wCW z3Z%<5Z~fXYk9%Mq)Mkw@kvSKtAMAJUdak6;lljJYo%$xrENM!oEI306;jt1;D>RaP zCLeN_#e@uh5)Yg{mL#NaHk-^o$8P5|-y9?x402{`ST?=OMXwvaXCp*wHAQh0URXx# zC72W~M1RPMAh;+#qV40vrpDxM^5-8YKDsvF;Bd}MXrHi`zhWhHB{^U_;KGh|q{nT< z8of>jDO%|_Sl(V3HgCa_DXJcD<{Sk@l<2a}M`~wp4_XX-A8x~9`D!-y1o4ZXMw?AoUP{VugDKGS1?E7B` zJS(3S;_;YuXuflClGWx)A_O1a5VrRbNC*2k&C7zt#13#QyD-bJ^fkylm@0|j*6&n?;h z^f;d<#u}UXqyP&n7OB;-Lp()ckH&18h5~(+xZ{MO&t_!3p9V?p^%BUQf_?RejtThj z8O9Mf(J?ku|7_$ku($77@5pS{M|0k{21 zmgBnIY%cmMDgATeW8WW6e9vDnZr&Rt?*HB*arVFaN7s(R55K>S(4tuSiV_nze zm}lqWQq#Ixi*ps@_2nHhByd5h6zXtm@HphU{P)8L_@4V0)MqTfH8$h5mxR~Puk9sw z&t)LHkNpi7?`0YC-wQKLzLz-gUifn&}Y9C7)z7SPzUA$^W#gOzpP2A2w#kJRtp6z;+u zD5faKYpqWv7$tX#Z)Ze*Tezm!488ZsKX}g?sWoqdV{Xr)pJprlRHV{vu*UB^4@fQRq)-?_gny%c%dkbwCChIKRJm9?Bt z?w3YBv0i0PL?k376*2qi-1zq+#Bg$Ri;Ihg6LT>#GD>^&@BvX6m~lI{X(2DilPB5P z*|%=qjKS(@@f=!V#U~`xP*X$Ba@W29ibnE0YFb*IGTioaDRFUh#Y2{#JSiO<9Dp7( zS!+Utc)dyw9)j{keFc>2bX?Ng`wSR&-3K26g8e>zgsQ6QPrjs=it6es%gbu|`hBj` zk42Mu{YWWBf#e4;I5dxEGf*G9r`!{%2^4~Wn42_-mX;R1e2OA@&AS?Jkxt*oi??p_ z5u6`k{%0_Ojs{@WjQkq4B_NsP28^#9ot!q{@R;@zYHsd*;8@(H?8L13>C4xzKY($X zD*5AKAZ8+TerUW-2gSp~t8&>;Z=7Cnm6VhW{A#FKZH3R4*#=De*uaYqz^-1sDk?6{ zs$JF5+iSbf5`;pbx}>*c*i}Ye2n#p;BmnwleH3bPidtG|@i|XV&-Rv<2H*yURvH4g zZ`^m5q+Da#V|AsZZuBC6)J5C>3`byK;P>y}fo-~psVM`~x=K&v1kg*e+_$9WNlBTSnpS1HH%63ndMJvfL63CXq^@yoHwuc_Gw@^s*~d+goRIhKHT?|^lz zU}DOXmP6T;B@qbrET`AlWkx z))!DqD-n43&~PwIOx3q1fgOl9qksgCx0jc@H5l5e+FCXShRA%|K?dOENDjON@%PsT z7lDbO@iLfTpznAK8#}L9R8+JBx3!=Tcu#I@Y|PHi;^N|JQCeF8TRb3C^XcBcE_2j7yHxLw{PDH zxQLnP>GR*cyE=tBILJRAHi(QA}Q z3s)PsjnjMSJ||WFXNO*uy{T~>H$RavUBV>vtST?_D<=bsHOA@D`qDX4AafR0gzTB> z>5-L?XdfCH0(NvAs;I(jT9Wjt*L1U&(jr(xt}6MuFjFphC#X z%4%t8X>$N1p@0KmKn{tM-CE3-FVFT<8i2-F1rRz43kw6$21tRvOyqQ~qfc{xp7w|U z53glT=oCnbg0+&2Uy%pof7JE$<);}K7{bHDJv==89Hp3216c`4NlD4c`^c5X1_nTI zVt6pTIl-VR1awMcnKUZ&S~rY5_?;KP#$1onIs(R#K$x%DF`v_3%Swt~T0z0h(Gf&~ zcsp78p$&{`Zr9BTpx`*Tzfsn-y}3zBNGLJQ#l_VO%yueFLkt_2fM+nT8w*+#E(m{V zO@A$piIK4{UAW1p^=2^Dz6B4gZ$M6INmN3jk`L`?U3?S{k+a17n3Giafn?s?d#U3- zGN$v&3GhN630Q28*d0p%`d*bCCNCd0GB^bU@-P)-JfKOsLS-Q;@3RQWx2WmwQ!C>~ zKC~{q<#GZMj10||4rA7X?onJEwxi9w!S32=SGLmEcq~!n2c*otTtNT}NT5|FWD9(- zEy37TsRE}}yD7~EcVtiE6H96ahM-^5ZT{@)GEQU0ANMo{pC3S1ll+U{8 zz$5ML??)?#fqf%%`2ETPwnGxa|)jD>cjU-uiAgTa#ql2*FWv zX9w^ZYBcG@=}gdH{PCmQdYn}%76G!6c#WQtk_bz>uV-XMAQ{RotjdP}&O5m|44@-77=8M$FDyTj@ zbgxNGNwG0EZ=c7J2`kYofBx9O(YZUn>gQ>LI#Y+z!EKgD?+%lbP<$`86nTAPZMC(D z(;cMf=atGBdNX2GpNI(p9j$Lr0#z*mQ-M$GEfi&CLq~8h7m_*L0^KY9 zZYGIj@jmnuUs~cRbqh8-+0;craqm{FKox7t#&M;%KXTp&5~6#{u0X>}%2zOW)#7Mp zIWse}N=Z*oF8&bNPNBu?0mPg^cyyW4{ABnQi0buq)23>DaK;o>WUWTsf&;O>Er@~Q zfYgt4`~O@HpwTmr%|yn(@zcX>B^+`fHEWRWzHoz$t?UXG_M?bupv#B=ijKOvy8hT? zP^VS-&cmx5{QUJFNY229jAE}g1zCG%_y93K55&%ZqZ6=+oB=k;)z#HejPsG{j%UX% zZ@<1e-m`>?f+grd4FpsLZZI%1b~QIIjuL>J2mk`NJsb%A{V?xMU|(F0Hz0_S(OwsI zw#351(oan0by@*Y-2j+{A08f}?Q35stRSkrDkI~6LI3w=t?ah6`92s6*TwGaOdjX`1 zbK@T0o5w@E4tmj&jITOy3kUW3I&oz5{O9i=xuPfdiNlBGjpxeMY->^-VZ%_XQAS~5 zVJTn7R;QTw_;Da^1|l$!oOSo~tZb(cCj!#=fu&+3d)4B@5+sDIx`yWKy?!gNuXp9v z_=pUOkDvJY$=|&2y7Hf~@dw0pg15i+ZHGmSHox>aaH#bJ+p=qjWOQt-t-YO}k53;4 ziOs!QPVd7|uuBG<)-dmqH-I!RLE+8G!4ZXDlZ5DC{hI!=1_-Lgy;B9o4J#`I#Kh35 zYbYIL05Na32||sh;#!TN%Z_s$?zAKlx)s7 zU4RFoslHtXeZqNJwa+}R5;+O;j0EpUJ7>t|5 z!D>AQQ&gKWwOQFOdQ z_O?`cFha=;bw?gLwAgBM%T|+aoB- zn7J64nR_}rUrqy0t^NJ|&DJvTbl7+9z<~O=NsooVtMAWVym*@vi;z?=(-(AD5H&Yn z-P?0k9|An1tpZRZ22#?X^vDweF0pTD!408N4FGwwtV)FH+>ul$I7mJv3O!X*&h7G7BrKkmo+L%lAX%Vifz6{@K}7^Id_{pUuF5 z`MI%ic9sZnTt-GlVBqzsjIUas3@_ceT%7IJz2gj|d#T{`v&=H|IL;ZP&QwyqjU^J1 zt^_0`{O&&u_nj4BeZb+F4%BKKdDVh|M%k&V1pEEn`}gH9@bEE>0hgr$5h+e!aB0jA zQfc!E0~RISot^7I+0?xMG&?f?eT~f|hk8K3o9}s3k3}1_dT&BRvUnaQg$?`?PWCk` z@)EO7%NlQ7`F%51diSPDwkdh9B$^j|1F!&_LP)@BqyS`%az4m7e$Ra=Sy|G@hR=ZH z^YZ(7knVsWFwJ5-eTb~QJpoPX@6(%w2rETi6I*Nm+M@ateAK7Acm6Zg@aJkd#tUp5 z0Uj|*F0N{z8SXaY5RjfuVGFn&tdfS$pWOjC0il$X-AHu4(fi7kE1PRnSU zW9;s5a@%vXmX?;zQ%IMO{|Pojm8D9p-R#;Uy*(gBxwQ2dC`9T3WoQ!{Mh=dl?rv*f zt_k~o9(lD3b5tZ&9Q;BL&z&mTd`8$}!x9K1j+{$dG0>7^yk zm*1|6@q=>p{QMl~GX4evmHHv-C%Rpo|XFQa(UR+uG^uViVUv!@lP zbM+Q)1?N#eeVQ;H(0BcB#o52)AiRJGFPKg&&$Kw=SVBC!rKP2g^r8+`HMLYem!gIS zT_rmQAem0eY4M>#^*!y_$jAt&hV|+kb4MM^gM))NH#gyMD}7~kb@9av9z_U%I6$5( zCf9bT2K&_(w?W>(rmUVGS+A0*DQ#E+)mBMkqYw{IeA8nM`PrC<7IKtn97ko5d3kxK zr(VIh`?}(Cr+G10+S!e4*LuMaQW4$j6>k{+A~#*{z}6$Qnw zin4MH);msf5qnSuv|cq(G&?gKBmGb_*kCqwxhwsAFaOOIEVS7`moXVVJG%oYc?|f`+SlN`oVzq_MOwj!asr5Elf1~i!nwE&??2U&lBZ1*OZcy zl7fN)kKGkP)QAcIGwS4HJ0K;{(b6)=pt`@Bsi~^UrVGvPna{qt1HZgs2Nw2^A3p#} z>AGTzUTw>N`acX%g4BwEVW{^TW%sAwfj|B~{_?LD%YVap{t30AtFe)yzoxk;5#q`9 zssOsFskORI&tOkBdV5v@`MMb(20T77QBacU_$2-b*@h-qNNkfp$`}wRCDPOAIDF&A zjV@&p!)@m(AgmOXxiq}cK$r%)1}ZBTcZP1|lOD=H2Ef&L@A5Dw60`d6~4p`Sbe;AhkKLZ8^2IOe@OV3CE-nZ5C-{MXlJGogg ziAZNvAPd8&!T6iqMT`uol)*FD!~Z5}|OtPkbd@YB<`8$JebFP&nP^wklI zh5CmoXm5hh$B}YiKi@t&idtw5DG^PxQB_t}R#9oLS$8H5&dZ}KT$Z=2Sc9+jr<>yg zQDd>N-D72$#z=@OO=@3-(tgLZkXfl`>Cd5}wES-gxr$>(@>1t9yEo?HOKuyM+vf9Wt&B$+!f?4ex6= z8hyco6<}daVf?N9@;^8p9nnmQNk~?ElUINIKz_M$_bMhPc;nbub8~Y*!JZr+gZd9< zXJ_ZRzxi?*ta7l#vyOpb9N?z*kjNi$sRABDb90S3IigT@8Gm^#zyf@F*0;8(96>(NqCJx?sd*M0u1D5a=) zPwhi(bXuAafPc^`0C;9+!Qaqagd8x+z9-rh{DJ;gLDBV$&gk-c~x|D9X6viWnRoE;sdB_%WTe0_b1HIKV1pQFqq z%AV{Hog8nJX=QSORj_AG!^>NzkS@gelv+Gg@#@F9N0!{VydrQz(CNeji-8AvKPeKF zV;u@PX^LfQ1QV=xS-#38@{1~aij|~L8FDHNS{txEz4o@G4$3t>z8RF$<(9*3;EhtN zDR$F?@lMs)lBg~6mVkoC$=R8ig$3BMtvORCRTPR>iPZa^OwVh|sbI=Mk=80@;bL?n z5Caj23iG;K-fW{El>2W%NOZT#^YM+D3ed;- zX}&Zv%BrvD?2tmg)hLjrA?cE|v*oOD`2XJSwea&dEy zjgQ}b!0|4(a$p%K&foBeQv*}x>4E@&TiA2oM!h46nA=9v!-Lm0KPTrYA0Oy<-00%k zC0lm{%O2#-O(l~%ckaZ-#zwJ+`H$x8)H$sJlY^)&Mt%04smx08a8jw-o}2N^S{!CQ zL~$-T9!(|Ml9Ja)L5_avdwv>>&t$PQ`K0sel|EMbf{aO9r~Fu2lHB}!P}wi9uFBBS zlZ27+?*pTPsxvUL{QUgwt*wKua&o;te>8hkq^@jU=cA5bf4`dM*{9bHgsxv2UE_7i zUjz-2k@B@Q3-wi?bZyJ^i@doJrTUe?aq*-Cgd-|!0Uk4~Lst{I;&H5c#}U9>px^g=ccf6|2$ukm z=n2%?*1*o;`x}WxUf*-Csn5>qL%@&6LJ4%0W~<8Gkqe1W%!kC4m2rwKyE3GBd~D&P zUuNsIL^8M{~0anCsUChKk(Q*mt>GqF_K-3JcS{u&q2Rtj)16+}% z{&vVIvK>qW)q^K4fT9PQ_N`s`N8vzx-((szPeyh?YeFIA=^&_eK^c@9o1dS*dpix7 z4DddE8WR^cv=3y^Cl|ZiRRBq9IvvGM=`Uy?SEl=99?dN}e_U8F(oeUvvYKl06?Wm` z=Z{LktG7Wypw=hXnGMx{G)7bG=)sW9FLt&qS96RR)4>BwO>lzun3x? zLjaC0DYM#30+z=~FR6Tu1oi6MyBizYilz?Vkq+5RJC1cCZ!ue2T0YqlX#bm^BM8#u zJqp`M&6*VA*C0z-02KNxd>;j&>dcE>0dS|MyL$sHBjxTZPe;e``v*bW3Ur+;v!T!= zRwRHL6^>}s<_`Y4B$r+Lyg?G=H??3PcCzbfd^utou(!xG!~s*T^!|px`BxxpR(Sa`u6R) z$5i6VqjfG?OSum@H*4;Vo|MSlZU783qq&x|uAW{h40eWY+PQkr+_DRH`_clMAU7E` zX^fVacvzo`&HkD`I_wG~7p5t~J({I9OFbZ(pPrtcBV4z@+Xbc(jIpKVI_Rb}z+jV3 zkEla2?+}ZQXWcn=%v;Y614-^vr7S7u(RiLdS%|Df;Ao>CXTBzmtN2fRbRF~Wj~)s7 z&tM6DeCBuP*5P&*4$BWwK#?5bm>R=l2^eFAO>b!eX0Ct--3<~N&PuM&D3A@ z?N|U$p@pdc-X}R($HHQ5h+sHhfr85l&px=xCuYWFT#v%%Ff#+aUw$Xn%sbG;T3#F= z)~o@sme7=>Wn~#4NE1bWw;bye;MLI6QX!BJ8l2~6C%(WAMp-7F6DvhezRWLUIy7jw zD>{tEIBfvz&*e^WAt5194Vg^?QWVoEDom3Lg^rz)+`&OXi5aHDd2)2>AD+1JS&$c| zG%a(t9^Mv9bIs$GhR8YWpd%+8g3{RNdnE9+5IWl%_KNocO>S&#?9;7g=BgGRQ&0tL z;g>t^kl3T}T3=gZ<_Enk(VV?)e*r)NL{Ld~16_}Ulp}Q<&6GyX0o=5B=DnOw50PHI z!0G`7`Wg8lA-8NBfU!tgTAEJSL|3dVIcMv59yC1nSLRFtnR7leM_c;e(*b^XwE@b5 ze|I7iK_?D$QEO6@lC13Q`{$DQJa(1_1_nUDl4{Fo1N=5%1|+qE9s;+hw5JYPm6cAQ z`M_qwH6K|+52z84kAQ2M3I&~P!WRyAw8sf}U?r}(k=78xLJg2DjO0MKqT+V!yLa!% z1tC9aXnGxcy(An#bni{&kB7;f00iCI+6qh+a?yE37jRs4_4T_Yseo@eMEhXa*u>Pn zFvbB5`TO@pNH{re5inU@fKSLiT9U`y6MhBJ96 z`Jvb+&=8ipEl>gaFrasX4pV|ZBj^Gf?}7c$#`JRlXGWF8zrdSnAJ{p?3h%4=EGFfz zRhRuQ=KeAut8D!PhH(rW5m8Z*RuKUyX=w!o0V(NLx)G30ixCh|xo!27LAsT$ zo9=wBjgF$n^Zxa`&xeN($1^hm_g;IgD}He;{7^Vj_7(7BS$SCbmJ7LLjkKraus z$q0H7uo$$_$O_IBJz~G$>gozPZ>+DhxMX%?1{J}mb;PJ-XM2N&aribq^Z5I8(K-(Q zV5At<6Jtn@ZpW|q)OZW25oY$xOTxH@r~QMj?`yGh)Zqy|H;H<#!-yxHfl;rAv>GGkyy}hbR57NxMC9n#cTU)?tEW;_pJa{mS-Q1%bvgkmrIC1nbiGOS^ z#a_hvQo+t^FCh_<>h&~g$5B?$^vgTN3ynLv=bauRTmKl%fP;lKxIfKG?Re}kJvO(pOf@nK3yTM2P_Q!3xaBatp-eQ9x^g}43d1Z=S@R1ERP~+w_)D`P zcSv+S*2_*YQ|IuPCy6&1s%^I38#u=lj22Pk*7F;&IB0$&V63;;N?5pBbo(xAY;v$g z*FC<2?lq^N#1Co=f|K9`H)K}d(XA5|AanLR_uKNgUF{jCvby@f`qCt9s%{TLwxYtq zipolAgM@^LyA*Vo8Rsg}PgsXFJl&k@8F{Cg}ahY-)ZG%WjKi;#aZ$J4RLDi4V zCi*@=zOcO)M(XS)664_-y;QE0;ZB_hQDNab{u2TF#2-ub!uArlw-Ws^%MyV}SJ8US$s@e7dkm%V}pK@NKR)-4JDuJAk$@3(cg zarb634Cgw&J?V@S&czoX%g}HNe&5bjL(dm4j{l2UdBCMps#RK43F6~;J#3}c#EOCEa;Z5QUH{DutP&4BAmuQ zk`FVOg9^;BJ5N+W->!>Q_{cof{vSTu7~@{7v#_hHiwthH<+ja9OY_9@_xG2TlT#~t z01A!7j0_1`6@6XZ4^aJxi1_eQd$y)0Bt))*HY??Y*ljT}9-Dbh4Gl8tLi@EW6v_$k zN&uUZ1)RojSV}kge3NU(sYysA1c3~EtpNBJ{jB*TPl@~ADT2_M7!Wm!`;OjeU_o_JZm9f6Q z_Y?E#OLV-vYAhSjz)E7Y(^k@x{l=~`2b9C!_odu)@I0-I{_XJ-IIY>aMAL>!qce69Ch`8>&w;~~V z-BNOAnSC`g^)1DF?*dr}epp%z^xu17?2paO$gOV2kAE5+1?V>eTChyB%L)beKO?ul z0(8T{$%$HOQ%d3D8~0m4@BcMJo|&j z>7q!)$wf`Lpii2Q#cpwI4&bCrWXTJF1cj>vNS41saV82E*D_dw13CY;EE4OfMt6)2Bf( z;^uZl$Vm*^i;cx`ettIfasWsV!|!2tnZRc@O#zkEU;Fp#g+f7gS{T9$RgkrGe3Zt)pgJ6ZGkc!ULxED$OPYP0zM`YvDTedM<8D+uxKo5a%Pb(soitr zxKOHxx9!$MZbQ6K`XlX*K+d1nzSbLb`-zFw7Yh8&!E0gOjlV$vqC&neTl^?uXayGn z1FZJhD+R88{SgXjdi7QP)GB`a_5&*`9rj1k{q5~?+jsf4kD}hcfBzj0Nvio6U(Wsa z(W51{OP7t1dmDk69l-I>So0ho9|s6^ZEek)reAVqqNS@NQzKoaSfCsBa}gA&%F0AW z?JX@wNqOu6YRaK45H0)x?;v=%Z~vj8k&%yKMFj;hv9XzE1U`WG+)|YaoB7b7RcwoI z7Hlp&$d8LhOiYV!vI&sLaFC^~24%!`+)B43kXQcm&p+9P(Z}RuWraD`JRh+xJ-R*{ zr+r=bCWtI=+~|?$retDjZf*7JKWMj3wne~TaF>O!shH&rjjpP6IHX z{;hp|A<7ngYn}h%--1G!jt9}%dMBkDj}m4JJeGsBiOKYPj+vjt20o#oQ=dM)wu1Zt z$N^k7EmsxDvIHdZEI*TWtu^dSAOwMv&g#%qnN>~Jcma|?@#vW!lWkd!?bzf%>+ zlVBCHSDCZ&7K?rslXAKrg)-?c1H~QS*@fu5Zr}}uSz6aT=grB(jF=#5rUWa4O);lQRug(xH6ha20SEt5LAK zdku&mKpIGu>kk26z7B~JSFnQdS`7q0l3ozHD(tpIts5cg6ZuHBBanxngb?KEcMtuZ zH2ud)N~=R^g-*HPwPh#&NQd#YYZy)qG=-CC#mL2x{w@`ycogv;0sxoD&d%1LZzXRz zC2n`**fH&N4{iB%-vSETHKp^kYo6W=N~VC#KuEZ6AvI5YFrR9#UWUzn_5QYIG3vtA0qGi|A#4!iB? z1CY)b2^v{f-yHoTXWUors+yUF1pup?H*Pcv@bkX|O7D_b=!atm4;-+DPFp(WOQ)T2 zDie~*KQ1n+#g-mnj-Oud<9OK`Fe(zpZP#}9%5JAUVup0uIq}~+ZOvjD2jL#v(oI^M zGK9^tK;)*A?df>Ry}tH>LOZOfLm)$BR(o(>m2c%H*{7+g(D3kjtWGf2jXG^t_VtCM zT;(06L)py%R=B8P+_|~7pa6%QHy+_w+}zZc;A->h{(2N=`74eFUzG)Ad_Qz7AXKpG zDuWnrm!Au38`B@BdWEv+BE@0aQv1s90EKY0ij2%nlt3*3?8J*(V37kAF6&ZP6XDmb zIGzs~D;wF1oCJW!mTta`y?f-hH{`FVXWyFY>iLxwq@~zcnIS!O>cL1YzAVY{|*Zm z)2A!4hsTt9zcs_&u;h(jmONUscAkh!pfb6qF|FHp_y8v6LcKH9>|^}@!AW%bO9MJYPP3B; zG$l3lWVIjlJbz4567;iD!^6XFW={bq0C=h{ersHEC8n-t>?8QcT_rN<|I#I56S7kN z@I!JPzy#6k5d+JQh=E0O&SjXW4>kjs}Z;{@t`>EtpW;Hn%sa-^%sg1XU7Bg3OrgbI<>bf6rtdo6MwS3wzugO}hT5g$)!X{m;~ zItd&l)aEcf;G|qO^A|Y@NJ)7iziw`Bf+L2?vLb9>#-ZO1KtEZ8uXYj|Hc(4tpaGfEFG)-k z($|YADG5!p-rls4{R{^SB)=s*RMgbb`i4sPdjZ$o1`Q}gmj`$c{@#9mO&A8uAR zx3UV*Y08YFQz-($y7aDm;bM)Iua(e8e71je3ubHcT24+o1qD}=1ZZz1S=JIvym;|q zuNnb5#c5~F`M_poU@|1`b(1{RrTdk8$CinXROTjgQoJ)Z044`TSD-pdFL-~o&z5;nJHoYV^LpU<@!u0CCnM)fMn>M@4VW766` zb9{b9MUr+Cc8Az#0~lJ}w*_ zFH90^=V0}jWpY5};qGRQZn%#8(Bp@tSb+q80}(Iq=<#EqeNLV{soUP)AF+PT$;SU| z1EXeqLb?b@P5{9YM6a%|Lle+9|1W?*;;=8iLT%GRUM*@Bqi zo65j@=|&%UovBieZqr_qj#kqT4Qv!~wu>U;$l)}A>8pLI0L+EHeI}uEUz=jGMtE2l zbfKbTLS&ytM)GtTNG#Kq06@@-n?j>OxL$9$#6cEl%9<41lo0+G!SSw0eMsxCcp5)s zXew8&5^A;RB#+?Ql8QZ#vbH2`x!9x?Rnwx3iO-j?OdBKwsYlhqS)A=G2d3eU2`eYe+k0SaEHEH|f-)cnG%b~)jD43lpH`37 zhk^7!I4{{ch|#37=as+WJTYu5*am=~#u9=yo1<|eu=yqkno-(y1hTvg3{AbgD%(%^ zMxbvsZ=ZipXc8!Y-E;b>aZuC%R8`W!(_QNr9hT&T8EAp&GDGb_gUshaimn&EP z=mEtQv93k!!otG%$sZbGi>pP$Qi|3e??LmLVCQn?6yK&+n{C*M+JY9wB-^HhdMjVv zx8{3XC++KVl^r`896+dH2;I0YO-ioOMICYMD|vn^4nCBNTOW4yB$B4Te_gZNTR#N( z`kn$G$IW|YW?3b(5C9H6{tVmE@413HG?G36V1WzH15FvHQ5Q3mo4_Xm+u|d09Jp)& za7O^&+sXPj4$dh3RZ!U6lg8d>w~?CgX$2e_xtDCdMlWGh2FCvXW^g-x*k zYm*s%bd2y!?sbeX9!uBOIlx3$B_P8@0F9~rwTl{YdhjSBA|m;Qodale9Z6;o0ElQ( zF6$R^2+;r%{s_nQL`}uAXzhft-pHt*z^5F-J(Z9z6%7sZ*`tecsvp8{S$%$cFwbtH zg{mw$;7Mi6zaEaP{3{!)t5bcYA;i@mK4e&zkxg(V9eQAX1r!IUksc#O9WQQzyLtg328? z$FM7>s{Du<(wfG=vN-K*1H=8Yg|TF!eyr|lw;$&77&n26QReQV>Lz0ND0qA>0 zS&?;+;ljS}uzM$3Wz}*NiJaee5&S=A&qsTlzh++>s!q;FKpZQAinXN$h|^u>6eLGL zod#Yty^x#|^h8cxKG4VK-4U1#03jc$I9)q9%HXc@W>_!;L&PDGQO=LcNY60*jo;1c z|HkjiMkoWiY-=&rc)raSgzF+KBDZeAxx{RsZ=pdVA9<=N=f7?UX}(@4CPv3yaCkRo zvFJ-0K~}5V2uISm)(Q;8QH~$$vQBYd$GnZd@U3MPWwe|EEqn{PY8}DQn&(AURxo|N zIYsO3sKcxi8dfhLLr-v8Dze_{_IE2ndS73zK>#2ri0vzU^%lQijecjA)>Hx&AOo@q zx7OKKp_)$z8Z`_l7x#Rj-~S5G1RxSo|0e>+0YU(fUvGT=hcw{|HFZsY|ITu^$xJ`W z2~q*PdU>t7i(Kpeakw)DgU7(W)CKBb9Qmi;xk_<$b@h~&|1zv?Yv9lZ)4PXfJ(#%w zMbh*u1hRupA?pSs>*=36%OkeK-eP6ZBLyJ4tL^Nx8T#|3E|9o>R%4!xm;2rqMnZz zo$>#q^BV+Ds_zejC@w?0qp70<-q;!}_gw}55V>Alz zcpD%|q7spjk5U4Ax2$X%q;N%AJSi_FgwlLmC@#S4kf78G1^^iu8K5~X)6>h5j2#|; zvsR$W?ADZP3$T{AcNEuM`)zec$88YOb!1a?3lLxSZo}>a5Q5Wk>V?d{E2n=Og#B?c zge5lc`p`oldxOomXAHbxq@?L7uc90?A_|BMg$cELPQi*QL9yyY6c@L=#=3Ief({ZYV0tD z57f@q3h|+4g2OjOrFi-6Q>>Em8=#~Z^5Wf2pgFiF^k86Q;KMS*A9RTK zBLVI1;lXV^8wve3gzNkF?^}bR)ep0l*|?_wzFEG=l@2;^quwIFnY=<`Xd+JTf>DLK zO&8eM^5IFKT&1S&eYVn{l%R3w@x9h0nUW{dwh+DGnFaGpjJjF15{>R#Sj66P_w@Qdkf1=x4jH&wgZ3CPM+-bNuqGfjvH(EK!`)q~?Fx{Tl+@J4AXWiA zej3*${?p(@N~2-%;NsC!44_k~&T|6K7AQEuK)EB?s<{IcAP8vvVt;sM4A%X7K#=dP zu0JnB+PAq7smaNMPrpp6fL8}~8U*6u;U|h$?|*s?Di512=$3+m3G#Xy8?Sk=v9Jiy zdVpoL`E)}BZ^PwK4vWjQv>xpgK%q)|7-6N^!4v{0EU0*SBc>mLY18T!+G?iH0iJDo zdV2o(wYC-*DFHw6$d@S=YmZ=x1;?Pk=$$G^N;cwjYGqU3B>Fo*h zkik(wy-+4bM%|0UUOv)8oce7qb8PAKM3ZBh|FW0@6TGQ~MJbpGsb7wA_Gw1btpUj!+MmE)Xv;wFB~D@jb`&tLA&;1TNe`RHgZ*GhNj*3h#sqYWFhRWM z@Pc%&dI)wL@t%!G35gT;?Ab8@HT6DT^m2Nc#B z&$}h0(8c#+rUPVirFK>%36OnYSK(@6BIOb@XZ6Q325l*SV`C2&PgH3Q+eTl;IeW$g z3j64@+Y`y@^5>)3SEYTleaN$g-&<9K={U=`F&@JCczlF^{*R~TF6aNz3yVAaw_ce1 z%9mak`hLGW)E6y#lPf@a03&g+paFR`)m|kjDJJ{XS*SfSr1rMMS}kAO z;WCZ?f7;;)mfd#v`I?Tjhrs;T#`dL-*Ugyh_g{M9Ht8=S{g6{O`AZWCc4_RXkIu-K zY1rBp`S^hGrcBeUESl;~Bs=G$dI<+LHMNSzhrV;Y=M(OC8|BX(2_BLR56k2-jaM~;1zn@oG8p=|slk}5b^L!w6>TfuM zTIA3BJ~fvkWmCfvQv(+h$kp?lcV&F3Si|ncno@_v(vAB(_pn{g7Xlb2z<4Ex6@FpR*Ka^Ez2#4!i~mcshl-Xfwv$#?`$Rqv0LJ7C8?8UJb=7#$g2qV)x7;5L1l14R=jz0 zT{188t?{TO&!~H7I9@y=4h^#k#6no>Dk`+b8eehI3%?k6PY7lb za|;Wt?u%Spp{NuEKts#uEXp8}rAX*koz=kC1N9g@WO`ntNC}WkB~&(-I{>;;bzIZB zUI?D`1a@Oh*c<<$HeZ@2?!MBp>Cgu0&5LXPaIUhN8a;k76w`QSWd27fX7W^t>%x=c zWg7W@V3=>$etR1>+4{S!yLHhk?WZ^0&r~g(7>3%L#9>jgNNqV#oEthz|BshK~Gi_J?93BKl$OK)DqQh1^Gc85me{EBjh25i#*j|IUU}N!H!j zh57j+n2eyPSfo{R1_l~!8ygf6OO^RX*8O(du*b@1bIX2DyHBEO{X6ac6}F1hR(ruV zo9!1B@P4xFD~pOapiqKX9ZL(oa31{@%0Aysk9StR7VSWUQhvqlXzA%2KuO-q`KrxY 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%0De~UtV;Xdy?g5F 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

)>Q1*>SyahZAhO#@;76%MCz6xC< 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

UnL- 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 literal 511754 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

iSfbtORAAUpEd`-i@WkAfWOCXiSq$MgHJ>6X* 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 z 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 bC!oSh|4S8y$~{B5Y5a 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

e4{d|0g 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 From e66d3f726460566191459e3aa1e062a2a04b6dc4 Mon Sep 17 00:00:00 2001 From: openBackhaul Date: Wed, 28 Aug 2024 12:20:53 +0200 Subject: [PATCH 12/12] Add timestamp requirement & update-operation-key pattern --- spec/RegistryOffice.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/spec/RegistryOffice.yaml b/spec/RegistryOffice.yaml index 9e909fe..a06fff6 100644 --- a/spec/RegistryOffice.yaml +++ b/spec/RegistryOffice.yaml @@ -6274,6 +6274,7 @@ paths: - release-number - operation-name - response-code + - timestamp properties: x-correlator: type: string @@ -8237,7 +8238,7 @@ paths: properties: operation-uuid: type: string - pattern: '^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-op-([sc])-([bi][ms])((-([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})){0,1})-([0-9]{3})$' + pattern: '^([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})-op-([sc])(-(get|put|post|del|pat))?-([bi][ms])((-([a-z]{2,6})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2})){0,1})-([0-9]{3})$' description: > 'UUID of LTP that is target of the updating of the operation key find [/core-model-1-4:control-construct/logical-termination-point=uuid]'