"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""

import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
import typing

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing.final
class PresignObjectRequest(google.protobuf.message.Message):
    """PresignObjectRequest represents a single object presign request"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing.final
    class HeadersEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...

    EXPIRES_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    METHOD_FIELD_NUMBER: builtins.int
    HEADERS_FIELD_NUMBER: builtins.int
    VERSION_ID_FIELD_NUMBER: builtins.int
    AS_ATTACHMENT_FIELD_NUMBER: builtins.int
    expires: builtins.int
    """Expiration time in seconds"""
    name: builtins.str
    """Object name/key"""
    method: builtins.str
    """HTTP method (GET, PUT, HEAD)"""
    version_id: builtins.str
    """Object version ID (optional)"""
    as_attachment: builtins.bool
    """Whether to force download as attachment"""
    @property
    def headers(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]:
        """Additional HTTP headers"""

    def __init__(
        self,
        *,
        expires: builtins.int = ...,
        name: builtins.str = ...,
        method: builtins.str = ...,
        headers: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        version_id: builtins.str = ...,
        as_attachment: builtins.bool = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["as_attachment", b"as_attachment", "expires", b"expires", "headers", b"headers", "method", b"method", "name", b"name", "version_id", b"version_id"]) -> None: ...

global___PresignObjectRequest = PresignObjectRequest

@typing.final
class PresignURLsRequest(google.protobuf.message.Message):
    """PresignURLsRequest represents the request for presigning URLs"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    BUCKET_NAME_FIELD_NUMBER: builtins.int
    PRESIGN_HOST_FIELD_NUMBER: builtins.int
    OBJECTS_FIELD_NUMBER: builtins.int
    bucket_name: builtins.str
    """Bucket name"""
    presign_host: builtins.str
    """Custom presign host (optional)"""
    @property
    def objects(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___PresignObjectRequest]:
        """List of objects to presign"""

    def __init__(
        self,
        *,
        bucket_name: builtins.str = ...,
        presign_host: builtins.str = ...,
        objects: collections.abc.Iterable[global___PresignObjectRequest] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["bucket_name", b"bucket_name", "objects", b"objects", "presign_host", b"presign_host"]) -> None: ...

global___PresignURLsRequest = PresignURLsRequest

@typing.final
class PresignURLsResponse(google.protobuf.message.Message):
    """PresignURLsResponse represents the response with presigned URLs"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    URLS_FIELD_NUMBER: builtins.int
    @property
    def urls(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """List of presigned URLs corresponding to the requested objects"""

    def __init__(
        self,
        *,
        urls: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["urls", b"urls"]) -> None: ...

global___PresignURLsResponse = PresignURLsResponse
