X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=capifcore%2Fdocs%2Fdiagrams%2Fclassdiagram.plantuml;fp=capifcore%2Fdocs%2Fdiagrams%2Fclassdiagram.plantuml;h=0f33a3e5de2a1b5a3157d908ae2c06b8285b251a;hb=faeeb4bfe079a2f20ac1639fc394a363306411c9;hp=8700d972acdd34e7df4dd82b4cd58648442a43ba;hpb=c58285c8b76f7833877e328f94e947b0384c4a86;p=nonrtric%2Fplt%2Fsme.git diff --git a/capifcore/docs/diagrams/classdiagram.plantuml b/capifcore/docs/diagrams/classdiagram.plantuml index 8700d97..0f33a3e 100644 --- a/capifcore/docs/diagrams/classdiagram.plantuml +++ b/capifcore/docs/diagrams/classdiagram.plantuml @@ -3,6 +3,7 @@ struct APIProviderEnrolmentDetails #palegreen { string apiProvDomId string apiProvDomInfo []APIProviderFunctionDetails apiProvFuncs + string regSec (required) } note right of APIProviderEnrolmentDetails::apiProvDomId Id provided by CAPIF Core @@ -16,17 +17,18 @@ struct APIProviderFunctionDetails #palegreen { note right of APIProviderFunctionDetails::apiProvFuncId Id provided by CAPIF Core end note -note right of APIProviderFunctionDetails::apiProviderFuncRole - - AEF: API provider function is API Exposing Function. - - APF: API provider function is API Publishing Function. - - AMF: API Provider function is API Management Function. -end note +enum ApiProviderFuncRole #palegreen { + AEF: API provider function is API Exposing Function. + APF: API provider function is API Publishing Function. + AMF: API Provider function is API Management Function. +} struct RegistrationInformation #palegreen { string apiProvCert - atring apiProvPubKey (required) + string apiProvPubKey (required) } -APIProviderEnrolmentDetails::apiProvFuncs o-- APIProviderFunctionDetails -APIProviderFunctionDetails::regInfo o-- RegistrationInformation +APIProviderEnrolmentDetails::apiProvFuncs "1" o-- "1..N" APIProviderFunctionDetails +APIProviderFunctionDetails::regInfo "1" o-- "1" RegistrationInformation +APIProviderFunctionDetails::apiProviderFuncRole "1" o-- "1" ApiProviderFuncRole struct ServiceAPIDescription #lightblue { string apiId @@ -34,7 +36,7 @@ struct ServiceAPIDescription #lightblue { string description []AefProfile aefProfiles } -note bottom of ServiceAPIDescription +note right of ServiceAPIDescription Id provided by CAPIF Core end note struct AefProfile #lightblue { @@ -46,49 +48,79 @@ struct AefProfile #lightblue { []SecurityMethod securityMethods []Version versions (required) } -note left of AefProfile::dataFormat - - JSON: JavaScript Object Notation -end note -note left of AefProfile::protocol - - HTTP_1_1: HTTP version 1.1 - - HTTP_2: HTTP version 2 -end note -note left of AefProfile::securityMethods - - PSK: Security method 1 (Using TLS-PSK) - - PKI: Security method 2 (Using PKI) - - OAUTH: Security method 3 (TLS with OAuth token) -end note -note "From APIProviderFunctionDetails" as aefIdRel +enum DataFormat #lightblue { + JSON +} +enum Protocol #lightblue { + HTTP_1_1 + HTTP_2 +} +note "AefProfile::aefId should match\n APIProviderFunctionDetails::apiProvFuncId" as aefIdRel APIProviderFunctionDetails::apiProvFuncId .. aefIdRel aefIdRel .. AefProfile::aefId struct InterfaceDescription #lightblue { string ipv4Address string ipv6Address - []Operation operations + int port []SecurityMethod securityMethods } -note right of InterfaceDescription +note left of InterfaceDescription::securityMethods Security methods supported by the interface, it take precedence over the security methods provided in AefProfile, for this specific interface. end note struct Version #lightblue { - string apiVersion + []CustomOperation custOperations + DateTime expiry []Resource resources + string apiVersion (required) } -note right of Version::resources - - REQUEST_RESPONSE - - SUBSCRIBE_NOTIFY -end note -ServiceAPIDescription::aefProfiles o-- AefProfile -AefProfile::interfaceDescriptions o-- InterfaceDescription -AefProfile::versions o-- Version +struct CustomOperation #lightblue { + CommunicationType commType (required) + string custOpName (required) + string description + []Operation operations +} +enum Operation #lightblue { + GET + POST + PUT + PATCH + DELETE +} +enum SecurityMethod #lightblue { + PSK + PKI + OAUTH +} +struct Resource #lightblue { + string resourceName (required) + string uri (required) + CommunicationType commType (required) + string description +} +enum CommunicationType #lightblue { + REQUEST_RESPONSE + SUBSCRIBE_NOTIFY +} +ServiceAPIDescription::aefProfiles "1" o-- "1..N" AefProfile +AefProfile::interfaceDescriptions "1" o-- "1..N" InterfaceDescription +AefProfile::protocol "0..1" o-- "0..1" Protocol +AefProfile::securityMethods "1" o-- "1..N" SecurityMethod +AefProfile::dataFormat "0..1" o-- "0..N" DataFormat +InterfaceDescription::securityMethods "1" o-- "1..N" SecurityMethod +AefProfile::versions "1" o-- "1..N" Version +Version::resources "1..N" o-- "1..N" Resource +Version::custOperations "0..1" o-- "0..N" CustomOperation +CustomOperation::CommunicationType "1" o-- "1" CommunicationType +CustomOperation::operations "0..N" o-- "0..N" Operation +Resource::commType "1" o-- "1" CommunicationType struct APIInvokerEnrolmentDetails #coral { string apiInvokerId string apiInvokerInformation APIList apiList - OnboardingInformation onboardingInformation + OnboardingInformation onboardingInformation (required) } struct OnboardingInformation #coral { string apiInvokerCertificate @@ -98,9 +130,9 @@ struct OnboardingInformation #coral { note right of OnboardingInformation::onboardingSecret Secret provided by CAPIF Core end note -note right of APIInvokerEnrolmentDetails::apiInvokerId +note left of APIInvokerEnrolmentDetails::apiInvokerId Id provided by CAPIF Core end note -APIInvokerEnrolmentDetails::apiList o-- ServiceAPIDescription : APIList -APIInvokerEnrolmentDetails::onboardingInformation o-- OnboardingInformation -@enduml +APIInvokerEnrolmentDetails::apiList "1" o-- "1..N" ServiceAPIDescription : APIList +APIInvokerEnrolmentDetails::onboardingInformation "1" o-- "1" OnboardingInformation +@enduml \ No newline at end of file