1 @startuml Register Provider
3 participant rAppManager
4 participant "consumer rApp" as capp
5 participant "provider rApp" as papp
8 participant providermanager
9 participant helmmanager
10 participant publishservice
11 participant invokerservice
12 participant discoverservice
13 participant securityservice
14 participant eventservice
15 participant loggingservice
18 alt Regtister Consumer rApp
19 rAppCatalogue->rAppManager: Register consumer \nrApp
20 alt#coral #coral Register Invoker
21 rAppManager->capifcore: Register invoker with\n APIInvokerEnrolmentDetails
22 capifcore->invokerservice: Register invoker
23 invokerservice->invokerservice: Create apiInvokerId and\n onboardingSecret
24 invokerservice->publishservice: Get available services
25 publishservice->invokerservice: Available services
26 invokerservice->capifcore: Services available\n for the invoker
27 capifcore->rAppManager: Invoker with invokerId\n and available services
29 rAppManager->capp: invokerId and\n available services
30 rAppManager->rAppCatalogue: Ok
31 alt#Orange #Orange Subscribe to publishing events
32 capp->eventservice: Subscribe to events\n with EventSubscription
33 eventservice->eventservice: Create subscriptionId
34 eventservice->capp: subscriptionId
37 alt Regtister provider rApp
38 rAppCatalogue->rAppManager: Register rApp, with\n rApp descriptor\n specifying which\n services to expose
39 alt#paleGreen #paleGreen Provider Enrolment
40 rAppManager->capifcore: Register provider with\n APIProviderEnrolmentDetails
41 capifcore->providermanager:Register provider
42 providermanager->providermanager: Create apiProvDomId\n and apiProvFuncIds\n for provided functions
43 providermanager->capifcore: Provider with\n apfId and aefIds
44 capifcore->rAppManager: Provider with\n apfId and aefIds
46 alt#LightBlue #LightBlue Publish Service
47 rAppManager->capifcore: Publish services\n with providerId\n andServiceAPIDescription
48 capifcore->publishservice: Publish services
49 publishservice->providermanager: Are AEFs registered\n for provider?
50 providermanager->publishservice: Ok
51 publishservice->publishservice: Create apiId
52 publishservice->helmmanager: Install chart
53 note right: Optional and not decided yet
54 helmmanager->publishservice: Ok
55 alt#Orange #Orange Subcribed Event Handling
56 publishservice->eventservice: Service published
57 eventservice->capp: CAPIFEventDetail
59 publishservice->capifcore: ServiceAPIDescription\n with apiId
60 capifcore->rAppManager: ServiceAPIDescription\n with apiId
62 rAppManager->papp: apiProvDomId,\n apiProvFuncIds,\n and apiId
63 rAppManager->rAppCatalogue: Ok
65 alt#Yellow #Yellow Discover Services
66 capp->capifcore: Discover services\n with apiInvokerId\n and filter parameters
67 capifcore->discoverservice: Get services available\n for the invoker
68 discoverservice->invokerservice: Get services available\n for the invoker
69 invokerservice->publishservice: Get available services
70 publishservice->invokerservice: Available services
71 invokerservice->discoverservice: Services available \nfor the invoker
72 discoverservice->capifcore: Services available for the\n invoker matching the\n filter parameters
73 capifcore->capp: Services available\n matching the\n filter parameters
77 alt#Pink #Pink Security Service
78 capp->securityservice: Request token\n for service with\n AccessTokenReq
79 securityservice->invokerservice: Is invoker registered?
80 invokerservice->securityservice: Ok
81 securityservice->invokerservice: Is secret valid?
82 invokerservice->securityservice: Ok
83 securityservice->providermanager: Is function providing\n service registered?
84 providermanager->securityservice: Ok
85 securityservice->publishservice: Is service published?
86 publishservice->securityservice: Ok
87 securityservice->capp: AccessTokenRsp\n with token
89 capp->papp: Invoke service\n with token
90 alt#Silver #Silver Log invocation
91 papp->loggingservice: Log invocation\n with InvocationLog
93 papp->capp: Result of\n invocation