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

from __future__ import annotations
from .v3_services_aptaconfig import V3ServicesAPTAConfig, V3ServicesAPTAConfigTypedDict
from .v3_services_iagconfig import V3ServicesIAGConfig, V3ServicesIAGConfigTypedDict
from .v3_services_notificationdelayconfigrequest import (
    V3ServicesNotificationDelayConfigRequest,
    V3ServicesNotificationDelayConfigRequestTypedDict,
)
from .v3_services_servicemaintainer import (
    V3ServicesServiceMaintainer,
    V3ServicesServiceMaintainerTypedDict,
)
from .v3_services_servicetag import V3ServicesServiceTag, V3ServicesServiceTagTypedDict
from squadcast_sdk.types import BaseModel
from typing import List, Optional
from typing_extensions import NotRequired, TypedDict


class V3ServicesUpdateServiceRequestTypedDict(TypedDict):
    name: NotRequired[str]
    escalation_policy_id: NotRequired[str]
    description: NotRequired[str]
    email_prefix: NotRequired[str]
    maintainer: NotRequired[V3ServicesServiceMaintainerTypedDict]
    tags: NotRequired[List[V3ServicesServiceTagTypedDict]]
    auto_pause_transient_alerts_config: NotRequired[V3ServicesAPTAConfigTypedDict]
    intelligent_alerts_grouping_config: NotRequired[V3ServicesIAGConfigTypedDict]
    delay_notification_config: NotRequired[
        V3ServicesNotificationDelayConfigRequestTypedDict
    ]


class V3ServicesUpdateServiceRequest(BaseModel):
    name: Optional[str] = None

    escalation_policy_id: Optional[str] = None

    description: Optional[str] = None

    email_prefix: Optional[str] = None

    maintainer: Optional[V3ServicesServiceMaintainer] = None

    tags: Optional[List[V3ServicesServiceTag]] = None

    auto_pause_transient_alerts_config: Optional[V3ServicesAPTAConfig] = None

    intelligent_alerts_grouping_config: Optional[V3ServicesIAGConfig] = None

    delay_notification_config: Optional[V3ServicesNotificationDelayConfigRequest] = None
