1 @startuml Register Provider
3 participant rAppManager
6 participant providermanager
7 participant helmmanager
8 participant publishservice
9 participant invokerservice
10 participant discoverservice
13 rAppCatalogue->rAppManager: Start rApp, with rApp\n descriptor specifying which\n services to expose and consume
14 alt#paleGreen #paleGreen Provider Enrolment
15 rAppManager->capifcore: Register provider with\n APIProviderEnrolmentDetails
16 capifcore->providermanager:Register provider
17 providermanager->providermanager: Create apiProvDomId\n and apiProvFuncIds\n for provided functions
18 providermanager->capifcore: Provider with\n apfId and aefIds
19 capifcore->rAppManager: Provider with\n apfId and aefIds
21 alt#LightBlue #LightBlue Publish Service
22 rAppManager->capifcore: Publish services\n with providerId\n andServiceAPIDescription
23 capifcore->publishservice: Publish services
24 publishservice->providermanager: Check that AEFs are\n registered for provider
25 providermanager->publishservice: Ok
26 publishservice->publishservice: Create apiId
27 publishservice->helmmanager: Install chart
28 note right: Optional and not decided yet
29 helmmanager->publishservice: Ok
30 publishservice->capifcore: ServiceAPIDescription\n with apiId
31 capifcore->rAppManager: ServiceAPIDescription\n with apiId
33 alt#coral #coral Register Invoker
34 rAppManager->capifcore: Register invoker with\n APIInvokerEnrolmentDetails
35 capifcore->invokerservice: Register invoker
36 invokerservice->invokerservice: Create apiInvokerId and\n onboardingSecret
37 invokerservice->publishservice: Get available services
38 publishservice->invokerservice: Available services
39 invokerservice->capifcore: Services available\n for the invoker
40 capifcore->rAppManager: Invoker with invokerId\n and available services
42 rAppManager->rAppCatalogue: Ok
44 alt#Yellow #Yellow Discover Services
45 rAppManager->capifcore: Discover services for an\n invoker with apiInvokerId\n and filter parameters
46 capifcore->discoverservice: Get services available\n for the invoker
47 discoverservice->invokerservice: Get services available\n for the invoker
48 invokerservice->publishservice: Get available services
49 publishservice->invokerservice: Available services
50 invokerservice->discoverservice: Services available \nfor the invoker
51 discoverservice->capifcore: Services available for the\n invoker matching the\n filter parameters
52 capifcore->rAppManager: Services available for the\n invoker and matching the\n filter parameters