"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""

from __future__ import annotations
from .insighttooloutput import InsightToolOutput, InsightToolOutputTypedDict
from datetime import datetime
from syllable_sdk.types import BaseModel
from typing import List, Optional
from typing_extensions import NotRequired, TypedDict


class InsightWorkflowOutputConditionsTypedDict(TypedDict):
    r"""Conditions for Insight Workflow"""


class InsightWorkflowOutputConditions(BaseModel):
    r"""Conditions for Insight Workflow"""


class InsightWorkflowOutputTypedDict(TypedDict):
    name: str
    r"""Human readable name of Insight Workflow"""
    description: str
    r"""Text description of Insight Workflow"""
    insight_tool_ids: List[int]
    r"""List of Insight Tool IDs"""
    conditions: InsightWorkflowOutputConditionsTypedDict
    r"""Conditions for Insight Workflow"""
    status: str
    r"""Status of the Insight Workflow"""
    id: int
    r"""Unique ID for Insight Workflow"""
    insight_tools: List[InsightToolOutputTypedDict]
    r"""List of Insight Tools"""
    last_updated_by: str
    r"""User who last updated Insight Workflow"""
    created_at: NotRequired[datetime]
    r"""Timestamp of Insight Workflow creation"""
    updated_at: NotRequired[datetime]
    r"""Timestamp of Insight Workflow update"""


class InsightWorkflowOutput(BaseModel):
    name: str
    r"""Human readable name of Insight Workflow"""

    description: str
    r"""Text description of Insight Workflow"""

    insight_tool_ids: List[int]
    r"""List of Insight Tool IDs"""

    conditions: InsightWorkflowOutputConditions
    r"""Conditions for Insight Workflow"""

    status: str
    r"""Status of the Insight Workflow"""

    id: int
    r"""Unique ID for Insight Workflow"""

    insight_tools: List[InsightToolOutput]
    r"""List of Insight Tools"""

    last_updated_by: str
    r"""User who last updated Insight Workflow"""

    created_at: Optional[datetime] = None
    r"""Timestamp of Insight Workflow creation"""

    updated_at: Optional[datetime] = None
    r"""Timestamp of Insight Workflow update"""
