Add documentation about rApp registration
[nonrtric/plt/sme.git] / capifcore / docs / diagrams / classdiagram.plantuml
1 @startuml Information in rApp registration
2 struct APIProviderEnrolmentDetails #palegreen {
3     string apiProvDomId
4     string apiProvDomInfo
5     []APIProviderFunctionDetails apiProvFuncs
6 }
7 note right of APIProviderEnrolmentDetails::apiProvDomId
8     Id provided by CAPIF Core
9 end note
10 struct APIProviderFunctionDetails #palegreen {
11     string apiProvFuncId
12     string apiProvFuncInfo
13     ApiProviderFuncRole apiProviderFuncRole (required)
14     RegistrationInformation regInfo (required)
15 }
16 note right of APIProviderFunctionDetails::apiProvFuncId
17     Id provided by CAPIF Core
18 end note
19 note right of APIProviderFunctionDetails::apiProviderFuncRole
20     - AEF: API provider function is API Exposing Function.
21     - APF: API provider function is API Publishing Function.
22     - AMF: API Provider function is API Management Function.
23 end note
24 struct RegistrationInformation #palegreen {
25     string apiProvCert
26     atring apiProvPubKey (required)
27 }
28 APIProviderEnrolmentDetails::apiProvFuncs o-- APIProviderFunctionDetails
29 APIProviderFunctionDetails::regInfo o-- RegistrationInformation
30
31 struct ServiceAPIDescription #lightblue {
32     string apiId
33     string apiName (required)
34     string description
35     []AefProfile aefProfiles
36 }
37 note bottom of ServiceAPIDescription
38     Id provided by CAPIF Core
39 end note
40 struct AefProfile #lightblue {
41     string aefId (required)
42     DataFormat dataFormat
43     string domainName
44     []InterfaceDescription interfaceDescriptions
45     Protocol protocol
46     []SecurityMethod securityMethods
47     []Version versions (required)
48 }
49 note left of AefProfile::dataFormat
50     - JSON: JavaScript Object Notation
51 end note
52 note left of AefProfile::protocol
53     - HTTP_1_1: HTTP version 1.1
54     - HTTP_2: HTTP version 2
55 end note
56 note left of AefProfile::securityMethods
57     - PSK: Security method 1 (Using TLS-PSK)
58     - PKI: Security method 2 (Using PKI)
59     - OAUTH: Security method 3 (TLS with OAuth token)
60 end note
61 note "From APIProviderFunctionDetails" as aefIdRel
62 APIProviderFunctionDetails::apiProvFuncId .. aefIdRel
63 aefIdRel .. AefProfile::aefId
64 struct InterfaceDescription #lightblue {
65     string ipv4Address
66     string ipv6Address
67     []Operation operations
68     []SecurityMethod securityMethods
69 }
70 note right of InterfaceDescription
71     Security methods supported by the interface,
72     it take precedence over the security methods
73     provided in AefProfile, for this specific interface.
74 end note
75 struct Version #lightblue {
76     string apiVersion
77     []Resource resources
78 }
79 note right of Version::resources
80     - REQUEST_RESPONSE
81     - SUBSCRIBE_NOTIFY
82 end note
83 ServiceAPIDescription::aefProfiles o-- AefProfile
84 AefProfile::interfaceDescriptions o-- InterfaceDescription
85 AefProfile::versions o-- Version
86
87 struct APIInvokerEnrolmentDetails #coral {
88     string apiInvokerId
89     string apiInvokerInformation
90     APIList apiList
91     OnboardingInformation onboardingInformation
92 }
93 struct OnboardingInformation #coral {
94     string apiInvokerCertificate
95     string ApiInvokerPublicKey (required)
96     string onboardingSecret
97 }
98 note right of OnboardingInformation::onboardingSecret
99     Secret provided by CAPIF Core
100 end note
101 note right of APIInvokerEnrolmentDetails::apiInvokerId
102     Id provided by CAPIF Core
103 end note
104 APIInvokerEnrolmentDetails::apiList o-- ServiceAPIDescription : APIList
105 APIInvokerEnrolmentDetails::onboardingInformation o-- OnboardingInformation
106 @enduml