auto-invest-manager — API
AdminServiceError
Section titled “AdminServiceError”class AdminServiceError(Exception):ResourceNotFoundError
Section titled “ResourceNotFoundError”class ResourceNotFoundError(AdminServiceError):ResourceConflictError
Section titled “ResourceConflictError”class ResourceConflictError(AdminServiceError):AdminRepository:
Section titled “AdminRepository:”class AdminRepository:ORMModel
Section titled “ORMModel”class ORMModel(BaseModel):SystemSettingsResponse
Section titled “SystemSettingsResponse”class SystemSettingsResponse(ORMModel):SystemSettingsUpdate
Section titled “SystemSettingsUpdate”class SystemSettingsUpdate(BaseModel):InstrumentReference
Section titled “InstrumentReference”class InstrumentReference(BaseModel):InstrumentResponse
Section titled “InstrumentResponse”class InstrumentResponse(ORMModel):InstrumentSyncRequest
Section titled “InstrumentSyncRequest”class InstrumentSyncRequest(BaseModel):WatchlistItemCreate
Section titled “WatchlistItemCreate”class WatchlistItemCreate(InstrumentReference):WatchlistItemUpdate
Section titled “WatchlistItemUpdate”class WatchlistItemUpdate(BaseModel):WatchlistItemResponse
Section titled “WatchlistItemResponse”class WatchlistItemResponse(ORMModel):RiskProfileUpdate
Section titled “RiskProfileUpdate”class RiskProfileUpdate(BaseModel):RiskProfileResponse
Section titled “RiskProfileResponse”class RiskProfileResponse(ORMModel):StrategyProfileUpdate
Section titled “StrategyProfileUpdate”class StrategyProfileUpdate(BaseModel):StrategyProfileResponse
Section titled “StrategyProfileResponse”class StrategyProfileResponse(ORMModel):AccountsResponse
Section titled “AccountsResponse”class AccountsResponse(BaseModel):SignalResponse
Section titled “SignalResponse”class SignalResponse(ORMModel):AnalysisRunResponse
Section titled “AnalysisRunResponse”class AnalysisRunResponse(BaseModel):TargetAllocationResponse
Section titled “TargetAllocationResponse”class TargetAllocationResponse(ORMModel):RebalancePlanResponse
Section titled “RebalancePlanResponse”class RebalancePlanResponse(ORMModel):PlannedOrderResponse
Section titled “PlannedOrderResponse”class PlannedOrderResponse(ORMModel):VirtualTradeResponse
Section titled “VirtualTradeResponse”class VirtualTradeResponse(ORMModel):ExecutionOrderResponse
Section titled “ExecutionOrderResponse”class ExecutionOrderResponse(ORMModel):AuditLogResponse
Section titled “AuditLogResponse”class AuditLogResponse(ORMModel):AdminService:
Section titled “AdminService:”class AdminService:async def get_accounts(service: AdminServiceDependency) -> AccountsResponse:async def get_audit_logs(service: AdminServiceDependency) -> list[AuditLogResponse]:async def get_system_settings(service: AdminServiceDependency) -> SystemSettingsResponse:async def get_watchlist(service: AdminServiceDependency) -> list[WatchlistItemResponse]:async def remove_watchlist_item(item_id: UUID, service: AdminServiceDependency) -> Response:async def get_risk_profile(service: AdminServiceDependency) -> RiskProfileResponse:async def get_strategy_profile(service: AdminServiceDependency) -> StrategyProfileResponse:async def run_analysis(service: SignalServiceDependency) -> AnalysisRunResponse:async def list_runs(session: SessionDependency) -> list[AutomationRunResponse]:async def get_run(run_id: UUID, session: SessionDependency) -> AutomationRunResponse:HealthResponse
Section titled “HealthResponse”class HealthResponse(BaseModel):WorkerHealthResponse
Section titled “WorkerHealthResponse”class WorkerHealthResponse(BaseModel):get_engine
Section titled “get_engine”def get_engine() -> AsyncEngine:async def liveness() -> HealthResponse:async def stream_event(event_id: UUID, session: SessionDependency) -> StreamEventResponse:async def account_event(event_id: UUID, session: SessionDependency) -> AccountEventResponse:async def reconcile_account(account_id: str, settings: SettingsDependency) -> dict[str, str]:RetryingBrokerProvider:
Section titled “RetryingBrokerProvider:”class RetryingBrokerProvider:AutomationCycleRequest:
Section titled “AutomationCycleRequest:”class AutomationCycleRequest:AutomationCycleResult:
Section titled “AutomationCycleResult:”class AutomationCycleResult:src/app/automation/healthcheck.py
async def check_scheduler() -> None:src/app/automation/healthcheck.py
def main() -> None:LockLease:
Section titled “LockLease:”class LockLease:RedisCycleLock:
Section titled “RedisCycleLock:”class RedisCycleLock:AutomationRepository:
Section titled “AutomationRepository:”src/app/automation/repository.py
class AutomationRepository:RetryPolicy:
Section titled “RetryPolicy:”class RetryPolicy:src/app/automation/scheduler.py
async def run_scheduler() -> None:src/app/automation/scheduler.py
def main() -> None:AutomationRunResponse
Section titled “AutomationRunResponse”class AutomationRunResponse(BaseModel):AutomationStatusResponse
Section titled “AutomationStatusResponse”class AutomationStatusResponse(BaseModel):AutomationCycleService:
Section titled “AutomationCycleService:”class AutomationCycleService:async def sync_accounts(ctx: dict[str, Any]) -> dict[str, int]:async def sync_instruments(ctx: dict[str, Any]) -> dict[str, int]:async def process_broker_stream_event(ctx: dict[str, Any], event_id: str) -> dict[str, bool]:async def reconcile_account(ctx: dict[str, Any], account_id: str, state_key: str) -> dict[str, Any]:async def cleanup_processed_stream_events(ctx: dict[str, Any]) -> dict[str, int]:async def startup(ctx: dict[str, Any]) -> None:WorkerSettings:
Section titled “WorkerSettings:”class WorkerSettings:CandleInterval
Section titled “CandleInterval”class CandleInterval(StrEnum):BrokerAccountData:
Section titled “BrokerAccountData:”class BrokerAccountData:MoneyData:
Section titled “MoneyData:”class MoneyData:PositionData:
Section titled “PositionData:”class PositionData:PortfolioData:
Section titled “PortfolioData:”class PortfolioData:InstrumentData:
Section titled “InstrumentData:”class InstrumentData:CandleData:
Section titled “CandleData:”class CandleData:LastPriceData:
Section titled “LastPriceData:”class LastPriceData:TradingStatusData:
Section titled “TradingStatusData:”class TradingStatusData:SandboxOrderRequest:
Section titled “SandboxOrderRequest:”class SandboxOrderRequest:SandboxOrderResult:
Section titled “SandboxOrderResult:”class SandboxOrderResult:BrokerCapabilities:
Section titled “BrokerCapabilities:”class BrokerCapabilities:BrokerStreamEvent:
Section titled “BrokerStreamEvent:”class BrokerStreamEvent:OperationsCursorRequest:
Section titled “OperationsCursorRequest:”class OperationsCursorRequest:BrokerOperation:
Section titled “BrokerOperation:”class BrokerOperation:OperationsCursorPage:
Section titled “OperationsCursorPage:”class OperationsCursorPage:BrokerError
Section titled “BrokerError”class BrokerError(Exception):BrokerConfigurationError
Section titled “BrokerConfigurationError”class BrokerConfigurationError(BrokerError):InstrumentNotFoundError
Section titled “InstrumentNotFoundError”class InstrumentNotFoundError(BrokerError):BrokerTemporaryError
Section titled “BrokerTemporaryError”class BrokerTemporaryError(BrokerError):BrokerRateLimitError
Section titled “BrokerRateLimitError”class BrokerRateLimitError(BrokerTemporaryError):create_broker_provider
Section titled “create_broker_provider”def create_broker_provider(settings: Settings) -> BrokerProvider:BrokerProvider
Section titled “BrokerProvider”class BrokerProvider(Protocol):MockBrokerProvider:
Section titled “MockBrokerProvider:”class MockBrokerProvider:TInvestClient:
Section titled “TInvestClient:”class TInvestClient:async def seed_defaults() -> None:def main() -> None:Settings
Section titled “Settings”class Settings(BaseSettings):get_settings
Section titled “get_settings”def get_settings() -> Settings:class Base(DeclarativeBase):UUIDPrimaryKeyMixin:
Section titled “UUIDPrimaryKeyMixin:”class UUIDPrimaryKeyMixin:TimestampMixin:
Section titled “TimestampMixin:”class TimestampMixin:async def get_session() -> AsyncIterator[AsyncSession]:ExecutionAllocation:
Section titled “ExecutionAllocation:”class ExecutionAllocation:PlannedOrderData:
Section titled “PlannedOrderData:”class PlannedOrderData:RiskContext:
Section titled “RiskContext:”class RiskContext:RiskDecision:
Section titled “RiskDecision:”class RiskDecision:ExecutionPlanningError
Section titled “ExecutionPlanningError”class ExecutionPlanningError(Exception):RiskRejectedError
Section titled “RiskRejectedError”class RiskRejectedError(Exception):ExecutionPlanner:
Section titled “ExecutionPlanner:”class ExecutionPlanner:initial_order_status
Section titled “initial_order_status”src/app/execution/repository.py
def initial_order_status(trade_mode: TradeMode) -> PlannedOrderStatus:ExecutionRepository:
Section titled “ExecutionRepository:”src/app/execution/repository.py
class ExecutionRepository:RiskManager:
Section titled “RiskManager:”class RiskManager:ExecutionService:
Section titled “ExecutionService:”class ExecutionService:create_app
Section titled “create_app”def create_app() -> FastAPI:SystemSettings
Section titled “SystemSettings”class SystemSettings(UUIDPrimaryKeyMixin, TimestampMixin, Base):BrokerAccount
Section titled “BrokerAccount”class BrokerAccount(UUIDPrimaryKeyMixin, TimestampMixin, Base):Instrument
Section titled “Instrument”class Instrument(UUIDPrimaryKeyMixin, TimestampMixin, Base):WatchlistItem
Section titled “WatchlistItem”class WatchlistItem(UUIDPrimaryKeyMixin, TimestampMixin, Base):RiskProfile
Section titled “RiskProfile”class RiskProfile(UUIDPrimaryKeyMixin, TimestampMixin, Base):StrategyProfile
Section titled “StrategyProfile”class StrategyProfile(UUIDPrimaryKeyMixin, TimestampMixin, Base):PortfolioSnapshot
Section titled “PortfolioSnapshot”class PortfolioSnapshot(UUIDPrimaryKeyMixin, Base):CashSnapshot
Section titled “CashSnapshot”class CashSnapshot(UUIDPrimaryKeyMixin, Base):Position
Section titled “Position”class Position(UUIDPrimaryKeyMixin, Base):MarketCandle
Section titled “MarketCandle”class MarketCandle(UUIDPrimaryKeyMixin, Base):MarketPrice
Section titled “MarketPrice”class MarketPrice(UUIDPrimaryKeyMixin, Base):Signal
Section titled “Signal”class Signal(UUIDPrimaryKeyMixin, Base):RebalancePlan
Section titled “RebalancePlan”class RebalancePlan(UUIDPrimaryKeyMixin, Base):TargetAllocation
Section titled “TargetAllocation”class TargetAllocation(UUIDPrimaryKeyMixin, Base):PlannedOrder
Section titled “PlannedOrder”class PlannedOrder(UUIDPrimaryKeyMixin, Base):VirtualTrade
Section titled “VirtualTrade”class VirtualTrade(UUIDPrimaryKeyMixin, Base):ExecutionOrder
Section titled “ExecutionOrder”class ExecutionOrder(UUIDPrimaryKeyMixin, TimestampMixin, Base):OrderEvent
Section titled “OrderEvent”class OrderEvent(UUIDPrimaryKeyMixin, Base):AuditLog
Section titled “AuditLog”class AuditLog(UUIDPrimaryKeyMixin, Base):AutomationRun
Section titled “AutomationRun”class AutomationRun(UUIDPrimaryKeyMixin, TimestampMixin, Base):BrokerStreamEventRecord
Section titled “BrokerStreamEventRecord”class BrokerStreamEventRecord(UUIDPrimaryKeyMixin, TimestampMixin, Base):BrokerStreamState
Section titled “BrokerStreamState”class BrokerStreamState(UUIDPrimaryKeyMixin, TimestampMixin, Base):BrokerOperationCursor
Section titled “BrokerOperationCursor”class BrokerOperationCursor(UUIDPrimaryKeyMixin, TimestampMixin, Base):AccountEvent
Section titled “AccountEvent”class AccountEvent(UUIDPrimaryKeyMixin, TimestampMixin, Base):AccountReconciliation
Section titled “AccountReconciliation”class AccountReconciliation(UUIDPrimaryKeyMixin, TimestampMixin, Base):TradeMode
Section titled “TradeMode”class TradeMode(StrEnum):RiskMode
Section titled “RiskMode”class RiskMode(StrEnum):RebalanceMode
Section titled “RebalanceMode”class RebalanceMode(StrEnum):OrderType
Section titled “OrderType”class OrderType(StrEnum):SignalRecommendation
Section titled “SignalRecommendation”class SignalRecommendation(StrEnum):RebalancePlanStatus
Section titled “RebalancePlanStatus”class RebalancePlanStatus(StrEnum):AllocationAction
Section titled “AllocationAction”class AllocationAction(StrEnum):OrderDirection
Section titled “OrderDirection”class OrderDirection(StrEnum):PlannedOrderStatus
Section titled “PlannedOrderStatus”class PlannedOrderStatus(StrEnum):AutomationTrigger
Section titled “AutomationTrigger”class AutomationTrigger(StrEnum):AutomationRunStatus
Section titled “AutomationRunStatus”class AutomationRunStatus(StrEnum):AutomationStep
Section titled “AutomationStep”class AutomationStep(StrEnum):BrokerStreamType
Section titled “BrokerStreamType”class BrokerStreamType(StrEnum):BrokerStreamEventKind
Section titled “BrokerStreamEventKind”class BrokerStreamEventKind(StrEnum):StreamEventProcessingStatus
Section titled “StreamEventProcessingStatus”class StreamEventProcessingStatus(StrEnum):BrokerStreamStatus
Section titled “BrokerStreamStatus”class BrokerStreamStatus(StrEnum):AccountEventType
Section titled “AccountEventType”class AccountEventType(StrEnum):ReconciliationStatus
Section titled “ReconciliationStatus”class ReconciliationStatus(StrEnum):ReconciliationReason
Section titled “ReconciliationReason”class ReconciliationReason(StrEnum):NotificationSeverity
Section titled “NotificationSeverity”class NotificationSeverity(StrEnum):Notification:
Section titled “Notification:”class Notification:create_notifier
Section titled “create_notifier”src/app/notifications/factory.py
def create_notifier(settings: Settings) -> Notifier:Notifier
Section titled “Notifier”src/app/notifications/interface.py
class Notifier(Protocol):NullNotifier:
Section titled “NullNotifier:”src/app/notifications/service.py
class NullNotifier:BestEffortNotifier:
Section titled “BestEffortNotifier:”src/app/notifications/service.py
class BestEffortNotifier:TelegramNotifier:
Section titled “TelegramNotifier:”src/app/notifications/telegram.py
class TelegramNotifier:AssetInput:
Section titled “AssetInput:”class AssetInput:OptimizationConstraints:
Section titled “OptimizationConstraints:”class OptimizationConstraints:TargetWeight:
Section titled “TargetWeight:”class TargetWeight:OptimizationResult:
Section titled “OptimizationResult:”class OptimizationResult:PlannedAllocation:
Section titled “PlannedAllocation:”class PlannedAllocation:RebalanceResult:
Section titled “RebalanceResult:”class RebalanceResult:PortfolioOptimizationError
Section titled “PortfolioOptimizationError”class PortfolioOptimizationError(Exception):PortfolioOptimizer:
Section titled “PortfolioOptimizer:”src/app/portfolio/optimizer.py
class PortfolioOptimizer: