@startuml
!pragma layout smetana
top to bottom direction
skinparam componentStyle rectangle
skinparam shadowing true
skinparam roundcorner 18
skinparam padding 6
skinparam defaultTextAlignment left
skinparam linetype ortho
skinparam component {
  BackgroundColor #ffffff
  BorderColor #cbd5e1
  FontColor #0f172a
  FontSize 14
}
skinparam stereotypeFontColor #0f172a
skinparam stereotypeFontSize 12
skinparam stereotypeFontStyle bold
skinparam stereotypeBorderColor #94a3b8
skinparam stereotypeBackgroundColor #ffffff
skinparam packageStyle rectangle

component "<color:#0f766e>⬢</color>  <b>Service Inventory</b>\n<size:10><color:#64748b>1.1.0 (specified)</color></size>" <<TMFC008>> as C

package "Exposed APIs" as EXP #e2e8f0 {
  component "TMF638\n[[https://raw.githubusercontent.com/tmforum-apis/serviceInventory/master/TMF638-serviceInventory-v4.0.0.swagger.json serviceInventory]]\n(required)\n4.0" as E_TMF638
  component "TMF688\n[[https://raw.githubusercontent.com/tmforum-apis/TMF688_Event/master/TMF688-Event-v4.0.0.swagger.json Event]]\n(optional)\n4.0" as E_TMF688
  component "TMF701\n[[ttps://raw.githubusercontent.com/tmforum-apis/TMF701_ProcessFlow/master/TMF701-ProcessFlow-v4.0.0.swagger.json ProcessFlowManagement]]\n(optional)\n4.0" as E_TMF701
}

package "Dependent APIs" as DEP #e2e8f0 {
  component "TMF632\n[[https://github.com/tmforum-apis/TMF632_Party/blob/master/TMF632-Party-v4.0.0.swagger.json PartyManagement]]\n(optional)\n4.0" as D_TMF632
  component "TMF633\n[[https://raw.githubusercontent.com/tmforum-apis/TMF633_ServiceCatalogManagement/master/TMF633_ServiceCatalogManagement-v4.0.0.swagger.json ServiceCatalogManagement]]\n(required)\n4.0" as D_TMF633
  component "TMF638\n[[https://raw.githubusercontent.com/tmforum-apis/TMF638-ServiceInventory/master/TMF638-ServiceInventory-v4.0.0.swagger.json ServiceInventoryManagement]]\n(optional)\n4.0" as D_TMF638
  component "TMF639\n[[https://raw.githubusercontent.com/tmforum-apis/TMF639-ResourceInventory/master/TMF639-ResourceInventory-v4.0.0.swagger.json ResourceInventoryManagement]]\n(optional)\n4.0" as D_TMF639
  component "TMF641\n[[https://github.com/tmforum-apis/TMF641_ServiceOrdering/blob/master/TMF641_ServiceOrdering-v4.0.0.swagger.json ServiceOrdering]]\n(optional)\n4.0" as D_TMF641
  component "TMF669\n[[https://raw.githubusercontent.com/tmforum-apis/TMF669_PartyRole/master/TMF669-PartyRole-v4.0.0.swagger.json PartyRoleManagement]]\n(optional)\n4.0" as D_TMF669
  component "TMF672\n[[https://github.com/tmforum-apis/TMF672_UserRolesPermissions/blob/master/TMF672-UserRolePermission-v4.0.0.swagger.json UserRolePermission]]\n(optional)\n4.0" as D_TMF672
  component "TMF674\n[[https://github.com/tmforum-apis/TMF674_GeographicSite/blob/master/TMF674-GeographicSite-v4.0.0.swagger.json GeographicSiteManagement]]\n(optional)\n4.0" as D_TMF674
  component "TMF675\n[[https://github.com/tmforum-apis/TMF675_GeographicLocation/blob/master/TMF675-GeographicLocation-v4.0.0.swagger.json GeographicLocation]]\n(optional)\n4.0" as D_TMF675
  component "TMF688\n[[https://github.com/tmforum-apis/TMF688-Event/blob/master/TMF688-Event-v4.0.0.swagger.json Event]]\n(optional)\n4.0" as D_TMF688
}

E_TMF638 -right[hidden]-> E_TMF688
E_TMF638 -down[hidden]-> E_TMF701
D_TMF632 -right[hidden]-> D_TMF633
D_TMF633 -right[hidden]-> D_TMF638
D_TMF638 -right[hidden]-> D_TMF639
D_TMF641 -right[hidden]-> D_TMF669
D_TMF669 -right[hidden]-> D_TMF672
D_TMF672 -right[hidden]-> D_TMF674
D_TMF675 -right[hidden]-> D_TMF688
D_TMF632 -down[hidden]-> D_TMF641
D_TMF641 -down[hidden]-> D_TMF675

E_TMF638 -down[hidden]-> C
E_TMF688 -down[hidden]-> C
E_TMF701 -down[hidden]-> C
C -down[hidden]-> D_TMF632
C -down[hidden]-> D_TMF633
C -down[hidden]-> D_TMF638
C -down[hidden]-> D_TMF639
C -down[hidden]-> D_TMF641
C -down[hidden]-> D_TMF669
C -down[hidden]-> D_TMF672
C -down[hidden]-> D_TMF674
C -down[hidden]-> D_TMF675
C -down[hidden]-> D_TMF688
E_TMF638 -down[hidden]-> D_TMF632

EXP -down-> C : "exposed"
C -down-> DEP : "depends on"

@enduml
