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

from __future__ import annotations
from .rabbitmqconfig import RabbitMQConfig, RabbitMQConfigTypedDict
from .rabbitmqcredentials import RabbitMQCredentials, RabbitMQCredentialsTypedDict
from .topics_union import TopicsUnion, TopicsUnionTypedDict
from outpost_sdk.types import BaseModel
from typing import Optional
from typing_extensions import NotRequired, TypedDict


class DestinationUpdateRabbitMQTypedDict(TypedDict):
    topics: NotRequired[TopicsUnionTypedDict]
    r"""\"*\" or an array of enabled topics."""
    config: NotRequired[RabbitMQConfigTypedDict]
    credentials: NotRequired[RabbitMQCredentialsTypedDict]


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

    config: Optional[RabbitMQConfig] = None

    credentials: Optional[RabbitMQCredentials] = None
