7b00bd2fb5d73beb8454bc753d8009cda30be1ad
[nonrtric/plt/sme.git] / capifcore / docs / diagrams / registerpoviderandpublishservice.plantuml
1 @startuml Register Provider
2 actor rAppCatalogue
3 participant rAppManager
4 participant "consumer rApp" as capp
5 participant "provider rApp" as papp
6 box "CAPIF Internal"
7 participant capifcore
8 participant providermanager
9 participant helmmanager
10 participant publishservice
11 participant invokerservice
12 participant discoverservice
13 participant securityservice
14 participant eventservice
15 participant loggingservice
16 end box
17
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
28     end
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
35     end
36 end
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
45     end
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
58         end
59         publishservice->capifcore: ServiceAPIDescription\n with apiId
60         capifcore->rAppManager: ServiceAPIDescription\n with apiId
61     end
62     rAppManager->papp: apiProvDomId,\n apiProvFuncIds,\n and apiId
63     rAppManager->rAppCatalogue: Ok
64 end
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
74 end
75
76 alt Invoke Service
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
88     end
89     capp->papp: Invoke service\n with token
90     alt#Silver #Silver Log invocation
91         papp->loggingservice: Log invocation\n with InvocationLog
92     end
93     papp->capp: Result of\n invocation
94 end
95 @enduml