# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

from __future__ import annotations

from typing import Iterable
from typing_extensions import Required, Annotated, TypedDict

from .._utils import PropertyInfo

__all__ = ["DatasetFinalizeFileUploadParams", "DatasetID", "S3PresignedPost", "S3PresignedPostField"]


class DatasetFinalizeFileUploadParams(TypedDict, total=False):
    dataset_id: Required[Annotated[DatasetID, PropertyInfo(alias="datasetId")]]

    s3_presigned_post: Required[Annotated[S3PresignedPost, PropertyInfo(alias="s3PresignedPost")]]
    """Fields required for the S3 presigned POST request generated by s3 sdk."""


class DatasetID(TypedDict, total=False):
    value: Required[str]


class S3PresignedPostField(TypedDict, total=False):
    key: Required[str]

    value: Required[str]


class S3PresignedPost(TypedDict, total=False):
    fields: Required[Iterable[S3PresignedPostField]]
    """Fields required for the S3 presigned POST request generated by s3 sdk."""

    url: Required[str]
