oc-doc/docs/catalog_metadata.puml
2024-12-10 18:01:58 +01:00

259 lines
4.4 KiB
Plaintext

@startuml
class Resource
{
"id" : "string"
"name" : "string"
"short description" : "string"
"description" : "string"
"logo" : "string"
"creator" : "peer_id"
"usage_restrictions" : "string"
}
class StoragePartnerResource
{
"namespace" : "string"
"sizing_indicator" : "string"
"peer_group"="string"
}
class ProcessingPartnerResource
{
"namespace" : "string"
"sizing_indicator" : "string"
"peer_group"="string"
}
class ComputeUnitPartnerResource
{
"namespace" : "string"
"sizing_indicator" : "string"
"peer_group"="string"
}
class DataPartnerResource
{
"namespace" : "string"
"sizing_indicator" : "string"
"peer_group"="string"
}
class ResourceInstance
{
"location" : "geo coord"
"country" : "string"
"url" : "string"
}
class StorageInstance
{
}
class DataInstance
{
}
class ComputeUnitInstance
{
"cpus":
"gpus":
"ram":
"security_level" : "string"
"power_source" : "string"
}
class cpu
{
"model" : "string"
"cores" : "int"
"frequency" : "float"
"architecture" : "string"
}
class gpu
{
"model" : "string"
"memory" : "float"
}
class ram
{
"size" : "int"
}
class bandwidth
{
"up" : "float"
"down" : "float"
}
class ProcessingInstance
{
}
class Owner
{
"name" : "string"
"logo" : "string"
}
class DataPricingStrategy {
"unlimited"
"subscription"
"pay per use"
}
class DataPricing
{
"price" : "float"
"price_per_gb" : "float"
"price_per_request" : "float"
"price_per_api_call" : "float"
"price_per_data_transfer" : "float"
"price_per_data_download" : "float"
}
class ProcessingPricing
{
"price" : "float"
"price_per_request" : "float"
"price_per_api_call" : "float"
"price_per_data_transfer" : "float"
"price_per_data_processing" : "float"
"price_per_data_storage" : "float"
"price_per_data_download" : "float"
}
class ComputeUnitPricingStrategy {
"overflow" : "booked, allowed, garanted"
}
class ComputeUnitPricing
{
"cpu_price" : "float"
"gpu_price" : "float"
"ram_price" : "float"
"refund" : "bool"
}
class StoragePricing
{
"price" : "float"
"price_per_request" : "float"
"price_per_api_call" : "float"
"price_per_data_transfer" : "float"
"price_per_data_processing" : "float"
"price_per_data_storage" : "float"
"price_per_data_download" : "float"
}
class Data
{
"personal_data" : "bool"
"anonymized_personal_data" : "bool"
"type" : "string"
"license" : "string"
"open_data" : "bool"
"quality" : "string"
"static" : bool
"update_period" : "string"
}
class ComputeUnit
{
"type" : "string"
"infrastructure" : "string"
"architecture" : "string"
"investors" : "string"
}
class Processing {
"type" : "string"
"license" : "string"
"open_source" : "bool"
"maturity" : "string"
"service" : "bool"
}
class Container
{
"image" : "string"
"command" : "string"
"args" : "string"
"env" : "string"
"volumes" : "string"
}
Processing "0" *-- "1" Container
Container "0" *-- "*" Expose
class Expose
{
Port:int
Reverse: "string"
PAT:int
}
class ProcessingUsage
{
"hypothesis" : "string"
"cpu":
"gpu":
"ram":
"storage": "float"
"scalingmodel": "string"
}
class Storage {
"type" : "string"
"security_level" : "string"
"investors" : "string"
"support" : "string"
}
Resource -- Owner
Resource <|- Data
Resource <|- ComputeUnit
Resource <|- Processing
Resource <|- Storage
Resource <|- Workflow
StoragePartnerResource -- StoragePricingStrategy
ProcessingPartnerResource -- ProcessingPricingStrategy
ComputeUnitPartnerResource -- ComputeUnitPricingStrategy
DataPartnerResource -- DataPricingStrategy
StorageInstance "1" *-- "*" StoragePartnerResource
DataInstance "1" *-- "*" DataPartnerResource
ProcessingInstance "1" *-- "*" ProcessingPartnerResource
ComputeUnitInstance "1" *-- "*" ComputeUnitPartnerResource
DataPricingStrategy <|-- DataPricing
ProcessingPricingStrategy <|-- ProcessingPricing
ComputeUnitPricingStrategy <|-- ComputeUnitPricing
StoragePricingStrategy <|-- StoragePricing
ResourceInstance <|-- StorageInstance
ResourceInstance <|-- DataInstance
ResourceInstance <|-- ComputeUnitInstance
ResourceInstance <|-- ProcessingInstance
Storage "1" *-- "*" StorageInstance
Processing "1" *-- "*" ProcessingInstance
ComputeUnit "1" *-- "*" ComputeUnitInstance
Data "1" *-- "*" DataInstance
@enduml