# This file was auto-generated by Fern from our API Definition.

from __future__ import annotations

import typing

from .no_transfer_api import NoTransferApi
from .presigned_url_transfer_api import PresignedUrlTransferApi
from .sts_transfer_api import StsTransferApi


class CreateAssetResponseTransferApi_None(NoTransferApi):
    type: typing.Literal["none"] = "none"

    class Config:
        frozen = True
        smart_union = True
        allow_population_by_field_name = True
        populate_by_name = True


class CreateAssetResponseTransferApi_PresignedUrl(PresignedUrlTransferApi):
    type: typing.Literal["presigned-url"] = "presigned-url"

    class Config:
        frozen = True
        smart_union = True
        allow_population_by_field_name = True
        populate_by_name = True


class CreateAssetResponseTransferApi_Sts(StsTransferApi):
    type: typing.Literal["sts"] = "sts"

    class Config:
        frozen = True
        smart_union = True
        allow_population_by_field_name = True
        populate_by_name = True


CreateAssetResponseTransferApi = typing.Union[
    CreateAssetResponseTransferApi_None, CreateAssetResponseTransferApi_PresignedUrl, CreateAssetResponseTransferApi_Sts
]
