-alt#LightBlue #LightBlue Publish Service
- rAppManager->capifcore: Publish services\n with ServiceAPIDescription
- capifcore->providermanager: Check that AEFs are\n registered for provider
- providermanager->capifcore: Ok
- capifcore->helmmanager: Install and start chart
- helmmanager->capifcore: Ok
- capifcore->publishservice: Store published services
- capifcore->rAppManager: ServiceAPIDescription with apiId
+alt Register provider rApp
+ rAppCatalogue->rAppManager: Register rApp, with\n rApp descriptor\n specifying which\n services to expose
+ alt#paleGreen #paleGreen Provider Enrolment
+ rAppManager->capifcore: Register provider with\n APIProviderEnrolmentDetails
+ capifcore->providermanager:Register provider
+ providermanager->providermanager: Create apiProvDomId\n and apiProvFuncIds\n for provided functions
+ providermanager->capifcore: Provider with\n apfId and aefIds
+ capifcore->rAppManager: Provider with\n apfId and aefIds
+ end
+ alt#LightBlue #LightBlue Publish Service
+ rAppManager->capifcore: Publish services\n with providerId\n andServiceAPIDescription
+ capifcore->publishservice: Publish services
+ publishservice->providermanager: Are AEFs registered\n for provider?
+ providermanager->publishservice: Ok
+ publishservice->publishservice: Create apiId
+ publishservice->helmmanager: Install chart
+ note right: Optional and not decided yet
+ helmmanager->publishservice: Ok
+ alt#Orange #Orange Subcribed Event Handling
+ publishservice->eventservice: Service published
+ eventservice->capp: CAPIFEventDetail
+ end
+ publishservice->capifcore: ServiceAPIDescription\n with apiId
+ capifcore->rAppManager: ServiceAPIDescription\n with apiId
+ end
+ rAppManager->papp: apiProvDomId,\n apiProvFuncIds,\n and apiId
+ rAppManager->rAppCatalogue: Ok