2022-10-26 11:29:25 +00:00
|
|
|
import uuid
|
|
|
|
from dataclasses import dataclass
|
|
|
|
from datetime import datetime
|
|
|
|
from enum import Enum
|
|
|
|
from typing import Any, Dict, List, Optional
|
|
|
|
|
|
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
|
|
class APISpec:
|
|
|
|
url: str
|
|
|
|
endpoints: Dict[str, str]
|
|
|
|
|
|
|
|
|
|
|
|
class AuthType(Enum):
|
|
|
|
bearer = "Bearer"
|
|
|
|
web3 = "Web3"
|
|
|
|
|
|
|
|
|
|
|
|
class Method(Enum):
|
|
|
|
DELETE = "delete"
|
|
|
|
GET = "get"
|
|
|
|
POST = "post"
|
|
|
|
PUT = "put"
|
|
|
|
|
|
|
|
|
2022-10-27 11:35:35 +00:00
|
|
|
class OutputType(Enum):
|
|
|
|
CSV = "csv"
|
|
|
|
JSON = "json"
|
|
|
|
|
|
|
|
|
2022-10-26 11:29:25 +00:00
|
|
|
@dataclass(frozen=True)
|
|
|
|
class MoonstreamQuery:
|
|
|
|
id: uuid.UUID
|
|
|
|
name: str
|
|
|
|
journal_url: Optional[str] = None
|
|
|
|
query: Optional[str] = None
|
|
|
|
tags: Optional[List[str]] = None
|
|
|
|
user: Optional[str] = None
|
|
|
|
user_id: Optional[uuid.UUID] = None
|
|
|
|
query_type: Optional[str] = None
|
|
|
|
created_at: Optional[datetime] = None
|
|
|
|
updated_at: Optional[datetime] = None
|
|
|
|
|
|
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
|
|
class MoonstreamQueries:
|
|
|
|
queries: List[MoonstreamQuery]
|
|
|
|
|
|
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
|
|
class MoonstreamQueryResultUrl:
|
|
|
|
url: str
|