Add the rest of the apis to the diagrams
[nonrtric/plt/sme.git] / capifcore / docs / diagrams / registerpoviderandpublishservice.plantuml
1 @startuml Register Provider
2 actor rAppCatalogue
3 actor rApp
4 participant rAppManager
5 box "CAPIF Internal"
6 participant capifcore
7 participant providermanager
8 participant helmmanager
9 participant publishservice
10 participant invokerservice
11 participant discoverservice
12 participant securityservice
13 participant eventservice
14 end box
15
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
24     end
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
37         end
38         publishservice->capifcore: ServiceAPIDescription\n with apiId
39         capifcore->rAppManager: ServiceAPIDescription\n with apiId
40     end
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
50         end
51         invokerservice->capifcore: Services available\n for the invoker
52         capifcore->rAppManager: Invoker with invokerId\n and available services
53     end
54     rAppManager->rAppCatalogue: Ok
55 end
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
65 end
66
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
78 end
79
80 alt#Orange #Orange Event Service
81     rApp->eventservice: Subscribe to event with EventSubscription
82     eventservice->eventservice: Create subscriptionId
83     eventservice->rApp: subscriptionId
84 end
85 @enduml