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

from __future__ import annotations
from .environmentdiffsummarydto import (
    EnvironmentDiffSummaryDto,
    EnvironmentDiffSummaryDtoTypedDict,
)
from .resourcediffresultdto import ResourceDiffResultDto, ResourceDiffResultDtoTypedDict
from novu_py.types import BaseModel
import pydantic
from typing import List
from typing_extensions import Annotated, TypedDict


class DiffEnvironmentResponseDtoTypedDict(TypedDict):
    source_environment_id: str
    r"""Source environment ID"""
    target_environment_id: str
    r"""Target environment ID"""
    resources: List[ResourceDiffResultDtoTypedDict]
    r"""Diff resources by resource type"""
    summary: EnvironmentDiffSummaryDtoTypedDict
    r"""Overall summary"""


class DiffEnvironmentResponseDto(BaseModel):
    source_environment_id: Annotated[str, pydantic.Field(alias="sourceEnvironmentId")]
    r"""Source environment ID"""

    target_environment_id: Annotated[str, pydantic.Field(alias="targetEnvironmentId")]
    r"""Target environment ID"""

    resources: List[ResourceDiffResultDto]
    r"""Diff resources by resource type"""

    summary: EnvironmentDiffSummaryDto
    r"""Overall summary"""


try:
    DiffEnvironmentResponseDto.model_rebuild()
except NameError:
    pass
