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

from __future__ import annotations
from .topics_union import TopicsUnion, TopicsUnionTypedDict
from .webhookconfig import WebhookConfig, WebhookConfigTypedDict
from .webhookcredentialsupdate import (
    WebhookCredentialsUpdate,
    WebhookCredentialsUpdateTypedDict,
)
from outpost_sdk.types import BaseModel
from typing import Optional
from typing_extensions import NotRequired, TypedDict


class DestinationUpdateWebhookTypedDict(TypedDict):
    topics: NotRequired[TopicsUnionTypedDict]
    r"""\"*\" or an array of enabled topics."""
    config: NotRequired[WebhookConfigTypedDict]
    credentials: NotRequired[WebhookCredentialsUpdateTypedDict]


class DestinationUpdateWebhook(BaseModel):
    topics: Optional[TopicsUnion] = None
    r"""\"*\" or an array of enabled topics."""

    config: Optional[WebhookConfig] = None

    credentials: Optional[WebhookCredentialsUpdate] = None
