forked from opendatadiscovery/odd-collector
-
Notifications
You must be signed in to change notification settings - Fork 0
/
domain_classes.plantuml
181 lines (140 loc) · 2.92 KB
/
domain_classes.plantuml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
@startuml
namespace odd_collector_sdk.domain.plugin {
abstract class pydantic.BaseSettings
pydantic.BaseSettings <|- Plugin
abstract class Plugin {
name: str
description: Optional[str]
namespace: Optional[str]
}
}
namespace odd_collector.domain.plugin {
class TableauPlugin{
type: Literal["tableau"]
server: str
site: str
user: str
password: str
}
odd_collector_sdk.domain.plugin.Plugin <|-- TableauPlugin
class SupersetPlugin{
type: Literal["superset"]
server: str
username: str
password: str
}
odd_collector_sdk.domain.plugin.Plugin <|-- SupersetPlugin
class KubeflowPlugin {
type: Literal["kubeflow"]
host: str
namespace: str
session_cookie0: Optional[str]
session_cookie1: Optional[str]
}
odd_collector_sdk.domain.plugin.Plugin <|-- KubeflowPlugin
abstract class WithHost {
host: str
}
odd_collector_sdk.domain.plugin.Plugin <|-- WithHost
abstract class WithPort {
port: str
}
odd_collector_sdk.domain.plugin.Plugin <|-- WithPort
class ElasticsearchPlugin{
type: Literal["elasticsearch"]
http_auth: str
use_ssl: bool
verify_certs: bool
ca_certs: str
}
WithHost <|-- ElasticsearchPlugin
WithPort <|-- ElasticsearchPlugin
class HivePlugin{
type: Literal["hive"]
}
WithHost <|-- HivePlugin
WithPort <|-- HivePlugin
class FeastPlugin{
type: Literal["feast"]
repo_path: str
}
WithHost <|-- FeastPlugin
class DbtPlugin{
type: Literal["dbt"]
odd_catalog_url: str
}
WithHost <|-- DbtPlugin
class AirbytePlugin{
type: Literal["airbyte"]
}
WithHost <|-- AirbytePlugin
WithPort <|-- AirbytePlugin
abstract class DatabasePlugin {
database: Optional[str]
user: str
password: str
}
WithPort <|-- DatabasePlugin
WithHost <|-- DatabasePlugin
class PostgreSQLPlugin {
type: Literal["postgresql"]
}
DatabasePlugin <|-- PostgreSQLPlugin
class MysqlDatabase {
type: Literal["mysql"]
}
DatabasePlugin <|-- MysqlDatabase
class OdbcDatabase {
type: Literal["odbc"]
driver: str = "ODBC Driver 17s for SQL Server"
}
DatabasePlugin <|-- OdbcDatabase
class ClickhousePlugin {
type: Literal["clickhouse"]
}
DatabasePlugin <|-- ClickhousePlugin
class RedshiftPlugin {
type: Literal["redshift"]
}
DatabasePlugin <|-- RedshiftPlugin
class MongoDBPlugin{
type: Literal["mongodb"]
protocol: str
}
DatabasePlugin <|-- MongoDBPlugin
class SnowflakePlugin{
type: Literal["snowflake"]
account: str
warehouse: str
}
DatabasePlugin <|-- SnowflakePlugin
class CassandraPlugin{
type: Literal["cassandra"]
contact_points: list = []
}
DatabasePlugin <|-- CassandraPlugin
class PrestoPlugin{
type: Literal["presto"]
contact_points: list = []
}
DatabasePlugin <|-- PrestoPlugin
class TrinoPlugin{
type: Literal["trino"]
contact_points: list = []
}
DatabasePlugin <|-- TrinoPlugin
class TarantoolPlugin {
type: Literal["tarantool"]
}
DatabasePlugin <|-- TarantoolPlugin
class Neo4jPlugin{
type: Literal["neo4j"]
}
DatabasePlugin <|-- Neo4jPlugin
class SingleStorePlugin {
type: Literal["singlestore"]
}
DatabasePlugin <|-- SingleStorePlugin
TarantoolPlugin -[hidden]> PostgreSQLPlugin
}
@enduml