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

from __future__ import annotations
from .benefitads import BenefitAds, BenefitAdsTypedDict
from .benefitarticles import BenefitArticles, BenefitArticlesTypedDict
from .benefitcustom import BenefitCustom, BenefitCustomTypedDict
from .benefitdiscord_output import BenefitDiscordOutput, BenefitDiscordOutputTypedDict
from .benefitdownloadables import BenefitDownloadables, BenefitDownloadablesTypedDict
from .benefitgithubrepository import (
    BenefitGitHubRepository,
    BenefitGitHubRepositoryTypedDict,
)
from .benefitlicensekeys_output import (
    BenefitLicenseKeysOutput,
    BenefitLicenseKeysOutputTypedDict,
)
from polar_sdk.types import BaseModel
from polar_sdk.utils import FieldMetadata, PathParamMetadata
from typing import TypedDict, Union
from typing_extensions import Annotated


class BenefitsGetRequestTypedDict(TypedDict):
    id: str


class BenefitsGetRequest(BaseModel):
    id: Annotated[
        str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
    ]


BenefitsGetResponseBenefitsGetTypedDict = Union[
    BenefitArticlesTypedDict,
    BenefitAdsTypedDict,
    BenefitDiscordOutputTypedDict,
    BenefitGitHubRepositoryTypedDict,
    BenefitDownloadablesTypedDict,
    BenefitLicenseKeysOutputTypedDict,
    BenefitCustomTypedDict,
]
r"""Successful Response"""


BenefitsGetResponseBenefitsGet = Union[
    BenefitArticles,
    BenefitAds,
    BenefitDiscordOutput,
    BenefitGitHubRepository,
    BenefitDownloadables,
    BenefitLicenseKeysOutput,
    BenefitCustom,
]
r"""Successful Response"""
