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

import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.duration_pb2
import google.protobuf.internal.containers
import google.protobuf.internal.enum_type_wrapper
import google.protobuf.message
import google.protobuf.timestamp_pb2
import sys
import typing
import yandex.cloud.logging.v1.log_entry_pb2

if sys.version_info >= (3, 10):
    import typing as typing_extensions
else:
    import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

class _MetadataOption:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _MetadataOptionEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_MetadataOption.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    METADATA_OPTION_UNSPECIFIED: _MetadataOption.ValueType  # 0
    """Option is default"""
    ENABLED: _MetadataOption.ValueType  # 1
    """Option is enabled"""
    DISABLED: _MetadataOption.ValueType  # 2
    """Option is disabled"""

class MetadataOption(_MetadataOption, metaclass=_MetadataOptionEnumTypeWrapper): ...

METADATA_OPTION_UNSPECIFIED: MetadataOption.ValueType  # 0
"""Option is default"""
ENABLED: MetadataOption.ValueType  # 1
"""Option is enabled"""
DISABLED: MetadataOption.ValueType  # 2
"""Option is disabled"""
global___MetadataOption = MetadataOption

@typing.final
class Function(google.protobuf.message.Message):
    """A serverless function. For details about the concept, see [Functions](/docs/functions/concepts/function)."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    class _Status:
        ValueType = typing.NewType("ValueType", builtins.int)
        V: typing_extensions.TypeAlias = ValueType

    class _StatusEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Function._Status.ValueType], builtins.type):
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
        STATUS_UNSPECIFIED: Function._Status.ValueType  # 0
        CREATING: Function._Status.ValueType  # 1
        """Function is being created."""
        ACTIVE: Function._Status.ValueType  # 2
        """Function is ready to be invoked."""
        DELETING: Function._Status.ValueType  # 3
        """Function is being deleted."""
        ERROR: Function._Status.ValueType  # 4
        """Function failed."""

    class Status(_Status, metaclass=_StatusEnumTypeWrapper): ...
    STATUS_UNSPECIFIED: Function.Status.ValueType  # 0
    CREATING: Function.Status.ValueType  # 1
    """Function is being created."""
    ACTIVE: Function.Status.ValueType  # 2
    """Function is ready to be invoked."""
    DELETING: Function.Status.ValueType  # 3
    """Function is being deleted."""
    ERROR: Function.Status.ValueType  # 4
    """Function failed."""

    @typing.final
    class LabelsEntry(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: ...

    ID_FIELD_NUMBER: builtins.int
    FOLDER_ID_FIELD_NUMBER: builtins.int
    CREATED_AT_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    LABELS_FIELD_NUMBER: builtins.int
    HTTP_INVOKE_URL_FIELD_NUMBER: builtins.int
    STATUS_FIELD_NUMBER: builtins.int
    id: builtins.str
    """ID of the function. Generated at creation time."""
    folder_id: builtins.str
    """ID of the folder that the function belongs to."""
    name: builtins.str
    """Name of the function. The name is unique within the folder."""
    description: builtins.str
    """Description of the function."""
    http_invoke_url: builtins.str
    """URL that needs to be requested to invoke the function."""
    status: global___Function.Status.ValueType
    """Status of the function."""
    @property
    def created_at(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """Creation timestamp for the function."""

    @property
    def labels(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]:
        """Function labels as `key:value` pairs."""

    def __init__(
        self,
        *,
        id: builtins.str = ...,
        folder_id: builtins.str = ...,
        created_at: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        name: builtins.str = ...,
        description: builtins.str = ...,
        labels: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        http_invoke_url: builtins.str = ...,
        status: global___Function.Status.ValueType = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["created_at", b"created_at"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["created_at", b"created_at", "description", b"description", "folder_id", b"folder_id", "http_invoke_url", b"http_invoke_url", "id", b"id", "labels", b"labels", "name", b"name", "status", b"status"]) -> None: ...

global___Function = Function

@typing.final
class Version(google.protobuf.message.Message):
    """Version of a function. For details about the concept, see [Function versions](/docs/functions/concepts/function#version)."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    class _Status:
        ValueType = typing.NewType("ValueType", builtins.int)
        V: typing_extensions.TypeAlias = ValueType

    class _StatusEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Version._Status.ValueType], builtins.type):
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
        STATUS_UNSPECIFIED: Version._Status.ValueType  # 0
        CREATING: Version._Status.ValueType  # 1
        """Version is being created."""
        ACTIVE: Version._Status.ValueType  # 2
        """Version is ready to use."""
        OBSOLETE: Version._Status.ValueType  # 3
        """Version will be deleted soon."""
        DELETING: Version._Status.ValueType  # 4
        """Version is being deleted."""

    class Status(_Status, metaclass=_StatusEnumTypeWrapper): ...
    STATUS_UNSPECIFIED: Version.Status.ValueType  # 0
    CREATING: Version.Status.ValueType  # 1
    """Version is being created."""
    ACTIVE: Version.Status.ValueType  # 2
    """Version is ready to use."""
    OBSOLETE: Version.Status.ValueType  # 3
    """Version will be deleted soon."""
    DELETING: Version.Status.ValueType  # 4
    """Version is being deleted."""

    @typing.final
    class EnvironmentEntry(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: ...

    @typing.final
    class NamedServiceAccountsEntry(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: ...

    ID_FIELD_NUMBER: builtins.int
    FUNCTION_ID_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    CREATED_AT_FIELD_NUMBER: builtins.int
    RUNTIME_FIELD_NUMBER: builtins.int
    ENTRYPOINT_FIELD_NUMBER: builtins.int
    RESOURCES_FIELD_NUMBER: builtins.int
    EXECUTION_TIMEOUT_FIELD_NUMBER: builtins.int
    SERVICE_ACCOUNT_ID_FIELD_NUMBER: builtins.int
    IMAGE_SIZE_FIELD_NUMBER: builtins.int
    STATUS_FIELD_NUMBER: builtins.int
    TAGS_FIELD_NUMBER: builtins.int
    ENVIRONMENT_FIELD_NUMBER: builtins.int
    CONNECTIVITY_FIELD_NUMBER: builtins.int
    NAMED_SERVICE_ACCOUNTS_FIELD_NUMBER: builtins.int
    SECRETS_FIELD_NUMBER: builtins.int
    LOG_OPTIONS_FIELD_NUMBER: builtins.int
    STORAGE_MOUNTS_FIELD_NUMBER: builtins.int
    ASYNC_INVOCATION_CONFIG_FIELD_NUMBER: builtins.int
    TMPFS_SIZE_FIELD_NUMBER: builtins.int
    CONCURRENCY_FIELD_NUMBER: builtins.int
    MOUNTS_FIELD_NUMBER: builtins.int
    METADATA_OPTIONS_FIELD_NUMBER: builtins.int
    id: builtins.str
    """ID of the version."""
    function_id: builtins.str
    """ID of the function that the version belongs to."""
    description: builtins.str
    """Description of the version."""
    runtime: builtins.str
    """ID of the runtime environment for the function.

    Supported environments and their identifiers are listed in the [Runtime environments](/docs/functions/concepts/runtime).
    """
    entrypoint: builtins.str
    """Entrypoint for the function: the name of the function to be called as the handler.

    Specified in the format `<function file name>.<handler name>`, for example, `index.myFunction`.
    """
    service_account_id: builtins.str
    """ID of the service account associated with the version."""
    image_size: builtins.int
    """Final size of the deployment package after unpacking."""
    status: global___Version.Status.ValueType
    """Status of the version."""
    tmpfs_size: builtins.int
    """Optional size of in-memory mounted /tmp directory in bytes."""
    concurrency: builtins.int
    """The maximum number of requests processed by a function instance at the same time"""
    @property
    def created_at(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """Creation timestamp for the version."""

    @property
    def resources(self) -> global___Resources:
        """Resources allocated to the version."""

    @property
    def execution_timeout(self) -> google.protobuf.duration_pb2.Duration:
        """Timeout for the execution of the version.

        If the timeout is exceeded, Cloud Functions responds with a 504 HTTP code.
        """

    @property
    def tags(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """Version tags. For details, see [Version tag](/docs/functions/concepts/function#tag)."""

    @property
    def environment(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]:
        """Environment settings for the version."""

    @property
    def connectivity(self) -> global___Connectivity:
        """Network access. If specified the version will be attached to specified network/subnet(s)."""

    @property
    def named_service_accounts(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]:
        """Additional service accounts to be used by the version."""

    @property
    def secrets(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Secret]:
        """Yandex Lockbox secrets to be used by the version."""

    @property
    def log_options(self) -> global___LogOptions:
        """Options for logging from the function"""

    @property
    def storage_mounts(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___StorageMount]:
        """S3 mounts to be used by the version."""

    @property
    def async_invocation_config(self) -> global___AsyncInvocationConfig:
        """Config for asynchronous invocations of the version"""

    @property
    def mounts(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Mount]:
        """Mounts to be used by the version."""

    @property
    def metadata_options(self) -> global___MetadataOptions:
        """Metadata options for the version."""

    def __init__(
        self,
        *,
        id: builtins.str = ...,
        function_id: builtins.str = ...,
        description: builtins.str = ...,
        created_at: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        runtime: builtins.str = ...,
        entrypoint: builtins.str = ...,
        resources: global___Resources | None = ...,
        execution_timeout: google.protobuf.duration_pb2.Duration | None = ...,
        service_account_id: builtins.str = ...,
        image_size: builtins.int = ...,
        status: global___Version.Status.ValueType = ...,
        tags: collections.abc.Iterable[builtins.str] | None = ...,
        environment: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        connectivity: global___Connectivity | None = ...,
        named_service_accounts: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        secrets: collections.abc.Iterable[global___Secret] | None = ...,
        log_options: global___LogOptions | None = ...,
        storage_mounts: collections.abc.Iterable[global___StorageMount] | None = ...,
        async_invocation_config: global___AsyncInvocationConfig | None = ...,
        tmpfs_size: builtins.int = ...,
        concurrency: builtins.int = ...,
        mounts: collections.abc.Iterable[global___Mount] | None = ...,
        metadata_options: global___MetadataOptions | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["async_invocation_config", b"async_invocation_config", "connectivity", b"connectivity", "created_at", b"created_at", "execution_timeout", b"execution_timeout", "log_options", b"log_options", "metadata_options", b"metadata_options", "resources", b"resources"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["async_invocation_config", b"async_invocation_config", "concurrency", b"concurrency", "connectivity", b"connectivity", "created_at", b"created_at", "description", b"description", "entrypoint", b"entrypoint", "environment", b"environment", "execution_timeout", b"execution_timeout", "function_id", b"function_id", "id", b"id", "image_size", b"image_size", "log_options", b"log_options", "metadata_options", b"metadata_options", "mounts", b"mounts", "named_service_accounts", b"named_service_accounts", "resources", b"resources", "runtime", b"runtime", "secrets", b"secrets", "service_account_id", b"service_account_id", "status", b"status", "storage_mounts", b"storage_mounts", "tags", b"tags", "tmpfs_size", b"tmpfs_size"]) -> None: ...

global___Version = Version

@typing.final
class Resources(google.protobuf.message.Message):
    """Resources allocated to a version."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MEMORY_FIELD_NUMBER: builtins.int
    memory: builtins.int
    """Amount of memory available to the version, specified in bytes, multiple of 128MB."""
    def __init__(
        self,
        *,
        memory: builtins.int = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["memory", b"memory"]) -> None: ...

global___Resources = Resources

@typing.final
class Package(google.protobuf.message.Message):
    """Version deployment package."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    BUCKET_NAME_FIELD_NUMBER: builtins.int
    OBJECT_NAME_FIELD_NUMBER: builtins.int
    SHA256_FIELD_NUMBER: builtins.int
    bucket_name: builtins.str
    """Name of the bucket that stores the code for the version."""
    object_name: builtins.str
    """Name of the object in the bucket that stores the code for the version."""
    sha256: builtins.str
    """SHA256 hash of the version deployment package."""
    def __init__(
        self,
        *,
        bucket_name: builtins.str = ...,
        object_name: builtins.str = ...,
        sha256: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["bucket_name", b"bucket_name", "object_name", b"object_name", "sha256", b"sha256"]) -> None: ...

global___Package = Package

@typing.final
class Connectivity(google.protobuf.message.Message):
    """Version connectivity specification."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NETWORK_ID_FIELD_NUMBER: builtins.int
    SUBNET_ID_FIELD_NUMBER: builtins.int
    network_id: builtins.str
    """Network the version will have access to.
    It's essential to specify network with subnets in all availability zones.
    """
    @property
    def subnet_id(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """Complete list of subnets (from the same network) the version can be attached to.
        It's essential to specify at least one subnet for each availability zones.
        """

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

global___Connectivity = Connectivity

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

    FUNCTION_ID_FIELD_NUMBER: builtins.int
    TAG_FIELD_NUMBER: builtins.int
    CREATED_AT_FIELD_NUMBER: builtins.int
    MODIFIED_AT_FIELD_NUMBER: builtins.int
    PROVISIONED_INSTANCES_COUNT_FIELD_NUMBER: builtins.int
    ZONE_INSTANCES_LIMIT_FIELD_NUMBER: builtins.int
    ZONE_REQUESTS_LIMIT_FIELD_NUMBER: builtins.int
    function_id: builtins.str
    """ID of the function that the scaling policy belongs to."""
    tag: builtins.str
    """Tag of the version that the scaling policy belongs to. For details, see [Version tag](/docs/functions/concepts/function#tag)."""
    provisioned_instances_count: builtins.int
    """Minimum guaranteed provisioned instances count for all zones in total.
    Billed separately.
    """
    zone_instances_limit: builtins.int
    """Upper limit for instance count in each zone.
    0 means no limit.
    """
    zone_requests_limit: builtins.int
    """Upper limit of requests count in each zone.
    0 means no limit.
    """
    @property
    def created_at(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """Creation timestamp for the scaling policy"""

    @property
    def modified_at(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """Modification timestamp for the scaling policy"""

    def __init__(
        self,
        *,
        function_id: builtins.str = ...,
        tag: builtins.str = ...,
        created_at: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        modified_at: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        provisioned_instances_count: builtins.int = ...,
        zone_instances_limit: builtins.int = ...,
        zone_requests_limit: builtins.int = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["created_at", b"created_at", "modified_at", b"modified_at"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["created_at", b"created_at", "function_id", b"function_id", "modified_at", b"modified_at", "provisioned_instances_count", b"provisioned_instances_count", "tag", b"tag", "zone_instances_limit", b"zone_instances_limit", "zone_requests_limit", b"zone_requests_limit"]) -> None: ...

global___ScalingPolicy = ScalingPolicy

@typing.final
class Secret(google.protobuf.message.Message):
    """Secret for serverless function."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ID_FIELD_NUMBER: builtins.int
    VERSION_ID_FIELD_NUMBER: builtins.int
    KEY_FIELD_NUMBER: builtins.int
    ENVIRONMENT_VARIABLE_FIELD_NUMBER: builtins.int
    id: builtins.str
    """ID of Yandex Lockbox secret."""
    version_id: builtins.str
    """ID of Yandex Lockbox version."""
    key: builtins.str
    """Key in secret's payload, which value to be delivered into function environment."""
    environment_variable: builtins.str
    """environment variable in which secret's value to be delivered."""
    def __init__(
        self,
        *,
        id: builtins.str = ...,
        version_id: builtins.str = ...,
        key: builtins.str = ...,
        environment_variable: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["environment_variable", b"environment_variable", "reference", b"reference"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["environment_variable", b"environment_variable", "id", b"id", "key", b"key", "reference", b"reference", "version_id", b"version_id"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["reference", b"reference"]) -> typing.Literal["environment_variable"] | None: ...

global___Secret = Secret

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

    DISABLED_FIELD_NUMBER: builtins.int
    LOG_GROUP_ID_FIELD_NUMBER: builtins.int
    FOLDER_ID_FIELD_NUMBER: builtins.int
    MIN_LEVEL_FIELD_NUMBER: builtins.int
    disabled: builtins.bool
    """Is logging from function disabled."""
    log_group_id: builtins.str
    """Entry should be written to log group resolved by ID."""
    folder_id: builtins.str
    """Entry should be written to default log group for specified folder."""
    min_level: yandex.cloud.logging.v1.log_entry_pb2.LogLevel.Level.ValueType
    """Minimum log entry level.

    See [LogLevel.Level] for details.
    """
    def __init__(
        self,
        *,
        disabled: builtins.bool = ...,
        log_group_id: builtins.str = ...,
        folder_id: builtins.str = ...,
        min_level: yandex.cloud.logging.v1.log_entry_pb2.LogLevel.Level.ValueType = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["destination", b"destination", "folder_id", b"folder_id", "log_group_id", b"log_group_id"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["destination", b"destination", "disabled", b"disabled", "folder_id", b"folder_id", "log_group_id", b"log_group_id", "min_level", b"min_level"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["destination", b"destination"]) -> typing.Literal["log_group_id", "folder_id"] | None: ...

global___LogOptions = LogOptions

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

    BUCKET_ID_FIELD_NUMBER: builtins.int
    PREFIX_FIELD_NUMBER: builtins.int
    MOUNT_POINT_NAME_FIELD_NUMBER: builtins.int
    READ_ONLY_FIELD_NUMBER: builtins.int
    bucket_id: builtins.str
    """S3 bucket name for mounting."""
    prefix: builtins.str
    """S3 bucket prefix for mounting."""
    mount_point_name: builtins.str
    """Mount point directory name (not path) for mounting."""
    read_only: builtins.bool
    """Is mount read only."""
    def __init__(
        self,
        *,
        bucket_id: builtins.str = ...,
        prefix: builtins.str = ...,
        mount_point_name: builtins.str = ...,
        read_only: builtins.bool = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["bucket_id", b"bucket_id", "mount_point_name", b"mount_point_name", "prefix", b"prefix", "read_only", b"read_only"]) -> None: ...

global___StorageMount = StorageMount

@typing.final
class Mount(google.protobuf.message.Message):
    """Mount contains an information about version's external storage mount"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    class _Mode:
        ValueType = typing.NewType("ValueType", builtins.int)
        V: typing_extensions.TypeAlias = ValueType

    class _ModeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Mount._Mode.ValueType], builtins.type):
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
        MODE_UNSPECIFIED: Mount._Mode.ValueType  # 0
        READ_ONLY: Mount._Mode.ValueType  # 1
        READ_WRITE: Mount._Mode.ValueType  # 2

    class Mode(_Mode, metaclass=_ModeEnumTypeWrapper): ...
    MODE_UNSPECIFIED: Mount.Mode.ValueType  # 0
    READ_ONLY: Mount.Mode.ValueType  # 1
    READ_WRITE: Mount.Mode.ValueType  # 2

    @typing.final
    class ObjectStorage(google.protobuf.message.Message):
        """ObjectStorage as a mount"""

        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        BUCKET_ID_FIELD_NUMBER: builtins.int
        PREFIX_FIELD_NUMBER: builtins.int
        bucket_id: builtins.str
        """ObjectStorage bucket name for mounting."""
        prefix: builtins.str
        """ObjectStorage bucket prefix for mounting."""
        def __init__(
            self,
            *,
            bucket_id: builtins.str = ...,
            prefix: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing.Literal["bucket_id", b"bucket_id", "prefix", b"prefix"]) -> None: ...

    @typing.final
    class DiskSpec(google.protobuf.message.Message):
        """Disk as a mount"""

        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        SIZE_FIELD_NUMBER: builtins.int
        BLOCK_SIZE_FIELD_NUMBER: builtins.int
        size: builtins.int
        """The size of disk for mount in bytes"""
        block_size: builtins.int
        """Optional block size of disk for mount in bytes"""
        def __init__(
            self,
            *,
            size: builtins.int = ...,
            block_size: builtins.int = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing.Literal["block_size", b"block_size", "size", b"size"]) -> None: ...

    NAME_FIELD_NUMBER: builtins.int
    MODE_FIELD_NUMBER: builtins.int
    OBJECT_STORAGE_FIELD_NUMBER: builtins.int
    EPHEMERAL_DISK_SPEC_FIELD_NUMBER: builtins.int
    name: builtins.str
    """Unique mount point name. Device will be mounted into /function/storage/<name>"""
    mode: global___Mount.Mode.ValueType
    """Mount's mode"""
    @property
    def object_storage(self) -> global___Mount.ObjectStorage:
        """Object storage mounts"""

    @property
    def ephemeral_disk_spec(self) -> global___Mount.DiskSpec:
        """Working disk (worker-local non-shared read-write NBS disk templates)"""

    def __init__(
        self,
        *,
        name: builtins.str = ...,
        mode: global___Mount.Mode.ValueType = ...,
        object_storage: global___Mount.ObjectStorage | None = ...,
        ephemeral_disk_spec: global___Mount.DiskSpec | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["ephemeral_disk_spec", b"ephemeral_disk_spec", "object_storage", b"object_storage", "target", b"target"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["ephemeral_disk_spec", b"ephemeral_disk_spec", "mode", b"mode", "name", b"name", "object_storage", b"object_storage", "target", b"target"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["target", b"target"]) -> typing.Literal["object_storage", "ephemeral_disk_spec"] | None: ...

global___Mount = Mount

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

    @typing.final
    class ResponseTarget(google.protobuf.message.Message):
        """Target to which a result of an invocation will be sent"""

        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        EMPTY_TARGET_FIELD_NUMBER: builtins.int
        YMQ_TARGET_FIELD_NUMBER: builtins.int
        @property
        def empty_target(self) -> global___EmptyTarget:
            """Target to ignore a result"""

        @property
        def ymq_target(self) -> global___YMQTarget:
            """Target to send a result to ymq"""

        def __init__(
            self,
            *,
            empty_target: global___EmptyTarget | None = ...,
            ymq_target: global___YMQTarget | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["empty_target", b"empty_target", "target", b"target", "ymq_target", b"ymq_target"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["empty_target", b"empty_target", "target", b"target", "ymq_target", b"ymq_target"]) -> None: ...
        def WhichOneof(self, oneof_group: typing.Literal["target", b"target"]) -> typing.Literal["empty_target", "ymq_target"] | None: ...

    RETRIES_COUNT_FIELD_NUMBER: builtins.int
    SUCCESS_TARGET_FIELD_NUMBER: builtins.int
    FAILURE_TARGET_FIELD_NUMBER: builtins.int
    SERVICE_ACCOUNT_ID_FIELD_NUMBER: builtins.int
    retries_count: builtins.int
    """Number of retries of version invocation"""
    service_account_id: builtins.str
    """Service account which can invoke version"""
    @property
    def success_target(self) -> global___AsyncInvocationConfig.ResponseTarget:
        """Target for successful result of the version's invocation"""

    @property
    def failure_target(self) -> global___AsyncInvocationConfig.ResponseTarget:
        """Target for unsuccessful result, if all retries failed"""

    def __init__(
        self,
        *,
        retries_count: builtins.int = ...,
        success_target: global___AsyncInvocationConfig.ResponseTarget | None = ...,
        failure_target: global___AsyncInvocationConfig.ResponseTarget | None = ...,
        service_account_id: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["failure_target", b"failure_target", "success_target", b"success_target"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["failure_target", b"failure_target", "retries_count", b"retries_count", "service_account_id", b"service_account_id", "success_target", b"success_target"]) -> None: ...

global___AsyncInvocationConfig = AsyncInvocationConfig

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

    QUEUE_ARN_FIELD_NUMBER: builtins.int
    SERVICE_ACCOUNT_ID_FIELD_NUMBER: builtins.int
    queue_arn: builtins.str
    """Queue ARN"""
    service_account_id: builtins.str
    """Service account which has write permission on the queue."""
    def __init__(
        self,
        *,
        queue_arn: builtins.str = ...,
        service_account_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["queue_arn", b"queue_arn", "service_account_id", b"service_account_id"]) -> None: ...

global___YMQTarget = YMQTarget

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

    def __init__(
        self,
    ) -> None: ...

global___EmptyTarget = EmptyTarget

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

    GCE_HTTP_ENDPOINT_FIELD_NUMBER: builtins.int
    AWS_V1_HTTP_ENDPOINT_FIELD_NUMBER: builtins.int
    gce_http_endpoint: global___MetadataOption.ValueType
    """Enabled access to GCE flavored metadata"""
    aws_v1_http_endpoint: global___MetadataOption.ValueType
    """Enabled access to AWS flavored metadata (IMDSv1)"""
    def __init__(
        self,
        *,
        gce_http_endpoint: global___MetadataOption.ValueType = ...,
        aws_v1_http_endpoint: global___MetadataOption.ValueType = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["aws_v1_http_endpoint", b"aws_v1_http_endpoint", "gce_http_endpoint", b"gce_http_endpoint"]) -> None: ...

global___MetadataOptions = MetadataOptions
