summaryrefslogtreecommitdiff
path: root/internal/models/catalog.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/models/catalog.go')
-rw-r--r--internal/models/catalog.go35
1 files changed, 35 insertions, 0 deletions
diff --git a/internal/models/catalog.go b/internal/models/catalog.go
new file mode 100644
index 0000000..eda61cd
--- /dev/null
+++ b/internal/models/catalog.go
@@ -0,0 +1,35 @@
+package models
+
+type CatalogV2 struct {
+ Version string `json:"version"`
+ Nodes []CatalogNode `json:"nodes"`
+}
+
+type CatalogNode struct {
+ ID string `json:"id"`
+ Name string `json:"name"`
+ Provider string `json:"provider,omitempty"`
+ Region string `json:"region"`
+ Host string `json:"host"`
+ Domain string `json:"domain,omitempty"`
+ PublicHost string `json:"public_host"`
+ Protocols []CatalogProtocol `json:"protocols"`
+ Status string `json:"status,omitempty"`
+ Tags []string `json:"tags,omitempty"`
+ Metadata map[string]any `json:"metadata,omitempty"`
+}
+
+type CatalogProtocol struct {
+ Type string `json:"type"`
+ Enabled bool `json:"enabled"`
+ Port int `json:"port"`
+ TLS *TLS `json:"tls,omitempty"`
+ Auth *CatalogAuth `json:"auth,omitempty"`
+ Extra map[string]any `json:"extra,omitempty"`
+}
+
+type CatalogAuth struct {
+ UUID string `json:"uuid,omitempty"`
+ Method string `json:"method,omitempty"`
+ Password string `json:"password,omitempty"`
+}