1 @startuml Register Provider
4 participant rAppManager
7 participant providermanager
8 participant helmmanager
9 participant publishservice
10 participant invokerservice
11 participant discoverservice
12 participant securityservice
15 rAppCatalogue->rAppManager: Start rApp, with rApp\n descriptor specifying which\n services to expose and consume
16 alt#paleGreen #paleGreen Provider Enrolment
17 rAppManager->capifcore: Register provider with\n APIProviderEnrolmentDetails
18 capifcore->providermanager:Register provider
19 providermanager->providermanager: Create apiProvDomId\n and apiProvFuncIds\n for provided functions
20 providermanager->capifcore: Provider with\n apfId and aefIds
21 capifcore->rAppManager: Provider with\n apfId and aefIds
23 alt#LightBlue #LightBlue Publish Service
24 rAppManager->capifcore: Publish services\n with providerId\n andServiceAPIDescription
25 capifcore->publishservice: Publish services
26 publishservice->providermanager: Are AEFs are\n registered for provider?
27 providermanager->publishservice: Ok
28 publishservice->publishservice: Create apiId
29 publishservice->helmmanager: Install chart
30 note right: Optional and not decided yet
31 helmmanager->publishservice: Ok
32 publishservice->capifcore: ServiceAPIDescription\n with apiId
33 capifcore->rAppManager: ServiceAPIDescription\n with apiId
35 alt#coral #coral Register Invoker
36 rAppManager->capifcore: Register invoker with\n APIInvokerEnrolmentDetails
37 capifcore->invokerservice: Register invoker
38 invokerservice->invokerservice: Create apiInvokerId and\n onboardingSecret
39 invokerservice->publishservice: Get available services
40 publishservice->invokerservice: Available services
41 invokerservice->capifcore: Services available\n for the invoker
42 capifcore->rAppManager: Invoker with invokerId\n and available services
44 rAppManager->rAppCatalogue: Ok
46 alt#Yellow #Yellow Discover Services
47 rAppManager->capifcore: Discover services for an\n invoker with apiInvokerId\n and filter parameters
48 capifcore->discoverservice: Get services available\n for the invoker
49 discoverservice->invokerservice: Get services available\n for the invoker
50 invokerservice->publishservice: Get available services
51 publishservice->invokerservice: Available services
52 invokerservice->discoverservice: Services available \nfor the invoker
53 discoverservice->capifcore: Services available for the\n invoker matching the\n filter parameters
54 capifcore->rAppManager: Services available for the\n invoker and matching the\n filter parameters
57 alt#Pink #Pink Security Service
58 rApp->securityservice: Request token\n for service with\n AccessTokenReq
59 securityservice->invokerservice: Is invoker registered?
60 invokerservice->securityservice: Ok
61 securityservice->invokerservice: Is secret valid?
62 invokerservice->securityservice: Ok
63 securityservice->providermanager: Is function providing\n service registered?
64 providermanager->securityservice: Ok
65 securityservice->publishservice: Is service published?
66 publishservice->securityservice: Ok
67 securityservice->rApp: AccessTokenRsp with\n token