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
13 participant eventservice
16 alt Regtister rApp as both provider and consumer
17 rAppCatalogue->rAppManager: Register rApp, with rApp\n descriptor specifying which\n services to expose and consume
18 alt#paleGreen #paleGreen Provider Enrolment
19 rAppManager->capifcore: Register provider with\n APIProviderEnrolmentDetails
20 capifcore->providermanager:Register provider
21 providermanager->providermanager: Create apiProvDomId\n and apiProvFuncIds\n for provided functions
22 providermanager->capifcore: Provider with\n apfId and aefIds
23 capifcore->rAppManager: Provider with\n apfId and aefIds
25 alt#LightBlue #LightBlue Publish Service
26 rAppManager->capifcore: Publish services\n with providerId\n andServiceAPIDescription
27 capifcore->publishservice: Publish services
28 publishservice->providermanager: Are AEFs registered\n for provider?
29 providermanager->publishservice: Ok
30 publishservice->publishservice: Create apiId
31 publishservice->helmmanager: Install chart
32 note right: Optional and not decided yet
33 helmmanager->publishservice: Ok
34 alt#Orange #Orange Subcribed Event Handling
35 publishservice->eventservice: Service published
36 eventservice->rApp: CAPIFEventDetail
38 publishservice->capifcore: ServiceAPIDescription\n with apiId
39 capifcore->rAppManager: ServiceAPIDescription\n with apiId
41 alt#coral #coral Register Invoker
42 rAppManager->capifcore: Register invoker with\n APIInvokerEnrolmentDetails
43 capifcore->invokerservice: Register invoker
44 invokerservice->invokerservice: Create apiInvokerId and\n onboardingSecret
45 invokerservice->publishservice: Get available services
46 publishservice->invokerservice: Available services
47 alt#Orange #Orange Subcribed Event Handling
48 invokerservice->eventservice: Invoker registered
49 eventservice->rApp: CAPIFEventDetail
51 invokerservice->capifcore: Services available\n for the invoker
52 capifcore->rAppManager: Invoker with invokerId\n and available services
54 rAppManager->rAppCatalogue: Ok
56 alt#Yellow #Yellow Discover Services
57 rApp->capifcore: Discover services for an\n invoker with apiInvokerId\n and filter parameters
58 capifcore->discoverservice: Get services available\n for the invoker
59 discoverservice->invokerservice: Get services available\n for the invoker
60 invokerservice->publishservice: Get available services
61 publishservice->invokerservice: Available services
62 invokerservice->discoverservice: Services available \nfor the invoker
63 discoverservice->capifcore: Services available for the\n invoker matching the\n filter parameters
64 capifcore->rApp: Services available for the\n invoker and matching the\n filter parameters
67 alt#Pink #Pink Security Service
68 rApp->securityservice: Request token\n for service with\n AccessTokenReq
69 securityservice->invokerservice: Is invoker registered?
70 invokerservice->securityservice: Ok
71 securityservice->invokerservice: Is secret valid?
72 invokerservice->securityservice: Ok
73 securityservice->providermanager: Is function providing\n service registered?
74 providermanager->securityservice: Ok
75 securityservice->publishservice: Is service published?
76 publishservice->securityservice: Ok
77 securityservice->rApp: AccessTokenRsp with\n token
80 alt#Orange #Orange Event Service
81 rApp->eventservice: Subscribe to event with EventSubscription
82 eventservice->eventservice: Create subscriptionId
83 eventservice->rApp: subscriptionId