"""
model.py
============
This module contains the view server shared configuration models
"""
from dataclasses import dataclass
from typing import Optional, Dict
from enum import Enum
[docs]
class FilesystemType(str, Enum):
swift = "swift"
s3 = "s3"
file = "file"
sshfs = "sshfs"
VSI_MAPPING: Dict[FilesystemType, str] = {
FilesystemType.swift: "/vsiswift/",
FilesystemType.s3: "/vsis3/",
FilesystemType.sshfs: "",
FilesystemType.file: "",
}
[docs]
@dataclass
class S3FilesystemConfig:
access_key_id: str = ""
secret_access_key: str = ""
endpoint_url: str = ""
region: str = ""
public: bool = False
[docs]
@dataclass
class SwiftFileystemConfig:
user: str
key: str
region_name: str
authurl: str
auth_version: str
tenant_name: str
[docs]
@dataclass
class LocalFilesystemConfig:
pass
[docs]
@dataclass
class SSHFilesystemConfig:
host: str
username: str
password: str
[docs]
@dataclass
class FilesystemConfig:
type: FilesystemType
s3: Optional[S3FilesystemConfig] = None
swift: Optional[SwiftFileystemConfig] = None
local: Optional[LocalFilesystemConfig] = None
sshfs: Optional[SSHFilesystemConfig] = None
[docs]
@dataclass
class CatalogConfig:
id: str = "vs-stac-catalog"
description: str = "View Server STAC catalog"
title: str = "VS Catalog"