Improve documentation
[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     string regSec (required)
7 }
8 note right of APIProviderEnrolmentDetails::apiProvDomId
9     Id provided by CAPIF Core
10 end note
11 struct APIProviderFunctionDetails #palegreen {
12     string apiProvFuncId
13     string apiProvFuncInfo
14     ApiProviderFuncRole apiProviderFuncRole (required)
15     RegistrationInformation regInfo (required)
16 }
17 note right of APIProviderFunctionDetails::apiProvFuncId
18     Id provided by CAPIF Core
19 end note
20 enum ApiProviderFuncRole #palegreen {
21     AEF: API provider function is API Exposing Function.
22     APF: API provider function is API Publishing Function.
23     AMF: API Provider function is API Management Function.
24 }
25 struct RegistrationInformation #palegreen {
26     string apiProvCert
27     string apiProvPubKey (required)
28 }
29 APIProviderEnrolmentDetails::apiProvFuncs "1" o-- "1..N" APIProviderFunctionDetails
30 APIProviderFunctionDetails::regInfo "1" o-- "1" RegistrationInformation
31 APIProviderFunctionDetails::apiProviderFuncRole "1" o-- "1" ApiProviderFuncRole
32
33 struct ServiceAPIDescription #lightblue {
34     string apiId
35     string apiName (required)
36     string description
37     []AefProfile aefProfiles
38 }
39 note right of ServiceAPIDescription
40     Id provided by CAPIF Core
41 end note
42 struct AefProfile #lightblue {
43     string aefId (required)
44     DataFormat dataFormat
45     string domainName
46     []InterfaceDescription interfaceDescriptions
47     Protocol protocol
48     []SecurityMethod securityMethods
49     []Version versions (required)
50 }
51 enum DataFormat #lightblue {
52     JSON
53 }
54 enum Protocol #lightblue {
55     HTTP_1_1
56     HTTP_2
57 }
58 note "AefProfile::aefId should match\n APIProviderFunctionDetails::apiProvFuncId" as aefIdRel
59 APIProviderFunctionDetails::apiProvFuncId .. aefIdRel
60 aefIdRel .. AefProfile::aefId
61 struct InterfaceDescription #lightblue {
62     string ipv4Address
63     string ipv6Address
64     int port
65     []SecurityMethod securityMethods
66 }
67 note left of InterfaceDescription::securityMethods
68     Security methods supported by the interface,
69     it take precedence over the security methods
70     provided in AefProfile, for this specific interface.
71 end note
72 struct Version #lightblue {
73     []CustomOperation custOperations
74     DateTime expiry
75     []Resource resources
76     string apiVersion (required)
77 }
78 struct CustomOperation #lightblue {
79         CommunicationType commType (required)
80     string custOpName (required)
81     string description
82     []Operation operations
83 }
84 enum Operation #lightblue {
85     GET
86     POST
87     PUT
88     PATCH
89     DELETE
90 }
91 enum SecurityMethod #lightblue {
92     PSK
93     PKI
94     OAUTH
95 }
96 struct Resource #lightblue {
97     string resourceName (required)
98     string uri (required)
99     CommunicationType commType (required)
100     string description
101 }
102 enum CommunicationType #lightblue {
103     REQUEST_RESPONSE
104     SUBSCRIBE_NOTIFY
105 }
106 ServiceAPIDescription::aefProfiles "1" o-- "1..N" AefProfile
107 AefProfile::interfaceDescriptions "1" o-- "1..N" InterfaceDescription
108 AefProfile::protocol "0..1" o-- "0..1" Protocol
109 AefProfile::securityMethods "1" o-- "1..N" SecurityMethod
110 AefProfile::dataFormat "0..1" o-- "0..N" DataFormat
111 InterfaceDescription::securityMethods "1" o-- "1..N" SecurityMethod
112 AefProfile::versions "1" o-- "1..N" Version
113 Version::resources "1..N" o-- "1..N" Resource
114 Version::custOperations "0..1" o-- "0..N" CustomOperation
115 CustomOperation::CommunicationType "1" o-- "1" CommunicationType
116 CustomOperation::operations "0..N" o-- "0..N" Operation
117 Resource::commType "1" o-- "1" CommunicationType
118
119 struct APIInvokerEnrolmentDetails #coral {
120     string apiInvokerId
121     string apiInvokerInformation
122     APIList apiList
123     OnboardingInformation onboardingInformation (required)
124 }
125 struct OnboardingInformation #coral {
126     string apiInvokerCertificate
127     string ApiInvokerPublicKey (required)
128     string onboardingSecret
129 }
130 note right of OnboardingInformation::onboardingSecret
131     Secret provided by CAPIF Core
132 end note
133 note left of APIInvokerEnrolmentDetails::apiInvokerId
134     Id provided by CAPIF Core
135 end note
136 APIInvokerEnrolmentDetails::apiList "1" o-- "1..N" ServiceAPIDescription : APIList
137 APIInvokerEnrolmentDetails::onboardingInformation "1" o-- "1" OnboardingInformation
138 @enduml