Source code for mythx_models.response.analysis

"""This module contains domain models regarding analysis jobs."""

import logging
from enum import Enum

from pydantic import BaseModel, Field

from mythx_models.response.group import VulnerabilityStatistics

LOGGER = logging.getLogger(__name__)


[docs]class AnalysisStatus(str, Enum): """An Enum describing the status an analysis job can be in.""" QUEUED = "Queued" IN_PROGRESS = "In Progress" ERROR = "Error" FINISHED = "Finished"
[docs]class AnalysisShort(BaseModel): uuid: str api_version: str = Field(alias="apiVersion") harvey_version: str = Field(alias="harveyVersion") maru_version: str = Field(alias="maruVersion") mythril_version: str = Field(alias="mythrilVersion") queue_time: int = Field(alias="queueTime") run_time: int = Field(alias="runTime") status: str = Field(alias="status") submitted_at: str = Field(alias="submittedAt") submitted_by: str = Field(alias="submittedBy") client_tool_name: str = Field(alias="clientToolName") group_id: str = Field(alias="groupId") group_name: str = Field(alias="groupName") analysis_mode: str = Field(alias="analysisMode")
[docs] class Config: allow_population_by_field_name = True use_enum_values = True
[docs]class Analysis(BaseModel): uuid: str api_version: str = Field(alias="apiVersion") mythril_version: str = Field(alias="mythrilVersion") harvey_version: str = Field(alias="harveyVersion") maru_version: str = Field(alias="maruVersion") queue_time: int = Field(alias="queueTime") status: str submitted_at: str = Field(alias="submittedAt") submitted_by: str = Field(alias="submittedBy") main_source: str = Field(alias="mainSource") num_sources: str = Field(alias="numSources") vulnerability_statistics: VulnerabilityStatistics = Field( alias="numVulnerabilities" ) run_time: int = Field(alias="runTime") client_tool_name: str = Field(alias="clientToolName") group_id: str = Field(alias="groupId") analysis_mode: str = Field(alias="analysisMode") group_name: str = Field(alias="groupName") upgraded: bool property_checking: bool = Field(alias="propertyChecking") error: str = None info: str = None
[docs] class Config: allow_population_by_field_name = True use_enum_values = True