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

from __future__ import annotations
from .v3_workflows_componentandimpact import (
    V3WorkflowsComponentAndImpact,
    V3WorkflowsComponentAndImpactTypedDict,
)
from .v3_workflows_issuestatusandmessage import (
    V3WorkflowsIssueStatusAndMessage,
    V3WorkflowsIssueStatusAndMessageTypedDict,
)
from squadcast_sdk.types import BaseModel
from typing import List, Literal, Optional
from typing_extensions import NotRequired, TypedDict


V3WorkflowsSqCreateStatusPageIssueUpdateName = Literal["sq_add_status_page_issue",]


class V3WorkflowsSqCreateStatusPageIssueUpdateDataTypedDict(TypedDict):
    component_and_impact: NotRequired[List[V3WorkflowsComponentAndImpactTypedDict]]
    issue_title: NotRequired[str]
    page_status_id: NotRequired[int]
    status_and_message: NotRequired[List[V3WorkflowsIssueStatusAndMessageTypedDict]]
    status_page_id: NotRequired[int]


class V3WorkflowsSqCreateStatusPageIssueUpdateData(BaseModel):
    component_and_impact: Optional[List[V3WorkflowsComponentAndImpact]] = None

    issue_title: Optional[str] = None

    page_status_id: Optional[int] = None

    status_and_message: Optional[List[V3WorkflowsIssueStatusAndMessage]] = None

    status_page_id: Optional[int] = None


class V3WorkflowsSqCreateStatusPageIssueUpdateTypedDict(TypedDict):
    name: V3WorkflowsSqCreateStatusPageIssueUpdateName
    data: NotRequired[V3WorkflowsSqCreateStatusPageIssueUpdateDataTypedDict]


class V3WorkflowsSqCreateStatusPageIssueUpdate(BaseModel):
    name: V3WorkflowsSqCreateStatusPageIssueUpdateName

    data: Optional[V3WorkflowsSqCreateStatusPageIssueUpdateData] = None
