# Copyright (c) 2025-2026 Buf Technologies, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# Generated from google/protobuf/descriptor.proto. DO NOT EDIT.
# Generated by protoc-gen-py v0.1.1 with parameter "no_fmt_off".
# ruff: noqa: PGH004
# ruff: noqa

from __future__ import annotations

from typing import Literal, NoReturn, TYPE_CHECKING, TypeAlias

from protobuf import Enum
from protobuf._codegen import Message, boot, unset
from protobuf.wkt._mixin import FileDescriptorSetMixin

if TYPE_CHECKING:
    from protobuf import DescFile


_FileDescriptorSetFields: TypeAlias = Literal["file"]


class FileDescriptorSet(Message[_FileDescriptorSetFields], FileDescriptorSetMixin):
    """
    The protocol compiler can output a FileDescriptorSet containing the .proto
    files it parses.

    ```proto
    message google.protobuf.FileDescriptorSet
    ```

    Attributes:
        file:
            ```proto
            repeated google.protobuf.FileDescriptorProto file = 1;
            ```
    """

    __slots__ = ("file",)

    if TYPE_CHECKING:

        def __init__(self, *, file: list[FileDescriptorProto] | None = None) -> None:
            pass

        file: list[FileDescriptorProto]


_FileDescriptorProtoFields: TypeAlias = Literal[
    "name",
    "package",
    "dependency",
    "public_dependency",
    "weak_dependency",
    "option_dependency",
    "message_type",
    "enum_type",
    "service",
    "extension",
    "options",
    "source_code_info",
    "syntax",
    "edition",
]


class FileDescriptorProto(Message[_FileDescriptorProtoFields]):
    """
    Describes a complete .proto file.

    ```proto
    message google.protobuf.FileDescriptorProto
    ```

    Attributes:
        name:
            file name, relative to root of source tree

            ```proto
            optional string name = 1;
            ```
        package:
            e.g. "foo", "foo.bar", etc.

            ```proto
            optional string package = 2;
            ```
        dependency:
            Names of files imported by this file.

            ```proto
            repeated string dependency = 3;
            ```
        public_dependency:
            Indexes of the public imported files in the dependency list above.

            ```proto
            repeated int32 public_dependency = 10 [packed = false];
            ```
        weak_dependency:
            Indexes of the weak imported files in the dependency list.
            For Google-internal migration only. Do not use.

            ```proto
            repeated int32 weak_dependency = 11 [packed = false];
            ```
        option_dependency:
            Names of files imported by this file purely for the purpose of providing
            option extensions. These are excluded from the dependency list above.

            ```proto
            repeated string option_dependency = 15;
            ```
        message_type:
            All top-level definitions in this file.

            ```proto
            repeated google.protobuf.DescriptorProto message_type = 4;
            ```
        enum_type:
            ```proto
            repeated google.protobuf.EnumDescriptorProto enum_type = 5;
            ```
        service:
            ```proto
            repeated google.protobuf.ServiceDescriptorProto service = 6;
            ```
        extension:
            ```proto
            repeated google.protobuf.FieldDescriptorProto extension = 7;
            ```
        options:
            ```proto
            optional google.protobuf.FileOptions options = 8;
            ```
        source_code_info:
            This field contains optional information about the original source code.
            You may safely remove this entire field without harming runtime
            functionality of the descriptors -- the information is needed only by
            development tools.

            ```proto
            optional google.protobuf.SourceCodeInfo source_code_info = 9;
            ```
        syntax:
            The syntax of the proto file.
            The supported values are "proto2", "proto3", and "editions".

            If `edition` is present, this value must be "editions".
            WARNING: This field should only be used by protobuf plugins or special
            cases like the proto compiler. Other uses are discouraged and
            developers should rely on the protoreflect APIs for their client language.

            ```proto
            optional string syntax = 12;
            ```
        edition:
            The edition of the proto file.
            WARNING: This field should only be used by protobuf plugins or special
            cases like the proto compiler. Other uses are discouraged and
            developers should rely on the protoreflect APIs for their client language.

            ```proto
            optional google.protobuf.Edition edition = 14;
            ```
    """

    __slots__ = (
        "name",
        "package",
        "dependency",
        "public_dependency",
        "weak_dependency",
        "option_dependency",
        "message_type",
        "enum_type",
        "service",
        "extension",
        "options",
        "source_code_info",
        "syntax",
        "edition",
    )

    if TYPE_CHECKING:

        def __init__(
            self,
            *,
            name: str | None = None,
            package: str | None = None,
            dependency: list[str] | None = None,
            public_dependency: list[int] | None = None,
            weak_dependency: list[int] | None = None,
            option_dependency: list[str] | None = None,
            message_type: list[DescriptorProto] | None = None,
            enum_type: list[EnumDescriptorProto] | None = None,
            service: list[ServiceDescriptorProto] | None = None,
            extension: list[FieldDescriptorProto] | None = None,
            options: FileOptions | None = None,
            source_code_info: SourceCodeInfo | None = None,
            syntax: str | None = None,
            edition: Edition | None = None,
        ) -> None:
            pass

        name: str
        package: str
        dependency: list[str]
        public_dependency: list[int]
        weak_dependency: list[int]
        option_dependency: list[str]
        message_type: list[DescriptorProto]
        enum_type: list[EnumDescriptorProto]
        service: list[ServiceDescriptorProto]
        extension: list[FieldDescriptorProto]
        options: FileOptions | None
        source_code_info: SourceCodeInfo | None
        syntax: str
        edition: Edition


_DescriptorProtoFields: TypeAlias = Literal[
    "name",
    "field",
    "extension",
    "nested_type",
    "enum_type",
    "extension_range",
    "oneof_decl",
    "options",
    "reserved_range",
    "reserved_name",
    "visibility",
]


class DescriptorProto(Message[_DescriptorProtoFields]):
    """
    Describes a message type.

    ```proto
    message google.protobuf.DescriptorProto
    ```

    Attributes:
        name:
            ```proto
            optional string name = 1;
            ```
        field:
            ```proto
            repeated google.protobuf.FieldDescriptorProto field = 2;
            ```
        extension:
            ```proto
            repeated google.protobuf.FieldDescriptorProto extension = 6;
            ```
        nested_type:
            ```proto
            repeated google.protobuf.DescriptorProto nested_type = 3;
            ```
        enum_type:
            ```proto
            repeated google.protobuf.EnumDescriptorProto enum_type = 4;
            ```
        extension_range:
            ```proto
            repeated google.protobuf.DescriptorProto.ExtensionRange extension_range = 5;
            ```
        oneof_decl:
            ```proto
            repeated google.protobuf.OneofDescriptorProto oneof_decl = 8;
            ```
        options:
            ```proto
            optional google.protobuf.MessageOptions options = 7;
            ```
        reserved_range:
            ```proto
            repeated google.protobuf.DescriptorProto.ReservedRange reserved_range = 9;
            ```
        reserved_name:
            Reserved field names, which may not be used by fields in the same message.
            A given name may only be reserved once.

            ```proto
            repeated string reserved_name = 10;
            ```
        visibility:
            Support for `export` and `local` keywords on enums.

            ```proto
            optional google.protobuf.SymbolVisibility visibility = 11;
            ```
    """

    __slots__ = (
        "name",
        "field",
        "extension",
        "nested_type",
        "enum_type",
        "extension_range",
        "oneof_decl",
        "options",
        "reserved_range",
        "reserved_name",
        "visibility",
    )

    if TYPE_CHECKING:

        def __init__(
            self,
            *,
            name: str | None = None,
            field: list[FieldDescriptorProto] | None = None,
            extension: list[FieldDescriptorProto] | None = None,
            nested_type: list[DescriptorProto] | None = None,
            enum_type: list[EnumDescriptorProto] | None = None,
            extension_range: list[DescriptorProto.ExtensionRange] | None = None,
            oneof_decl: list[OneofDescriptorProto] | None = None,
            options: MessageOptions | None = None,
            reserved_range: list[DescriptorProto.ReservedRange] | None = None,
            reserved_name: list[str] | None = None,
            visibility: SymbolVisibility | None = None,
        ) -> None:
            pass

        name: str
        field: list[FieldDescriptorProto]
        extension: list[FieldDescriptorProto]
        nested_type: list[DescriptorProto]
        enum_type: list[EnumDescriptorProto]
        extension_range: list[DescriptorProto.ExtensionRange]
        oneof_decl: list[OneofDescriptorProto]
        options: MessageOptions | None
        reserved_range: list[DescriptorProto.ReservedRange]
        reserved_name: list[str]
        visibility: SymbolVisibility

    _ExtensionRangeFields: TypeAlias = Literal["start", "end", "options"]

    class ExtensionRange(Message[_ExtensionRangeFields]):
        """
        ```proto
        message google.protobuf.DescriptorProto.ExtensionRange
        ```

        Attributes:
            start:
                Inclusive.

                ```proto
                optional int32 start = 1;
                ```
            end:
                Exclusive.

                ```proto
                optional int32 end = 2;
                ```
            options:
                ```proto
                optional google.protobuf.ExtensionRangeOptions options = 3;
                ```
        """

        __slots__ = ("start", "end", "options")

        if TYPE_CHECKING:

            def __init__(
                self,
                *,
                start: int | None = None,
                end: int | None = None,
                options: ExtensionRangeOptions | None = None,
            ) -> None:
                pass

            start: int
            end: int
            options: ExtensionRangeOptions | None

    _ReservedRangeFields: TypeAlias = Literal["start", "end"]

    class ReservedRange(Message[_ReservedRangeFields]):
        """
        Range of reserved tag numbers. Reserved tag numbers may not be used by
        fields or extension ranges in the same message. Reserved ranges may
        not overlap.

        ```proto
        message google.protobuf.DescriptorProto.ReservedRange
        ```

        Attributes:
            start:
                Inclusive.

                ```proto
                optional int32 start = 1;
                ```
            end:
                Exclusive.

                ```proto
                optional int32 end = 2;
                ```
        """

        __slots__ = ("start", "end")

        if TYPE_CHECKING:

            def __init__(
                self, *, start: int | None = None, end: int | None = None
            ) -> None:
                pass

            start: int
            end: int


_ExtensionRangeOptionsFields: TypeAlias = Literal[
    "uninterpreted_option", "declaration", "features", "verification"
]


class ExtensionRangeOptions(Message[_ExtensionRangeOptionsFields]):
    """
    ```proto
    message google.protobuf.ExtensionRangeOptions
    ```

    Attributes:
        uninterpreted_option:
            The parser stores options it doesn't recognize here. See above.

            ```proto
            repeated google.protobuf.UninterpretedOption uninterpreted_option = 999;
            ```
        declaration:
            For external users: DO NOT USE. We are in the process of open sourcing
            extension declaration and executing internal cleanups before it can be
            used externally.

            ```proto
            repeated google.protobuf.ExtensionRangeOptions.Declaration declaration = 2;
            ```
        features:
            Any features defined in the specific edition.

            ```proto
            optional google.protobuf.FeatureSet features = 50;
            ```
        verification:
            The verification state of the range.
            TODO: flip the default to DECLARATION once all empty ranges
            are marked as UNVERIFIED.

            ```proto
            optional google.protobuf.ExtensionRangeOptions.VerificationState verification = 3 [default = UNVERIFIED];
            ```
    """

    __slots__ = ("uninterpreted_option", "declaration", "features", "verification")

    if TYPE_CHECKING:

        def __init__(
            self,
            *,
            uninterpreted_option: list[UninterpretedOption] | None = None,
            declaration: list[ExtensionRangeOptions.Declaration] | None = None,
            features: FeatureSet | None = None,
            verification: ExtensionRangeOptions.VerificationState | None = None,
        ) -> None:
            pass

        uninterpreted_option: list[UninterpretedOption]
        declaration: list[ExtensionRangeOptions.Declaration]
        features: FeatureSet | None
        verification: ExtensionRangeOptions.VerificationState

    _DeclarationFields: TypeAlias = Literal[
        "number", "full_name", "type", "reserved", "repeated"
    ]

    class Declaration(Message[_DeclarationFields]):
        """
        ```proto
        message google.protobuf.ExtensionRangeOptions.Declaration
        ```

        Attributes:
            number:
                The extension number declared within the extension range.

                ```proto
                optional int32 number = 1;
                ```
            full_name:
                The fully-qualified name of the extension field. There must be a leading
                dot in front of the full name.

                ```proto
                optional string full_name = 2;
                ```
            type:
                The fully-qualified type name of the extension field. Unlike
                Metadata.type, Declaration.type must have a leading dot for messages
                and enums.

                ```proto
                optional string type = 3;
                ```
            reserved:
                If true, indicates that the number is reserved in the extension range,
                and any extension field with the number will fail to compile. Set this
                when a declared extension field is deleted.

                ```proto
                optional bool reserved = 5;
                ```
            repeated:
                If true, indicates that the extension must be defined as repeated.
                Otherwise the extension must be defined as optional.

                ```proto
                optional bool repeated = 6;
                ```
        """

        __slots__ = ("number", "full_name", "type", "reserved", "repeated")

        if TYPE_CHECKING:

            def __init__(
                self,
                *,
                number: int | None = None,
                full_name: str | None = None,
                type: str | None = None,
                reserved: bool | None = None,
                repeated: bool | None = None,
            ) -> None:
                pass

            number: int
            full_name: str
            type: str
            reserved: bool
            repeated: bool

    class VerificationState(Enum):
        """
        The verification state of the extension range.

        ```proto
        enum google.protobuf.ExtensionRangeOptions.VerificationState
        ```

        Attributes:
            DECLARATION:
                All the extensions of the range must be declared.

                ```proto
                DECLARATION = 0
                ```
            UNVERIFIED:
                ```proto
                UNVERIFIED = 1
                ```
        """

        DECLARATION = 0
        UNVERIFIED = 1


_FieldDescriptorProtoFields: TypeAlias = Literal[
    "name",
    "number",
    "label",
    "type",
    "type_name",
    "extendee",
    "default_value",
    "oneof_index",
    "json_name",
    "options",
    "proto3_optional",
]


class FieldDescriptorProto(Message[_FieldDescriptorProtoFields]):
    """
    Describes a field within a message.

    ```proto
    message google.protobuf.FieldDescriptorProto
    ```

    Attributes:
        name:
            ```proto
            optional string name = 1;
            ```
        number:
            ```proto
            optional int32 number = 3;
            ```
        label:
            ```proto
            optional google.protobuf.FieldDescriptorProto.Label label = 4;
            ```
        type:
            If type_name is set, this need not be set.  If both this and type_name
            are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP.

            ```proto
            optional google.protobuf.FieldDescriptorProto.Type type = 5;
            ```
        type_name:
            For message and enum types, this is the name of the type.  If the name
            starts with a '.', it is fully-qualified.  Otherwise, C++-like scoping
            rules are used to find the type (i.e. first the nested types within this
            message are searched, then within the parent, on up to the root
            namespace).

            ```proto
            optional string type_name = 6;
            ```
        extendee:
            For extensions, this is the name of the type being extended.  It is
            resolved in the same manner as type_name.

            ```proto
            optional string extendee = 2;
            ```
        default_value:
            For numeric types, contains the original text representation of the value.
            For booleans, "true" or "false".
            For strings, contains the default text contents (not escaped in any way).
            For bytes, contains the C escaped value.  All bytes >= 128 are escaped.

            ```proto
            optional string default_value = 7;
            ```
        oneof_index:
            If set, gives the index of a oneof in the containing type's oneof_decl
            list.  This field is a member of that oneof.

            ```proto
            optional int32 oneof_index = 9;
            ```
        json_name:
            JSON name of this field. The value is set by protocol compiler. If the
            user has set a "json_name" option on this field, that option's value
            will be used. Otherwise, it's deduced from the field's name by converting
            it to camelCase.

            ```proto
            optional string json_name = 10;
            ```
        options:
            ```proto
            optional google.protobuf.FieldOptions options = 8;
            ```
        proto3_optional:
            If true, this is a proto3 "optional". When a proto3 field is optional, it
            tracks presence regardless of field type.

            When proto3_optional is true, this field must belong to a oneof to signal
            to old proto3 clients that presence is tracked for this field. This oneof
            is known as a "synthetic" oneof, and this field must be its sole member
            (each proto3 optional field gets its own synthetic oneof). Synthetic oneofs
            exist in the descriptor only, and do not generate any API. Synthetic oneofs
            must be ordered after all "real" oneofs.

            For message fields, proto3_optional doesn't create any semantic change,
            since non-repeated message fields always track presence. However it still
            indicates the semantic detail of whether the user wrote "optional" or not.
            This can be useful for round-tripping the .proto file. For consistency we
            give message fields a synthetic oneof also, even though it is not required
            to track presence. This is especially important because the parser can't
            tell if a field is a message or an enum, so it must always create a
            synthetic oneof.

            Proto2 optional fields do not set this flag, because they already indicate
            optional with `LABEL_OPTIONAL`.

            ```proto
            optional bool proto3_optional = 17;
            ```
    """

    __slots__ = (
        "name",
        "number",
        "label",
        "type",
        "type_name",
        "extendee",
        "default_value",
        "oneof_index",
        "json_name",
        "options",
        "proto3_optional",
    )

    if TYPE_CHECKING:

        def __init__(
            self,
            *,
            name: str | None = None,
            number: int | None = None,
            label: FieldDescriptorProto.Label | None = None,
            type: FieldDescriptorProto.Type | None = None,
            type_name: str | None = None,
            extendee: str | None = None,
            default_value: str | None = None,
            oneof_index: int | None = None,
            json_name: str | None = None,
            options: FieldOptions | None = None,
            proto3_optional: bool | None = None,
        ) -> None:
            pass

        name: str
        number: int
        label: FieldDescriptorProto.Label
        type: FieldDescriptorProto.Type
        type_name: str
        extendee: str
        default_value: str
        oneof_index: int
        json_name: str
        options: FieldOptions | None
        proto3_optional: bool

    class Type(Enum):
        """
        ```proto
        enum google.protobuf.FieldDescriptorProto.Type
        ```

        Attributes:
            DOUBLE:
                0 is reserved for errors.
                Order is weird for historical reasons.

                ```proto
                TYPE_DOUBLE = 1
                ```
            FLOAT:
                ```proto
                TYPE_FLOAT = 2
                ```
            INT64:
                Not ZigZag encoded.  Negative numbers take 10 bytes.  Use TYPE_SINT64 if
                negative values are likely.

                ```proto
                TYPE_INT64 = 3
                ```
            UINT64:
                ```proto
                TYPE_UINT64 = 4
                ```
            INT32:
                Not ZigZag encoded.  Negative numbers take 10 bytes.  Use TYPE_SINT32 if
                negative values are likely.

                ```proto
                TYPE_INT32 = 5
                ```
            FIXED64:
                ```proto
                TYPE_FIXED64 = 6
                ```
            FIXED32:
                ```proto
                TYPE_FIXED32 = 7
                ```
            BOOL:
                ```proto
                TYPE_BOOL = 8
                ```
            STRING:
                ```proto
                TYPE_STRING = 9
                ```
            GROUP:
                Tag-delimited aggregate.
                Group type is deprecated and not supported after google.protobuf. However, Proto3
                implementations should still be able to parse the group wire format and
                treat group fields as unknown fields.  In Editions, the group wire format
                can be enabled via the `message_encoding` feature.

                ```proto
                TYPE_GROUP = 10
                ```
            MESSAGE:
                Length-delimited aggregate.

                ```proto
                TYPE_MESSAGE = 11
                ```
            BYTES:
                New in version 2.

                ```proto
                TYPE_BYTES = 12
                ```
            UINT32:
                ```proto
                TYPE_UINT32 = 13
                ```
            ENUM:
                ```proto
                TYPE_ENUM = 14
                ```
            SFIXED32:
                ```proto
                TYPE_SFIXED32 = 15
                ```
            SFIXED64:
                ```proto
                TYPE_SFIXED64 = 16
                ```
            SINT32:
                Uses ZigZag encoding.

                ```proto
                TYPE_SINT32 = 17
                ```
            SINT64:
                Uses ZigZag encoding.

                ```proto
                TYPE_SINT64 = 18
                ```
        """

        DOUBLE = 1
        FLOAT = 2
        INT64 = 3
        UINT64 = 4
        INT32 = 5
        FIXED64 = 6
        FIXED32 = 7
        BOOL = 8
        STRING = 9
        GROUP = 10
        MESSAGE = 11
        BYTES = 12
        UINT32 = 13
        ENUM = 14
        SFIXED32 = 15
        SFIXED64 = 16
        SINT32 = 17
        SINT64 = 18

    class Label(Enum):
        """
        ```proto
        enum google.protobuf.FieldDescriptorProto.Label
        ```

        Attributes:
            OPTIONAL:
                0 is reserved for errors

                ```proto
                LABEL_OPTIONAL = 1
                ```
            REPEATED:
                ```proto
                LABEL_REPEATED = 3
                ```
            REQUIRED:
                The required label is only allowed in google.protobuf.  In proto3 and Editions
                it's explicitly prohibited.  In Editions, the `field_presence` feature
                can be used to get this behavior.

                ```proto
                LABEL_REQUIRED = 2
                ```
        """

        OPTIONAL = 1
        REPEATED = 3
        REQUIRED = 2


_OneofDescriptorProtoFields: TypeAlias = Literal["name", "options"]


class OneofDescriptorProto(Message[_OneofDescriptorProtoFields]):
    """
    Describes a oneof.

    ```proto
    message google.protobuf.OneofDescriptorProto
    ```

    Attributes:
        name:
            ```proto
            optional string name = 1;
            ```
        options:
            ```proto
            optional google.protobuf.OneofOptions options = 2;
            ```
    """

    __slots__ = ("name", "options")

    if TYPE_CHECKING:

        def __init__(
            self, *, name: str | None = None, options: OneofOptions | None = None
        ) -> None:
            pass

        name: str
        options: OneofOptions | None


_EnumDescriptorProtoFields: TypeAlias = Literal[
    "name", "value", "options", "reserved_range", "reserved_name", "visibility"
]


class EnumDescriptorProto(Message[_EnumDescriptorProtoFields]):
    """
    Describes an enum type.

    ```proto
    message google.protobuf.EnumDescriptorProto
    ```

    Attributes:
        name:
            ```proto
            optional string name = 1;
            ```
        value:
            ```proto
            repeated google.protobuf.EnumValueDescriptorProto value = 2;
            ```
        options:
            ```proto
            optional google.protobuf.EnumOptions options = 3;
            ```
        reserved_range:
            Range of reserved numeric values. Reserved numeric values may not be used
            by enum values in the same enum declaration. Reserved ranges may not
            overlap.

            ```proto
            repeated google.protobuf.EnumDescriptorProto.EnumReservedRange reserved_range = 4;
            ```
        reserved_name:
            Reserved enum value names, which may not be reused. A given name may only
            be reserved once.

            ```proto
            repeated string reserved_name = 5;
            ```
        visibility:
            Support for `export` and `local` keywords on enums.

            ```proto
            optional google.protobuf.SymbolVisibility visibility = 6;
            ```
    """

    __slots__ = (
        "name",
        "value",
        "options",
        "reserved_range",
        "reserved_name",
        "visibility",
    )

    if TYPE_CHECKING:

        def __init__(
            self,
            *,
            name: str | None = None,
            value: list[EnumValueDescriptorProto] | None = None,
            options: EnumOptions | None = None,
            reserved_range: list[EnumDescriptorProto.EnumReservedRange] | None = None,
            reserved_name: list[str] | None = None,
            visibility: SymbolVisibility | None = None,
        ) -> None:
            pass

        name: str
        value: list[EnumValueDescriptorProto]
        options: EnumOptions | None
        reserved_range: list[EnumDescriptorProto.EnumReservedRange]
        reserved_name: list[str]
        visibility: SymbolVisibility

    _EnumReservedRangeFields: TypeAlias = Literal["start", "end"]

    class EnumReservedRange(Message[_EnumReservedRangeFields]):
        """
        Range of reserved numeric values. Reserved values may not be used by
        entries in the same enum. Reserved ranges may not overlap.

        Note that this is distinct from DescriptorProto.ReservedRange in that it
        is inclusive such that it can appropriately represent the entire int32
        domain.

        ```proto
        message google.protobuf.EnumDescriptorProto.EnumReservedRange
        ```

        Attributes:
            start:
                Inclusive.

                ```proto
                optional int32 start = 1;
                ```
            end:
                Inclusive.

                ```proto
                optional int32 end = 2;
                ```
        """

        __slots__ = ("start", "end")

        if TYPE_CHECKING:

            def __init__(
                self, *, start: int | None = None, end: int | None = None
            ) -> None:
                pass

            start: int
            end: int


_EnumValueDescriptorProtoFields: TypeAlias = Literal["name", "number", "options"]


class EnumValueDescriptorProto(Message[_EnumValueDescriptorProtoFields]):
    """
    Describes a value within an enum.

    ```proto
    message google.protobuf.EnumValueDescriptorProto
    ```

    Attributes:
        name:
            ```proto
            optional string name = 1;
            ```
        number:
            ```proto
            optional int32 number = 2;
            ```
        options:
            ```proto
            optional google.protobuf.EnumValueOptions options = 3;
            ```
    """

    __slots__ = ("name", "number", "options")

    if TYPE_CHECKING:

        def __init__(
            self,
            *,
            name: str | None = None,
            number: int | None = None,
            options: EnumValueOptions | None = None,
        ) -> None:
            pass

        name: str
        number: int
        options: EnumValueOptions | None


_ServiceDescriptorProtoFields: TypeAlias = Literal["name", "method", "options"]


class ServiceDescriptorProto(Message[_ServiceDescriptorProtoFields]):
    """
    Describes a service.

    ```proto
    message google.protobuf.ServiceDescriptorProto
    ```

    Attributes:
        name:
            ```proto
            optional string name = 1;
            ```
        method:
            ```proto
            repeated google.protobuf.MethodDescriptorProto method = 2;
            ```
        options:
            ```proto
            optional google.protobuf.ServiceOptions options = 3;
            ```
    """

    __slots__ = ("name", "method", "options")

    if TYPE_CHECKING:

        def __init__(
            self,
            *,
            name: str | None = None,
            method: list[MethodDescriptorProto] | None = None,
            options: ServiceOptions | None = None,
        ) -> None:
            pass

        name: str
        method: list[MethodDescriptorProto]
        options: ServiceOptions | None


_MethodDescriptorProtoFields: TypeAlias = Literal[
    "name",
    "input_type",
    "output_type",
    "options",
    "client_streaming",
    "server_streaming",
]


class MethodDescriptorProto(Message[_MethodDescriptorProtoFields]):
    """
    Describes a method of a service.

    ```proto
    message google.protobuf.MethodDescriptorProto
    ```

    Attributes:
        name:
            ```proto
            optional string name = 1;
            ```
        input_type:
            Input and output type names.  These are resolved in the same way as
            FieldDescriptorProto.type_name, but must refer to a message type.

            ```proto
            optional string input_type = 2;
            ```
        output_type:
            ```proto
            optional string output_type = 3;
            ```
        options:
            ```proto
            optional google.protobuf.MethodOptions options = 4;
            ```
        client_streaming:
            Identifies if client streams multiple client messages

            ```proto
            optional bool client_streaming = 5 [default = false];
            ```
        server_streaming:
            Identifies if server streams multiple server messages

            ```proto
            optional bool server_streaming = 6 [default = false];
            ```
    """

    __slots__ = (
        "name",
        "input_type",
        "output_type",
        "options",
        "client_streaming",
        "server_streaming",
    )

    if TYPE_CHECKING:

        def __init__(
            self,
            *,
            name: str | None = None,
            input_type: str | None = None,
            output_type: str | None = None,
            options: MethodOptions | None = None,
            client_streaming: bool | None = None,
            server_streaming: bool | None = None,
        ) -> None:
            pass

        name: str
        input_type: str
        output_type: str
        options: MethodOptions | None
        client_streaming: bool
        server_streaming: bool


_FileOptionsFields: TypeAlias = Literal[
    "java_package",
    "java_outer_classname",
    "java_multiple_files",
    "java_generate_equals_and_hash",
    "java_string_check_utf8",
    "optimize_for",
    "go_package",
    "cc_generic_services",
    "java_generic_services",
    "py_generic_services",
    "deprecated",
    "cc_enable_arenas",
    "objc_class_prefix",
    "csharp_namespace",
    "swift_prefix",
    "php_class_prefix",
    "php_namespace",
    "php_metadata_namespace",
    "ruby_package",
    "features",
    "uninterpreted_option",
]


class FileOptions(Message[_FileOptionsFields]):
    """
    ```proto
    message google.protobuf.FileOptions
    ```

    Attributes:
        java_package:
            Sets the Java package where classes generated from this .proto will be
            placed.  By default, the proto package is used, but this is often
            inappropriate because proto packages do not normally start with backwards
            domain names.

            ```proto
            optional string java_package = 1;
            ```
        java_outer_classname:
            Controls the name of the wrapper Java class generated for the .proto file.
            That class will always contain the .proto file's getDescriptor() method as
            well as any top-level extensions defined in the .proto file.
            If java_multiple_files is disabled, then all the other classes from the
            .proto file will be nested inside the single wrapper outer class.

            ```proto
            optional string java_outer_classname = 8;
            ```
        java_multiple_files:
            If enabled, then the Java code generator will generate a separate .java
            file for each top-level message, enum, and service defined in the .proto
            file.  Thus, these types will *not* be nested inside the wrapper class
            named by java_outer_classname.  However, the wrapper class will still be
            generated to contain the file's getDescriptor() method as well as any
            top-level extensions defined in the file.

            ```proto
            optional bool java_multiple_files = 10 [default = false];
            ```
        java_generate_equals_and_hash:
            This option does nothing.

            ```proto
            optional bool java_generate_equals_and_hash = 20 [deprecated = true];
            ```
        java_string_check_utf8:
            A proto2 file can set this to true to opt in to UTF-8 checking for Java,
            which will throw an exception if invalid UTF-8 is parsed from the wire or
            assigned to a string field.

            TODO: clarify exactly what kinds of field types this option
            applies to, and update these docs accordingly.

            Proto3 files already perform these checks. Setting the option explicitly to
            false has no effect: it cannot be used to opt proto3 files out of UTF-8
            checks.

            ```proto
            optional bool java_string_check_utf8 = 27 [default = false];
            ```
        optimize_for:
            ```proto
            optional google.protobuf.FileOptions.OptimizeMode optimize_for = 9 [default = SPEED];
            ```
        go_package:
            Sets the Go package where structs generated from this .proto will be
            placed. If omitted, the Go package will be derived from the following:
              - The basename of the package import path, if provided.
              - Otherwise, the package statement in the .proto file, if present.
              - Otherwise, the basename of the .proto file, without extension.

            ```proto
            optional string go_package = 11;
            ```
        cc_generic_services:
            Should generic services be generated in each language?  "Generic" services
            are not specific to any particular RPC system.  They are generated by the
            main code generators in each language (without additional plugins).
            Generic services were the only kind of service generation supported by
            early versions of google.protobuf.

            Generic services are now considered deprecated in favor of using plugins
            that generate code specific to your particular RPC system.  Therefore,
            these default to false.  Old code which depends on generic services should
            explicitly set them to true.

            ```proto
            optional bool cc_generic_services = 16 [default = false];
            ```
        java_generic_services:
            ```proto
            optional bool java_generic_services = 17 [default = false];
            ```
        py_generic_services:
            ```proto
            optional bool py_generic_services = 18 [default = false];
            ```
        deprecated:
            Is this file deprecated?
            Depending on the target platform, this can emit Deprecated annotations
            for everything in the file, or it will be completely ignored; in the very
            least, this is a formalization for deprecating files.

            ```proto
            optional bool deprecated = 23 [default = false];
            ```
        cc_enable_arenas:
            Enables the use of arenas for the proto messages in this file. This applies
            only to generated classes for C++.

            ```proto
            optional bool cc_enable_arenas = 31 [default = true];
            ```
        objc_class_prefix:
            Sets the objective c class prefix which is prepended to all objective c
            generated classes from this .proto. There is no default.

            ```proto
            optional string objc_class_prefix = 36;
            ```
        csharp_namespace:
            Namespace for generated classes; defaults to the package.

            ```proto
            optional string csharp_namespace = 37;
            ```
        swift_prefix:
            By default Swift generators will take the proto package and CamelCase it
            replacing '.' with underscore and use that to prefix the types/symbols
            defined. When this options is provided, they will use this value instead
            to prefix the types/symbols defined.

            ```proto
            optional string swift_prefix = 39;
            ```
        php_class_prefix:
            Sets the php class prefix which is prepended to all php generated classes
            from this .proto. Default is empty.

            ```proto
            optional string php_class_prefix = 40;
            ```
        php_namespace:
            Use this option to change the namespace of php generated classes. Default
            is empty. When this option is empty, the package name will be used for
            determining the namespace.

            ```proto
            optional string php_namespace = 41;
            ```
        php_metadata_namespace:
            Use this option to change the namespace of php generated metadata classes.
            Default is empty. When this option is empty, the proto file name will be
            used for determining the namespace.

            ```proto
            optional string php_metadata_namespace = 44;
            ```
        ruby_package:
            Use this option to change the package of ruby generated classes. Default
            is empty. When this option is not set, the package name will be used for
            determining the ruby package.

            ```proto
            optional string ruby_package = 45;
            ```
        features:
            Any features defined in the specific edition.
            WARNING: This field should only be used by protobuf plugins or special
            cases like the proto compiler. Other uses are discouraged and
            developers should rely on the protoreflect APIs for their client language.

            ```proto
            optional google.protobuf.FeatureSet features = 50;
            ```
        uninterpreted_option:
            The parser stores options it doesn't recognize here.
            See the documentation for the "Options" section above.

            ```proto
            repeated google.protobuf.UninterpretedOption uninterpreted_option = 999;
            ```
    """

    __slots__ = (
        "java_package",
        "java_outer_classname",
        "java_multiple_files",
        "java_generate_equals_and_hash",
        "java_string_check_utf8",
        "optimize_for",
        "go_package",
        "cc_generic_services",
        "java_generic_services",
        "py_generic_services",
        "deprecated",
        "cc_enable_arenas",
        "objc_class_prefix",
        "csharp_namespace",
        "swift_prefix",
        "php_class_prefix",
        "php_namespace",
        "php_metadata_namespace",
        "ruby_package",
        "features",
        "uninterpreted_option",
    )

    if TYPE_CHECKING:

        def __init__(
            self,
            *,
            java_package: str | None = None,
            java_outer_classname: str | None = None,
            java_multiple_files: bool | None = None,
            java_generate_equals_and_hash: bool | None = None,
            java_string_check_utf8: bool | None = None,
            optimize_for: FileOptions.OptimizeMode | None = None,
            go_package: str | None = None,
            cc_generic_services: bool | None = None,
            java_generic_services: bool | None = None,
            py_generic_services: bool | None = None,
            deprecated: bool | None = None,
            cc_enable_arenas: bool | None = None,
            objc_class_prefix: str | None = None,
            csharp_namespace: str | None = None,
            swift_prefix: str | None = None,
            php_class_prefix: str | None = None,
            php_namespace: str | None = None,
            php_metadata_namespace: str | None = None,
            ruby_package: str | None = None,
            features: FeatureSet | None = None,
            uninterpreted_option: list[UninterpretedOption] | None = None,
        ) -> None:
            pass

        java_package: str
        java_outer_classname: str
        java_multiple_files: bool
        java_generate_equals_and_hash: bool
        java_string_check_utf8: bool
        optimize_for: FileOptions.OptimizeMode
        go_package: str
        cc_generic_services: bool
        java_generic_services: bool
        py_generic_services: bool
        deprecated: bool
        cc_enable_arenas: bool
        objc_class_prefix: str
        csharp_namespace: str
        swift_prefix: str
        php_class_prefix: str
        php_namespace: str
        php_metadata_namespace: str
        ruby_package: str
        features: FeatureSet | None
        uninterpreted_option: list[UninterpretedOption]

    class OptimizeMode(Enum):
        """
        Generated classes can be optimized for speed or code size.

        ```proto
        enum google.protobuf.FileOptions.OptimizeMode
        ```

        Attributes:
            SPEED:
                Generate complete code for parsing, serialization,

                ```proto
                SPEED = 1
                ```
            CODE_SIZE:
                etc.

                Use ReflectionOps to implement these methods.

                ```proto
                CODE_SIZE = 2
                ```
            LITE_RUNTIME:
                Generate code using MessageLite and the lite runtime.

                ```proto
                LITE_RUNTIME = 3
                ```
        """

        SPEED = 1
        CODE_SIZE = 2
        LITE_RUNTIME = 3


_MessageOptionsFields: TypeAlias = Literal[
    "message_set_wire_format",
    "no_standard_descriptor_accessor",
    "deprecated",
    "map_entry",
    "deprecated_legacy_json_field_conflicts",
    "features",
    "uninterpreted_option",
]


class MessageOptions(Message[_MessageOptionsFields]):
    """
    ```proto
    message google.protobuf.MessageOptions
    ```

    Attributes:
        message_set_wire_format:
            Set true to use the old proto1 MessageSet wire format for extensions.
            This is provided for backwards-compatibility with the MessageSet wire
            format.  You should not use this for any other reason:  It's less
            efficient, has fewer features, and is more complicated.

            The message must be defined exactly as follows:
              message Foo {
                option message_set_wire_format = true;
                extensions 4 to max;
              }
            Note that the message cannot have any defined fields; MessageSets only
            have extensions.

            All extensions of your type must be singular messages; e.g. they cannot
            be int32s, enums, or repeated messages.

            Because this is an option, the above two restrictions are not enforced by
            the protocol compiler.

            ```proto
            optional bool message_set_wire_format = 1 [default = false];
            ```
        no_standard_descriptor_accessor:
            Disables the generation of the standard "descriptor()" accessor, which can
            conflict with a field of the same name.  This is meant to make migration
            from proto1 easier; new code should avoid fields named "descriptor".

            ```proto
            optional bool no_standard_descriptor_accessor = 2 [default = false];
            ```
        deprecated:
            Is this message deprecated?
            Depending on the target platform, this can emit Deprecated annotations
            for the message, or it will be completely ignored; in the very least,
            this is a formalization for deprecating messages.

            ```proto
            optional bool deprecated = 3 [default = false];
            ```
        map_entry:
            Whether the message is an automatically generated map entry type for the
            maps field.

            For maps fields:
                map<KeyType, ValueType> map_field = 1;
            The parsed descriptor looks like:
                message MapFieldEntry {
                    option map_entry = true;
                    optional KeyType key = 1;
                    optional ValueType value = 2;
                }
                repeated MapFieldEntry map_field = 1;

            Implementations may choose not to generate the map_entry=true message, but
            use a native map in the target language to hold the keys and values.
            The reflection APIs in such implementations still need to work as
            if the field is a repeated message field.

            NOTE: Do not set the option in .proto files. Always use the maps syntax
            instead. The option should only be implicitly set by the proto compiler
            parser.

            ```proto
            optional bool map_entry = 7;
            ```
        deprecated_legacy_json_field_conflicts:
            Enable the legacy handling of JSON field name conflicts.  This lowercases
            and strips underscored from the fields before comparison in proto3 only.
            The new behavior takes `json_name` into account and applies to proto2 as
            well.

            This should only be used as a temporary measure against broken builds due
            to the change in behavior for JSON field name conflicts.

            TODO This is legacy behavior we plan to remove once downstream
            teams have had time to migrate.

            ```proto
            optional bool deprecated_legacy_json_field_conflicts = 11 [deprecated = true];
            ```
        features:
            Any features defined in the specific edition.
            WARNING: This field should only be used by protobuf plugins or special
            cases like the proto compiler. Other uses are discouraged and
            developers should rely on the protoreflect APIs for their client language.

            ```proto
            optional google.protobuf.FeatureSet features = 12;
            ```
        uninterpreted_option:
            The parser stores options it doesn't recognize here. See above.

            ```proto
            repeated google.protobuf.UninterpretedOption uninterpreted_option = 999;
            ```
    """

    __slots__ = (
        "message_set_wire_format",
        "no_standard_descriptor_accessor",
        "deprecated",
        "map_entry",
        "deprecated_legacy_json_field_conflicts",
        "features",
        "uninterpreted_option",
    )

    if TYPE_CHECKING:

        def __init__(
            self,
            *,
            message_set_wire_format: bool | None = None,
            no_standard_descriptor_accessor: bool | None = None,
            deprecated: bool | None = None,
            map_entry: bool | None = None,
            deprecated_legacy_json_field_conflicts: bool | None = None,
            features: FeatureSet | None = None,
            uninterpreted_option: list[UninterpretedOption] | None = None,
        ) -> None:
            pass

        message_set_wire_format: bool
        no_standard_descriptor_accessor: bool
        deprecated: bool
        map_entry: bool
        deprecated_legacy_json_field_conflicts: bool
        features: FeatureSet | None
        uninterpreted_option: list[UninterpretedOption]


_FieldOptionsFields: TypeAlias = Literal[
    "ctype",
    "packed",
    "jstype",
    "lazy",
    "unverified_lazy",
    "deprecated",
    "weak",
    "debug_redact",
    "retention",
    "targets",
    "edition_defaults",
    "features",
    "feature_support",
    "uninterpreted_option",
]


class FieldOptions(Message[_FieldOptionsFields]):
    """
    ```proto
    message google.protobuf.FieldOptions
    ```

    Attributes:
        ctype:
            NOTE: ctype is deprecated. Use `features.(pb.cpp).string_type` instead.
            The ctype option instructs the C++ code generator to use a different
            representation of the field than it normally would.  See the specific
            options below.  This option is only implemented to support use of
            [ctype=CORD] and [ctype=STRING] (the default) on non-repeated fields of
            type "bytes" in the open source release.
            TODO: make ctype actually deprecated.

            ```proto
            optional google.protobuf.FieldOptions.CType ctype = 1 [default = STRING];
            ```
        packed:
            The packed option can be enabled for repeated primitive fields to enable
            a more efficient representation on the wire. Rather than repeatedly
            writing the tag and type for each element, the entire array is encoded as
            a single length-delimited blob. In proto3, only explicit setting it to
            false will avoid using packed encoding.  This option is prohibited in
            Editions, but the `repeated_field_encoding` feature can be used to control
            the behavior.

            ```proto
            optional bool packed = 2;
            ```
        jstype:
            The jstype option determines the JavaScript type used for values of the
            field.  The option is permitted only for 64 bit integral and fixed types
            (int64, uint64, sint64, fixed64, sfixed64).  A field with jstype JS_STRING
            is represented as JavaScript string, which avoids loss of precision that
            can happen when a large value is converted to a floating point JavaScript.
            Specifying JS_NUMBER for the jstype causes the generated JavaScript code to
            use the JavaScript "number" type.  The behavior of the default option
            JS_NORMAL is implementation dependent.

            This option is an enum to permit additional types to be added, e.g.
            goog.math.Integer.

            ```proto
            optional google.protobuf.FieldOptions.JSType jstype = 6 [default = JS_NORMAL];
            ```
        lazy:
            Should this field be parsed lazily?  Lazy applies only to message-type
            fields.  It means that when the outer message is initially parsed, the
            inner message's contents will not be parsed but instead stored in encoded
            form.  The inner message will actually be parsed when it is first accessed.

            This is only a hint.  Implementations are free to choose whether to use
            eager or lazy parsing regardless of the value of this option.  However,
            setting this option true suggests that the protocol author believes that
            using lazy parsing on this field is worth the additional bookkeeping
            overhead typically needed to implement it.

            This option does not affect the public interface of any generated code;
            all method signatures remain the same.  Furthermore, thread-safety of the
            interface is not affected by this option; const methods remain safe to
            call from multiple threads concurrently, while non-const methods continue
            to require exclusive access.

            Note that lazy message fields are still eagerly verified to check
            ill-formed wireformat or missing required fields. Calling IsInitialized()
            on the outer message would fail if the inner message has missing required
            fields. Failed verification would result in parsing failure (except when
            uninitialized messages are acceptable).

            ```proto
            optional bool lazy = 5 [default = false];
            ```
        unverified_lazy:
            unverified_lazy does no correctness checks on the byte stream. This should
            only be used where lazy with verification is prohibitive for performance
            reasons.

            ```proto
            optional bool unverified_lazy = 15 [default = false];
            ```
        deprecated:
            Is this field deprecated?
            Depending on the target platform, this can emit Deprecated annotations
            for accessors, or it will be completely ignored; in the very least, this
            is a formalization for deprecating fields.

            ```proto
            optional bool deprecated = 3 [default = false];
            ```
        weak:
            DEPRECATED. DO NOT USE!
            For Google-internal migration only. Do not use.

            ```proto
            optional bool weak = 10 [default = false, deprecated = true];
            ```
        debug_redact:
            Indicate that the field value should not be printed out when using debug
            formats, e.g. when the field contains sensitive credentials.

            ```proto
            optional bool debug_redact = 16 [default = false];
            ```
        retention:
            ```proto
            optional google.protobuf.FieldOptions.OptionRetention retention = 17;
            ```
        targets:
            ```proto
            repeated google.protobuf.FieldOptions.OptionTargetType targets = 19 [packed = false];
            ```
        edition_defaults:
            ```proto
            repeated google.protobuf.FieldOptions.EditionDefault edition_defaults = 20;
            ```
        features:
            Any features defined in the specific edition.
            WARNING: This field should only be used by protobuf plugins or special
            cases like the proto compiler. Other uses are discouraged and
            developers should rely on the protoreflect APIs for their client language.

            ```proto
            optional google.protobuf.FeatureSet features = 21;
            ```
        feature_support:
            ```proto
            optional google.protobuf.FieldOptions.FeatureSupport feature_support = 22;
            ```
        uninterpreted_option:
            The parser stores options it doesn't recognize here. See above.

            ```proto
            repeated google.protobuf.UninterpretedOption uninterpreted_option = 999;
            ```
    """

    __slots__ = (
        "ctype",
        "packed",
        "jstype",
        "lazy",
        "unverified_lazy",
        "deprecated",
        "weak",
        "debug_redact",
        "retention",
        "targets",
        "edition_defaults",
        "features",
        "feature_support",
        "uninterpreted_option",
    )

    if TYPE_CHECKING:

        def __init__(
            self,
            *,
            ctype: FieldOptions.CType | None = None,
            packed: bool | None = None,
            jstype: FieldOptions.JSType | None = None,
            lazy: bool | None = None,
            unverified_lazy: bool | None = None,
            deprecated: bool | None = None,
            weak: bool | None = None,
            debug_redact: bool | None = None,
            retention: FieldOptions.OptionRetention | None = None,
            targets: list[FieldOptions.OptionTargetType] | None = None,
            edition_defaults: list[FieldOptions.EditionDefault] | None = None,
            features: FeatureSet | None = None,
            feature_support: FieldOptions.FeatureSupport | None = None,
            uninterpreted_option: list[UninterpretedOption] | None = None,
        ) -> None:
            pass

        ctype: FieldOptions.CType
        packed: bool
        jstype: FieldOptions.JSType
        lazy: bool
        unverified_lazy: bool
        deprecated: bool
        weak: bool
        debug_redact: bool
        retention: FieldOptions.OptionRetention
        targets: list[FieldOptions.OptionTargetType]
        edition_defaults: list[FieldOptions.EditionDefault]
        features: FeatureSet | None
        feature_support: FieldOptions.FeatureSupport | None
        uninterpreted_option: list[UninterpretedOption]

    _EditionDefaultFields: TypeAlias = Literal["edition", "value"]

    class EditionDefault(Message[_EditionDefaultFields]):
        """
        ```proto
        message google.protobuf.FieldOptions.EditionDefault
        ```

        Attributes:
            edition:
                ```proto
                optional google.protobuf.Edition edition = 3;
                ```
            value:
                Textproto value.

                ```proto
                optional string value = 2;
                ```
        """

        __slots__ = ("edition", "value")

        if TYPE_CHECKING:

            def __init__(
                self, *, edition: Edition | None = None, value: str | None = None
            ) -> None:
                pass

            edition: Edition
            value: str

    _FeatureSupportFields: TypeAlias = Literal[
        "edition_introduced",
        "edition_deprecated",
        "deprecation_warning",
        "edition_removed",
        "removal_error",
    ]

    class FeatureSupport(Message[_FeatureSupportFields]):
        """
        Information about the support window of a feature.

        ```proto
        message google.protobuf.FieldOptions.FeatureSupport
        ```

        Attributes:
            edition_introduced:
                The edition that this feature was first available in.  In editions
                earlier than this one, the default assigned to EDITION_LEGACY will be
                used, and proto files will not be able to override it.

                ```proto
                optional google.protobuf.Edition edition_introduced = 1;
                ```
            edition_deprecated:
                The edition this feature becomes deprecated in.  Using this after this
                edition may trigger warnings.

                ```proto
                optional google.protobuf.Edition edition_deprecated = 2;
                ```
            deprecation_warning:
                The deprecation warning text if this feature is used after the edition it
                was marked deprecated in.

                ```proto
                optional string deprecation_warning = 3;
                ```
            edition_removed:
                The edition this feature is no longer available in.  In editions after
                this one, the last default assigned will be used, and proto files will
                not be able to override it.

                ```proto
                optional google.protobuf.Edition edition_removed = 4;
                ```
            removal_error:
                The removal error text if this feature is used after the edition it was
                removed in.

                ```proto
                optional string removal_error = 5;
                ```
        """

        __slots__ = (
            "edition_introduced",
            "edition_deprecated",
            "deprecation_warning",
            "edition_removed",
            "removal_error",
        )

        if TYPE_CHECKING:

            def __init__(
                self,
                *,
                edition_introduced: Edition | None = None,
                edition_deprecated: Edition | None = None,
                deprecation_warning: str | None = None,
                edition_removed: Edition | None = None,
                removal_error: str | None = None,
            ) -> None:
                pass

            edition_introduced: Edition
            edition_deprecated: Edition
            deprecation_warning: str
            edition_removed: Edition
            removal_error: str

    class CType(Enum):
        """
        ```proto
        enum google.protobuf.FieldOptions.CType
        ```

        Attributes:
            STRING:
                Default mode.

                ```proto
                STRING = 0
                ```
            CORD:
                The option [ctype=CORD] may be applied to a non-repeated field of type
                "bytes". It indicates that in C++, the data should be stored in a Cord
                instead of a string.  For very large strings, this may reduce memory
                fragmentation. It may also allow better performance when parsing from a
                Cord, or when parsing with aliasing enabled, as the parsed Cord may then
                alias the original buffer.

                ```proto
                CORD = 1
                ```
            STRING_PIECE:
                ```proto
                STRING_PIECE = 2
                ```
        """

        STRING = 0
        CORD = 1
        STRING_PIECE = 2

    class JSType(Enum):
        """
        ```proto
        enum google.protobuf.FieldOptions.JSType
        ```

        Attributes:
            JS_NORMAL:
                Use the default type.

                ```proto
                JS_NORMAL = 0
                ```
            JS_STRING:
                Use JavaScript strings.

                ```proto
                JS_STRING = 1
                ```
            JS_NUMBER:
                Use JavaScript numbers.

                ```proto
                JS_NUMBER = 2
                ```
        """

        JS_NORMAL = 0
        JS_STRING = 1
        JS_NUMBER = 2

    class OptionRetention(Enum):
        """
        If set to RETENTION_SOURCE, the option will be omitted from the binary.

        ```proto
        enum google.protobuf.FieldOptions.OptionRetention
        ```

        Attributes:
            RETENTION_UNKNOWN:
                ```proto
                RETENTION_UNKNOWN = 0
                ```
            RETENTION_RUNTIME:
                ```proto
                RETENTION_RUNTIME = 1
                ```
            RETENTION_SOURCE:
                ```proto
                RETENTION_SOURCE = 2
                ```
        """

        RETENTION_UNKNOWN = 0
        RETENTION_RUNTIME = 1
        RETENTION_SOURCE = 2

    class OptionTargetType(Enum):
        """
        This indicates the types of entities that the field may apply to when used
        as an option. If it is unset, then the field may be freely used as an
        option on any kind of entity.

        ```proto
        enum google.protobuf.FieldOptions.OptionTargetType
        ```

        Attributes:
            TARGET_TYPE_UNKNOWN:
                ```proto
                TARGET_TYPE_UNKNOWN = 0
                ```
            TARGET_TYPE_FILE:
                ```proto
                TARGET_TYPE_FILE = 1
                ```
            TARGET_TYPE_EXTENSION_RANGE:
                ```proto
                TARGET_TYPE_EXTENSION_RANGE = 2
                ```
            TARGET_TYPE_MESSAGE:
                ```proto
                TARGET_TYPE_MESSAGE = 3
                ```
            TARGET_TYPE_FIELD:
                ```proto
                TARGET_TYPE_FIELD = 4
                ```
            TARGET_TYPE_ONEOF:
                ```proto
                TARGET_TYPE_ONEOF = 5
                ```
            TARGET_TYPE_ENUM:
                ```proto
                TARGET_TYPE_ENUM = 6
                ```
            TARGET_TYPE_ENUM_ENTRY:
                ```proto
                TARGET_TYPE_ENUM_ENTRY = 7
                ```
            TARGET_TYPE_SERVICE:
                ```proto
                TARGET_TYPE_SERVICE = 8
                ```
            TARGET_TYPE_METHOD:
                ```proto
                TARGET_TYPE_METHOD = 9
                ```
        """

        TARGET_TYPE_UNKNOWN = 0
        TARGET_TYPE_FILE = 1
        TARGET_TYPE_EXTENSION_RANGE = 2
        TARGET_TYPE_MESSAGE = 3
        TARGET_TYPE_FIELD = 4
        TARGET_TYPE_ONEOF = 5
        TARGET_TYPE_ENUM = 6
        TARGET_TYPE_ENUM_ENTRY = 7
        TARGET_TYPE_SERVICE = 8
        TARGET_TYPE_METHOD = 9


_OneofOptionsFields: TypeAlias = Literal["features", "uninterpreted_option"]


class OneofOptions(Message[_OneofOptionsFields]):
    """
    ```proto
    message google.protobuf.OneofOptions
    ```

    Attributes:
        features:
            Any features defined in the specific edition.
            WARNING: This field should only be used by protobuf plugins or special
            cases like the proto compiler. Other uses are discouraged and
            developers should rely on the protoreflect APIs for their client language.

            ```proto
            optional google.protobuf.FeatureSet features = 1;
            ```
        uninterpreted_option:
            The parser stores options it doesn't recognize here. See above.

            ```proto
            repeated google.protobuf.UninterpretedOption uninterpreted_option = 999;
            ```
    """

    __slots__ = ("features", "uninterpreted_option")

    if TYPE_CHECKING:

        def __init__(
            self,
            *,
            features: FeatureSet | None = None,
            uninterpreted_option: list[UninterpretedOption] | None = None,
        ) -> None:
            pass

        features: FeatureSet | None
        uninterpreted_option: list[UninterpretedOption]


_EnumOptionsFields: TypeAlias = Literal[
    "allow_alias",
    "deprecated",
    "deprecated_legacy_json_field_conflicts",
    "features",
    "uninterpreted_option",
]


class EnumOptions(Message[_EnumOptionsFields]):
    """
    ```proto
    message google.protobuf.EnumOptions
    ```

    Attributes:
        allow_alias:
            Set this option to true to allow mapping different tag names to the same
            value.

            ```proto
            optional bool allow_alias = 2;
            ```
        deprecated:
            Is this enum deprecated?
            Depending on the target platform, this can emit Deprecated annotations
            for the enum, or it will be completely ignored; in the very least, this
            is a formalization for deprecating enums.

            ```proto
            optional bool deprecated = 3 [default = false];
            ```
        deprecated_legacy_json_field_conflicts:
            Enable the legacy handling of JSON field name conflicts.  This lowercases
            and strips underscored from the fields before comparison in proto3 only.
            The new behavior takes `json_name` into account and applies to proto2 as
            well.
            TODO Remove this legacy behavior once downstream teams have
            had time to migrate.

            ```proto
            optional bool deprecated_legacy_json_field_conflicts = 6 [deprecated = true];
            ```
        features:
            Any features defined in the specific edition.
            WARNING: This field should only be used by protobuf plugins or special
            cases like the proto compiler. Other uses are discouraged and
            developers should rely on the protoreflect APIs for their client language.

            ```proto
            optional google.protobuf.FeatureSet features = 7;
            ```
        uninterpreted_option:
            The parser stores options it doesn't recognize here. See above.

            ```proto
            repeated google.protobuf.UninterpretedOption uninterpreted_option = 999;
            ```
    """

    __slots__ = (
        "allow_alias",
        "deprecated",
        "deprecated_legacy_json_field_conflicts",
        "features",
        "uninterpreted_option",
    )

    if TYPE_CHECKING:

        def __init__(
            self,
            *,
            allow_alias: bool | None = None,
            deprecated: bool | None = None,
            deprecated_legacy_json_field_conflicts: bool | None = None,
            features: FeatureSet | None = None,
            uninterpreted_option: list[UninterpretedOption] | None = None,
        ) -> None:
            pass

        allow_alias: bool
        deprecated: bool
        deprecated_legacy_json_field_conflicts: bool
        features: FeatureSet | None
        uninterpreted_option: list[UninterpretedOption]


_EnumValueOptionsFields: TypeAlias = Literal[
    "deprecated", "features", "debug_redact", "feature_support", "uninterpreted_option"
]


class EnumValueOptions(Message[_EnumValueOptionsFields]):
    """
    ```proto
    message google.protobuf.EnumValueOptions
    ```

    Attributes:
        deprecated:
            Is this enum value deprecated?
            Depending on the target platform, this can emit Deprecated annotations
            for the enum value, or it will be completely ignored; in the very least,
            this is a formalization for deprecating enum values.

            ```proto
            optional bool deprecated = 1 [default = false];
            ```
        features:
            Any features defined in the specific edition.
            WARNING: This field should only be used by protobuf plugins or special
            cases like the proto compiler. Other uses are discouraged and
            developers should rely on the protoreflect APIs for their client language.

            ```proto
            optional google.protobuf.FeatureSet features = 2;
            ```
        debug_redact:
            Indicate that fields annotated with this enum value should not be printed
            out when using debug formats, e.g. when the field contains sensitive
            credentials.

            ```proto
            optional bool debug_redact = 3 [default = false];
            ```
        feature_support:
            Information about the support window of a feature value.

            ```proto
            optional google.protobuf.FieldOptions.FeatureSupport feature_support = 4;
            ```
        uninterpreted_option:
            The parser stores options it doesn't recognize here. See above.

            ```proto
            repeated google.protobuf.UninterpretedOption uninterpreted_option = 999;
            ```
    """

    __slots__ = (
        "deprecated",
        "features",
        "debug_redact",
        "feature_support",
        "uninterpreted_option",
    )

    if TYPE_CHECKING:

        def __init__(
            self,
            *,
            deprecated: bool | None = None,
            features: FeatureSet | None = None,
            debug_redact: bool | None = None,
            feature_support: FieldOptions.FeatureSupport | None = None,
            uninterpreted_option: list[UninterpretedOption] | None = None,
        ) -> None:
            pass

        deprecated: bool
        features: FeatureSet | None
        debug_redact: bool
        feature_support: FieldOptions.FeatureSupport | None
        uninterpreted_option: list[UninterpretedOption]


_ServiceOptionsFields: TypeAlias = Literal[
    "features", "deprecated", "uninterpreted_option"
]


class ServiceOptions(Message[_ServiceOptionsFields]):
    """
    ```proto
    message google.protobuf.ServiceOptions
    ```

    Attributes:
        features:
            Any features defined in the specific edition.
            WARNING: This field should only be used by protobuf plugins or special
            cases like the proto compiler. Other uses are discouraged and
            developers should rely on the protoreflect APIs for their client language.

            ```proto
            optional google.protobuf.FeatureSet features = 34;
            ```
        deprecated:
            Is this service deprecated?
            Depending on the target platform, this can emit Deprecated annotations
            for the service, or it will be completely ignored; in the very least,
            this is a formalization for deprecating services.

            ```proto
            optional bool deprecated = 33 [default = false];
            ```
        uninterpreted_option:
            The parser stores options it doesn't recognize here. See above.

            ```proto
            repeated google.protobuf.UninterpretedOption uninterpreted_option = 999;
            ```
    """

    __slots__ = ("features", "deprecated", "uninterpreted_option")

    if TYPE_CHECKING:

        def __init__(
            self,
            *,
            features: FeatureSet | None = None,
            deprecated: bool | None = None,
            uninterpreted_option: list[UninterpretedOption] | None = None,
        ) -> None:
            pass

        features: FeatureSet | None
        deprecated: bool
        uninterpreted_option: list[UninterpretedOption]


_MethodOptionsFields: TypeAlias = Literal[
    "deprecated", "idempotency_level", "features", "uninterpreted_option"
]


class MethodOptions(Message[_MethodOptionsFields]):
    """
    ```proto
    message google.protobuf.MethodOptions
    ```

    Attributes:
        deprecated:
            Is this method deprecated?
            Depending on the target platform, this can emit Deprecated annotations
            for the method, or it will be completely ignored; in the very least,
            this is a formalization for deprecating methods.

            ```proto
            optional bool deprecated = 33 [default = false];
            ```
        idempotency_level:
            ```proto
            optional google.protobuf.MethodOptions.IdempotencyLevel idempotency_level = 34 [default = IDEMPOTENCY_UNKNOWN];
            ```
        features:
            Any features defined in the specific edition.
            WARNING: This field should only be used by protobuf plugins or special
            cases like the proto compiler. Other uses are discouraged and
            developers should rely on the protoreflect APIs for their client language.

            ```proto
            optional google.protobuf.FeatureSet features = 35;
            ```
        uninterpreted_option:
            The parser stores options it doesn't recognize here. See above.

            ```proto
            repeated google.protobuf.UninterpretedOption uninterpreted_option = 999;
            ```
    """

    __slots__ = ("deprecated", "idempotency_level", "features", "uninterpreted_option")

    if TYPE_CHECKING:

        def __init__(
            self,
            *,
            deprecated: bool | None = None,
            idempotency_level: MethodOptions.IdempotencyLevel | None = None,
            features: FeatureSet | None = None,
            uninterpreted_option: list[UninterpretedOption] | None = None,
        ) -> None:
            pass

        deprecated: bool
        idempotency_level: MethodOptions.IdempotencyLevel
        features: FeatureSet | None
        uninterpreted_option: list[UninterpretedOption]

    class IdempotencyLevel(Enum):
        """
        Is this method side-effect-free (or safe in HTTP parlance), or idempotent,
        or neither? HTTP based RPC implementation may choose GET verb for safe
        methods, and PUT verb for idempotent methods instead of the default POST.

        ```proto
        enum google.protobuf.MethodOptions.IdempotencyLevel
        ```

        Attributes:
            IDEMPOTENCY_UNKNOWN:
                ```proto
                IDEMPOTENCY_UNKNOWN = 0
                ```
            NO_SIDE_EFFECTS:
                implies idempotent

                ```proto
                NO_SIDE_EFFECTS = 1
                ```
            IDEMPOTENT:
                idempotent, but may have side effects

                ```proto
                IDEMPOTENT = 2
                ```
        """

        IDEMPOTENCY_UNKNOWN = 0
        NO_SIDE_EFFECTS = 1
        IDEMPOTENT = 2


_UninterpretedOptionFields: TypeAlias = Literal[
    "name",
    "identifier_value",
    "positive_int_value",
    "negative_int_value",
    "double_value",
    "string_value",
    "aggregate_value",
]


class UninterpretedOption(Message[_UninterpretedOptionFields]):
    """
    A message representing a option the parser does not recognize. This only
    appears in options protos created by the compiler::Parser class.
    DescriptorPool resolves these when building Descriptor objects. Therefore,
    options protos in descriptor objects (e.g. returned by Descriptor::options(),
    or produced by Descriptor::CopyTo()) will never have UninterpretedOptions
    in them.

    ```proto
    message google.protobuf.UninterpretedOption
    ```

    Attributes:
        name:
            ```proto
            repeated google.protobuf.UninterpretedOption.NamePart name = 2;
            ```
        identifier_value:
            The value of the uninterpreted option, in whatever type the tokenizer
            identified it as during parsing. Exactly one of these should be set.

            ```proto
            optional string identifier_value = 3;
            ```
        positive_int_value:
            ```proto
            optional uint64 positive_int_value = 4;
            ```
        negative_int_value:
            ```proto
            optional int64 negative_int_value = 5;
            ```
        double_value:
            ```proto
            optional double double_value = 6;
            ```
        string_value:
            ```proto
            optional bytes string_value = 7;
            ```
        aggregate_value:
            ```proto
            optional string aggregate_value = 8;
            ```
    """

    __slots__ = (
        "name",
        "identifier_value",
        "positive_int_value",
        "negative_int_value",
        "double_value",
        "string_value",
        "aggregate_value",
    )

    if TYPE_CHECKING:

        def __init__(
            self,
            *,
            name: list[UninterpretedOption.NamePart] | None = None,
            identifier_value: str | None = None,
            positive_int_value: int | None = None,
            negative_int_value: int | None = None,
            double_value: float | None = None,
            string_value: bytes | None = None,
            aggregate_value: str | None = None,
        ) -> None:
            pass

        name: list[UninterpretedOption.NamePart]
        identifier_value: str
        positive_int_value: int
        negative_int_value: int
        double_value: float
        string_value: bytes
        aggregate_value: str

    _NamePartFields: TypeAlias = Literal["name_part", "is_extension"]

    class NamePart(Message[_NamePartFields]):
        """
        The name of the uninterpreted option.  Each string represents a segment in
        a dot-separated name.  is_extension is true iff a segment represents an
        extension (denoted with parentheses in options specs in .proto files).
        E.g.,{ ["foo", false], ["bar.baz", true], ["moo", false] } represents
        "foo.(bar.baz).moo".

        ```proto
        message google.protobuf.UninterpretedOption.NamePart
        ```

        Attributes:
            name_part:
                ```proto
                required string name_part = 1;
                ```
            is_extension:
                ```proto
                required bool is_extension = 2;
                ```
        """

        __slots__ = ("name_part", "is_extension")

        if TYPE_CHECKING:

            def __init__(
                self, *, name_part: str | None = None, is_extension: bool | None = None
            ) -> None:
                pass

            name_part: str
            is_extension: bool


_FeatureSetFields: TypeAlias = Literal[
    "field_presence",
    "enum_type",
    "repeated_field_encoding",
    "utf8_validation",
    "message_encoding",
    "json_format",
    "enforce_naming_style",
    "default_symbol_visibility",
]


class FeatureSet(Message[_FeatureSetFields]):
    """
    TODO Enums in C++ gencode (and potentially other languages) are
    not well scoped.  This means that each of the feature enums below can clash
    with each other.  The short names we've chosen maximize call-site
    readability, but leave us very open to this scenario.  A future feature will
    be designed and implemented to handle this, hopefully before we ever hit a
    conflict here.

    ```proto
    message google.protobuf.FeatureSet
    ```

    Attributes:
        field_presence:
            ```proto
            optional google.protobuf.FeatureSet.FieldPresence field_presence = 1;
            ```
        enum_type:
            ```proto
            optional google.protobuf.FeatureSet.EnumType enum_type = 2;
            ```
        repeated_field_encoding:
            ```proto
            optional google.protobuf.FeatureSet.RepeatedFieldEncoding repeated_field_encoding = 3;
            ```
        utf8_validation:
            ```proto
            optional google.protobuf.FeatureSet.Utf8Validation utf8_validation = 4;
            ```
        message_encoding:
            ```proto
            optional google.protobuf.FeatureSet.MessageEncoding message_encoding = 5;
            ```
        json_format:
            ```proto
            optional google.protobuf.FeatureSet.JsonFormat json_format = 6;
            ```
        enforce_naming_style:
            ```proto
            optional google.protobuf.FeatureSet.EnforceNamingStyle enforce_naming_style = 7;
            ```
        default_symbol_visibility:
            ```proto
            optional google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility default_symbol_visibility = 8;
            ```
    """

    __slots__ = (
        "field_presence",
        "enum_type",
        "repeated_field_encoding",
        "utf8_validation",
        "message_encoding",
        "json_format",
        "enforce_naming_style",
        "default_symbol_visibility",
    )

    if TYPE_CHECKING:

        def __init__(
            self,
            *,
            field_presence: FeatureSet.FieldPresence | None = None,
            enum_type: FeatureSet.EnumType | None = None,
            repeated_field_encoding: FeatureSet.RepeatedFieldEncoding | None = None,
            utf8_validation: FeatureSet.Utf8Validation | None = None,
            message_encoding: FeatureSet.MessageEncoding | None = None,
            json_format: FeatureSet.JsonFormat | None = None,
            enforce_naming_style: FeatureSet.EnforceNamingStyle | None = None,
            default_symbol_visibility: FeatureSet.VisibilityFeature.DefaultSymbolVisibility
            | None = None,
        ) -> None:
            pass

        field_presence: FeatureSet.FieldPresence
        enum_type: FeatureSet.EnumType
        repeated_field_encoding: FeatureSet.RepeatedFieldEncoding
        utf8_validation: FeatureSet.Utf8Validation
        message_encoding: FeatureSet.MessageEncoding
        json_format: FeatureSet.JsonFormat
        enforce_naming_style: FeatureSet.EnforceNamingStyle
        default_symbol_visibility: FeatureSet.VisibilityFeature.DefaultSymbolVisibility

    _VisibilityFeatureFields: TypeAlias = NoReturn

    class VisibilityFeature(Message[_VisibilityFeatureFields]):
        """
        ```proto
        message google.protobuf.FeatureSet.VisibilityFeature
        ```
        """

        __slots__ = ()

        if TYPE_CHECKING:

            def __init__(self) -> None:
                pass

        class DefaultSymbolVisibility(Enum):
            """
            ```proto
            enum google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility
            ```

            Attributes:
                UNKNOWN:
                    ```proto
                    DEFAULT_SYMBOL_VISIBILITY_UNKNOWN = 0
                    ```
                EXPORT_ALL:
                    Default pre-EDITION_2024, all UNSET visibility are export.

                    ```proto
                    EXPORT_ALL = 1
                    ```
                EXPORT_TOP_LEVEL:
                    All top-level symbols default to export, nested default to local.

                    ```proto
                    EXPORT_TOP_LEVEL = 2
                    ```
                LOCAL_ALL:
                    All symbols default to local.

                    ```proto
                    LOCAL_ALL = 3
                    ```
                STRICT:
                    All symbols local by default. Nested types cannot be exported.
                    With special case caveat for message { enum {} reserved 1 to max; }
                    This is the recommended setting for new protos.

                    ```proto
                    STRICT = 4
                    ```
            """

            UNKNOWN = 0
            EXPORT_ALL = 1
            EXPORT_TOP_LEVEL = 2
            LOCAL_ALL = 3
            STRICT = 4

    class FieldPresence(Enum):
        """
        ```proto
        enum google.protobuf.FeatureSet.FieldPresence
        ```

        Attributes:
            UNKNOWN:
                ```proto
                FIELD_PRESENCE_UNKNOWN = 0
                ```
            EXPLICIT:
                ```proto
                EXPLICIT = 1
                ```
            IMPLICIT:
                ```proto
                IMPLICIT = 2
                ```
            LEGACY_REQUIRED:
                ```proto
                LEGACY_REQUIRED = 3
                ```
        """

        UNKNOWN = 0
        EXPLICIT = 1
        IMPLICIT = 2
        LEGACY_REQUIRED = 3

    class EnumType(Enum):
        """
        ```proto
        enum google.protobuf.FeatureSet.EnumType
        ```

        Attributes:
            UNKNOWN:
                ```proto
                ENUM_TYPE_UNKNOWN = 0
                ```
            OPEN:
                ```proto
                OPEN = 1
                ```
            CLOSED:
                ```proto
                CLOSED = 2
                ```
        """

        UNKNOWN = 0
        OPEN = 1
        CLOSED = 2

    class RepeatedFieldEncoding(Enum):
        """
        ```proto
        enum google.protobuf.FeatureSet.RepeatedFieldEncoding
        ```

        Attributes:
            UNKNOWN:
                ```proto
                REPEATED_FIELD_ENCODING_UNKNOWN = 0
                ```
            PACKED:
                ```proto
                PACKED = 1
                ```
            EXPANDED:
                ```proto
                EXPANDED = 2
                ```
        """

        UNKNOWN = 0
        PACKED = 1
        EXPANDED = 2

    class Utf8Validation(Enum):
        """
        ```proto
        enum google.protobuf.FeatureSet.Utf8Validation
        ```

        Attributes:
            UNKNOWN:
                ```proto
                UTF8_VALIDATION_UNKNOWN = 0
                ```
            VERIFY:
                ```proto
                VERIFY = 2
                ```
            NONE:
                ```proto
                NONE = 3
                ```
        """

        UNKNOWN = 0
        VERIFY = 2
        NONE = 3

    class MessageEncoding(Enum):
        """
        ```proto
        enum google.protobuf.FeatureSet.MessageEncoding
        ```

        Attributes:
            UNKNOWN:
                ```proto
                MESSAGE_ENCODING_UNKNOWN = 0
                ```
            LENGTH_PREFIXED:
                ```proto
                LENGTH_PREFIXED = 1
                ```
            DELIMITED:
                ```proto
                DELIMITED = 2
                ```
        """

        UNKNOWN = 0
        LENGTH_PREFIXED = 1
        DELIMITED = 2

    class JsonFormat(Enum):
        """
        ```proto
        enum google.protobuf.FeatureSet.JsonFormat
        ```

        Attributes:
            UNKNOWN:
                ```proto
                JSON_FORMAT_UNKNOWN = 0
                ```
            ALLOW:
                ```proto
                ALLOW = 1
                ```
            LEGACY_BEST_EFFORT:
                ```proto
                LEGACY_BEST_EFFORT = 2
                ```
        """

        UNKNOWN = 0
        ALLOW = 1
        LEGACY_BEST_EFFORT = 2

    class EnforceNamingStyle(Enum):
        """
        ```proto
        enum google.protobuf.FeatureSet.EnforceNamingStyle
        ```

        Attributes:
            UNKNOWN:
                ```proto
                ENFORCE_NAMING_STYLE_UNKNOWN = 0
                ```
            STYLE2024:
                ```proto
                STYLE2024 = 1
                ```
            STYLE_LEGACY:
                ```proto
                STYLE_LEGACY = 2
                ```
            STYLE2026:
                ```proto
                STYLE2026 = 3
                ```
        """

        UNKNOWN = 0
        STYLE2024 = 1
        STYLE_LEGACY = 2
        STYLE2026 = 3


_FeatureSetDefaultsFields: TypeAlias = Literal[
    "defaults", "minimum_edition", "maximum_edition"
]


class FeatureSetDefaults(Message[_FeatureSetDefaultsFields]):
    """
    A compiled specification for the defaults of a set of features.  These
    messages are generated from FeatureSet extensions and can be used to seed
    feature resolution. The resolution with this object becomes a simple search
    for the closest matching edition, followed by proto merges.

    ```proto
    message google.protobuf.FeatureSetDefaults
    ```

    Attributes:
        defaults:
            ```proto
            repeated google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault defaults = 1;
            ```
        minimum_edition:
            The minimum supported edition (inclusive) when this was constructed.
            Editions before this will not have defaults.

            ```proto
            optional google.protobuf.Edition minimum_edition = 4;
            ```
        maximum_edition:
            The maximum known edition (inclusive) when this was constructed. Editions
            after this will not have reliable defaults.

            ```proto
            optional google.protobuf.Edition maximum_edition = 5;
            ```
    """

    __slots__ = ("defaults", "minimum_edition", "maximum_edition")

    if TYPE_CHECKING:

        def __init__(
            self,
            *,
            defaults: list[FeatureSetDefaults.FeatureSetEditionDefault] | None = None,
            minimum_edition: Edition | None = None,
            maximum_edition: Edition | None = None,
        ) -> None:
            pass

        defaults: list[FeatureSetDefaults.FeatureSetEditionDefault]
        minimum_edition: Edition
        maximum_edition: Edition

    _FeatureSetEditionDefaultFields: TypeAlias = Literal[
        "edition", "overridable_features", "fixed_features"
    ]

    class FeatureSetEditionDefault(Message[_FeatureSetEditionDefaultFields]):
        """
        A map from every known edition with a unique set of defaults to its
        defaults. Not all editions may be contained here.  For a given edition,
        the defaults at the closest matching edition ordered at or before it should
        be used.  This field must be in strict ascending order by edition.

        ```proto
        message google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault
        ```

        Attributes:
            edition:
                ```proto
                optional google.protobuf.Edition edition = 3;
                ```
            overridable_features:
                Defaults of features that can be overridden in this edition.

                ```proto
                optional google.protobuf.FeatureSet overridable_features = 4;
                ```
            fixed_features:
                Defaults of features that can't be overridden in this edition.

                ```proto
                optional google.protobuf.FeatureSet fixed_features = 5;
                ```
        """

        __slots__ = ("edition", "overridable_features", "fixed_features")

        if TYPE_CHECKING:

            def __init__(
                self,
                *,
                edition: Edition | None = None,
                overridable_features: FeatureSet | None = None,
                fixed_features: FeatureSet | None = None,
            ) -> None:
                pass

            edition: Edition
            overridable_features: FeatureSet | None
            fixed_features: FeatureSet | None


_SourceCodeInfoFields: TypeAlias = Literal["location"]


class SourceCodeInfo(Message[_SourceCodeInfoFields]):
    """
    Encapsulates information about the original source file from which a
    FileDescriptorProto was generated.

    ```proto
    message google.protobuf.SourceCodeInfo
    ```

    Attributes:
        location:
            A Location identifies a piece of source code in a .proto file which
            corresponds to a particular definition.  This information is intended
            to be useful to IDEs, code indexers, documentation generators, and similar
            tools.

            For example, say we have a file like:
              message Foo {
                optional string foo = 1;
              }
            Let's look at just the field definition:
              optional string foo = 1;
              ^       ^^     ^^  ^  ^^^
              a       bc     de  f  ghi
            We have the following locations:
              span   path               represents
              [a,i)  [ 4, 0, 2, 0 ]     The whole field definition.
              [a,b)  [ 4, 0, 2, 0, 4 ]  The label (optional).
              [c,d)  [ 4, 0, 2, 0, 5 ]  The type (string).
              [e,f)  [ 4, 0, 2, 0, 1 ]  The name (foo).
              [g,h)  [ 4, 0, 2, 0, 3 ]  The number (1).

            Notes:
            - A location may refer to a repeated field itself (i.e. not to any
              particular index within it).  This is used whenever a set of elements are
              logically enclosed in a single code segment.  For example, an entire
              extend block (possibly containing multiple extension definitions) will
              have an outer location whose path refers to the "extensions" repeated
              field without an index.
            - Multiple locations may have the same path.  This happens when a single
              logical declaration is spread out across multiple places.  The most
              obvious example is the "extend" block again -- there may be multiple
              extend blocks in the same scope, each of which will have the same path.
            - A location's span is not always a subset of its parent's span.  For
              example, the "extendee" of an extension declaration appears at the
              beginning of the "extend" block and is shared by all extensions within
              the block.
            - Just because a location's span is a subset of some other location's span
              does not mean that it is a descendant.  For example, a "group" defines
              both a type and a field in a single declaration.  Thus, the locations
              corresponding to the type and field and their components will overlap.
            - Code which tries to interpret locations should probably be designed to
              ignore those that it doesn't understand, as more types of locations could
              be recorded in the future.

            ```proto
            repeated google.protobuf.SourceCodeInfo.Location location = 1;
            ```
    """

    __slots__ = ("location",)

    if TYPE_CHECKING:

        def __init__(
            self, *, location: list[SourceCodeInfo.Location] | None = None
        ) -> None:
            pass

        location: list[SourceCodeInfo.Location]

    _LocationFields: TypeAlias = Literal[
        "path",
        "span",
        "leading_comments",
        "trailing_comments",
        "leading_detached_comments",
    ]

    class Location(Message[_LocationFields]):
        """
        ```proto
        message google.protobuf.SourceCodeInfo.Location
        ```

        Attributes:
            path:
                Identifies which part of the FileDescriptorProto was defined at this
                location.

                Each element is a field number or an index.  They form a path from
                the root FileDescriptorProto to the place where the definition appears.
                For example, this path:
                  [ 4, 3, 2, 7, 1 ]
                refers to:
                  file.message_type(3)  // 4, 3
                      .field(7)         // 2, 7
                      .name()           // 1
                This is because FileDescriptorProto.message_type has field number 4:
                  repeated DescriptorProto message_type = 4;
                and DescriptorProto.field has field number 2:
                  repeated FieldDescriptorProto field = 2;
                and FieldDescriptorProto.name has field number 1:
                  optional string name = 1;

                Thus, the above path gives the location of a field name.  If we removed
                the last element:
                  [ 4, 3, 2, 7 ]
                this path refers to the whole field declaration (from the beginning
                of the label to the terminating semicolon).

                ```proto
                repeated int32 path = 1 [packed = true];
                ```
            span:
                Always has exactly three or four elements: start line, start column,
                end line (optional, otherwise assumed same as start line), end column.
                These are packed into a single field for efficiency.  Note that line
                and column numbers are zero-based -- typically you will want to add
                1 to each before displaying to a user.

                ```proto
                repeated int32 span = 2 [packed = true];
                ```
            leading_comments:
                If this SourceCodeInfo represents a complete declaration, these are any
                comments appearing before and after the declaration which appear to be
                attached to the declaration.

                A series of line comments appearing on consecutive lines, with no other
                tokens appearing on those lines, will be treated as a single comment.

                leading_detached_comments will keep paragraphs of comments that appear
                before (but not connected to) the current element. Each paragraph,
                separated by empty lines, will be one comment element in the repeated
                field.

                Only the comment content is provided; comment markers (e.g. //) are
                stripped out.  For block comments, leading whitespace and an asterisk
                will be stripped from the beginning of each line other than the first.
                Newlines are included in the output.

                Examples:

                  optional int32 foo = 1;  // Comment attached to foo.
                  // Comment attached to bar.
                  optional int32 bar = 2;

                  optional string baz = 3;
                  // Comment attached to baz.
                  // Another line attached to baz.

                  // Comment attached to moo.
                  //
                  // Another line attached to moo.
                  optional double moo = 4;

                  // Detached comment for corge. This is not leading or trailing comments
                  // to moo or corge because there are blank lines separating it from
                  // both.

                  // Detached comment for corge paragraph 2.

                  optional string corge = 5;
                  /* Block comment attached
                   * to corge.  Leading asterisks
                   * will be removed. */
                  /* Block comment attached to
                   * grault. */
                  optional int32 grault = 6;

                  // ignored detached comments.

                ```proto
                optional string leading_comments = 3;
                ```
            trailing_comments:
                ```proto
                optional string trailing_comments = 4;
                ```
            leading_detached_comments:
                ```proto
                repeated string leading_detached_comments = 6;
                ```
        """

        __slots__ = (
            "path",
            "span",
            "leading_comments",
            "trailing_comments",
            "leading_detached_comments",
        )

        if TYPE_CHECKING:

            def __init__(
                self,
                *,
                path: list[int] | None = None,
                span: list[int] | None = None,
                leading_comments: str | None = None,
                trailing_comments: str | None = None,
                leading_detached_comments: list[str] | None = None,
            ) -> None:
                pass

            path: list[int]
            span: list[int]
            leading_comments: str
            trailing_comments: str
            leading_detached_comments: list[str]


_GeneratedCodeInfoFields: TypeAlias = Literal["annotation"]


class GeneratedCodeInfo(Message[_GeneratedCodeInfoFields]):
    """
    Describes the relationship between generated code and its original source
    file. A GeneratedCodeInfo message is associated with only one generated
    source file, but may contain references to different source .proto files.

    ```proto
    message google.protobuf.GeneratedCodeInfo
    ```

    Attributes:
        annotation:
            An Annotation connects some span of text in generated code to an element
            of its generating .proto file.

            ```proto
            repeated google.protobuf.GeneratedCodeInfo.Annotation annotation = 1;
            ```
    """

    __slots__ = ("annotation",)

    if TYPE_CHECKING:

        def __init__(
            self, *, annotation: list[GeneratedCodeInfo.Annotation] | None = None
        ) -> None:
            pass

        annotation: list[GeneratedCodeInfo.Annotation]

    _AnnotationFields: TypeAlias = Literal[
        "path", "source_file", "begin", "end", "semantic"
    ]

    class Annotation(Message[_AnnotationFields]):
        """
        ```proto
        message google.protobuf.GeneratedCodeInfo.Annotation
        ```

        Attributes:
            path:
                Identifies the element in the original source .proto file. This field
                is formatted the same as SourceCodeInfo.Location.path.

                ```proto
                repeated int32 path = 1 [packed = true];
                ```
            source_file:
                Identifies the filesystem path to the original source .proto.

                ```proto
                optional string source_file = 2;
                ```
            begin:
                Identifies the starting offset in bytes in the generated code
                that relates to the identified object.

                ```proto
                optional int32 begin = 3;
                ```
            end:
                Identifies the ending offset in bytes in the generated code that
                relates to the identified object. The end offset should be one past
                the last relevant byte (so the length of the text = end - begin).

                ```proto
                optional int32 end = 4;
                ```
            semantic:
                ```proto
                optional google.protobuf.GeneratedCodeInfo.Annotation.Semantic semantic = 5;
                ```
        """

        __slots__ = ("path", "source_file", "begin", "end", "semantic")

        if TYPE_CHECKING:

            def __init__(
                self,
                *,
                path: list[int] | None = None,
                source_file: str | None = None,
                begin: int | None = None,
                end: int | None = None,
                semantic: GeneratedCodeInfo.Annotation.Semantic | None = None,
            ) -> None:
                pass

            path: list[int]
            source_file: str
            begin: int
            end: int
            semantic: GeneratedCodeInfo.Annotation.Semantic

        class Semantic(Enum):
            """
            Represents the identified object's effect on the element in the original
            .proto file.

            ```proto
            enum google.protobuf.GeneratedCodeInfo.Annotation.Semantic
            ```

            Attributes:
                NONE:
                    There is no effect or the effect is indescribable.

                    ```proto
                    NONE = 0
                    ```
                SET:
                    The element is set or otherwise mutated.

                    ```proto
                    SET = 1
                    ```
                ALIAS:
                    An alias to the element is returned.

                    ```proto
                    ALIAS = 2
                    ```
            """

            NONE = 0
            SET = 1
            ALIAS = 2


class Edition(Enum):
    """
    The full set of known editions.

    ```proto
    enum google.protobuf.Edition
    ```

    Attributes:
        UNKNOWN:
            A placeholder for an unknown edition value.

            ```proto
            EDITION_UNKNOWN = 0
            ```
        LEGACY:
            A placeholder edition for specifying default behaviors *before* a feature
            was first introduced.  This is effectively an "infinite past".

            ```proto
            EDITION_LEGACY = 900
            ```
        PROTO2:
            Legacy syntax "editions".  These pre-date editions, but behave much like
            distinct editions.  These can't be used to specify the edition of proto
            files, but feature definitions must supply proto2/proto3 defaults for
            backwards compatibility.

            ```proto
            EDITION_PROTO2 = 998
            ```
        PROTO3:
            ```proto
            EDITION_PROTO3 = 999
            ```
        EDITION_2023:
            Editions that have been released.  The specific values are arbitrary and
            should not be depended on, but they will always be time-ordered for easy
            comparison.

            ```proto
            EDITION_2023 = 1000
            ```
        EDITION_2024:
            ```proto
            EDITION_2024 = 1001
            ```
        EDITION_2026:
            ```proto
            EDITION_2026 = 1002
            ```
        UNSTABLE:
            A placeholder edition for developing and testing unscheduled features.

            ```proto
            EDITION_UNSTABLE = 9999
            ```
        EDITION_1_TEST_ONLY:
            Placeholder editions for testing feature resolution.  These should not be
            used or relied on outside of tests.

            ```proto
            EDITION_1_TEST_ONLY = 1
            ```
        EDITION_2_TEST_ONLY:
            ```proto
            EDITION_2_TEST_ONLY = 2
            ```
        EDITION_99997_TEST_ONLY:
            ```proto
            EDITION_99997_TEST_ONLY = 99997
            ```
        EDITION_99998_TEST_ONLY:
            ```proto
            EDITION_99998_TEST_ONLY = 99998
            ```
        EDITION_99999_TEST_ONLY:
            ```proto
            EDITION_99999_TEST_ONLY = 99999
            ```
        MAX:
            Placeholder for specifying unbounded edition support.  This should only
            ever be used by plugins that can expect to never require any changes to
            support a new edition.

            ```proto
            EDITION_MAX = 2147483647
            ```
    """

    UNKNOWN = 0
    LEGACY = 900
    PROTO2 = 998
    PROTO3 = 999
    EDITION_2023 = 1000
    EDITION_2024 = 1001
    EDITION_2026 = 1002
    UNSTABLE = 9999
    EDITION_1_TEST_ONLY = 1
    EDITION_2_TEST_ONLY = 2
    EDITION_99997_TEST_ONLY = 99997
    EDITION_99998_TEST_ONLY = 99998
    EDITION_99999_TEST_ONLY = 99999
    MAX = 2147483647


class SymbolVisibility(Enum):
    """
    Describes the 'visibility' of a symbol with respect to the proto import
    system. Symbols can only be imported when the visibility rules do not prevent
    it (ex: local symbols cannot be imported).  Visibility modifiers can only set
    on `message` and `enum` as they are the only types available to be referenced
    from other files.

    ```proto
    enum google.protobuf.SymbolVisibility
    ```

    Attributes:
        VISIBILITY_UNSET:
            ```proto
            VISIBILITY_UNSET = 0
            ```
        VISIBILITY_LOCAL:
            ```proto
            VISIBILITY_LOCAL = 1
            ```
        VISIBILITY_EXPORT:
            ```proto
            VISIBILITY_EXPORT = 2
            ```
    """

    VISIBILITY_UNSET = 0
    VISIBILITY_LOCAL = 1
    VISIBILITY_EXPORT = 2


_DESC = boot(
    FileDescriptorProto(
        name="google/protobuf/descriptor.proto",
        package="google.protobuf",
        dependency=[],
        public_dependency=[],
        weak_dependency=[],
        option_dependency=[],
        message_type=[
            DescriptorProto(
                name="FileDescriptorSet",
                field=[
                    FieldDescriptorProto(
                        name="file",
                        number=1,
                        label=FieldDescriptorProto.Label.REPEATED,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.FileDescriptorProto",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="file",
                        options=None,
                        proto3_optional=unset(False),
                    )
                ],
                extension=[],
                nested_type=[],
                enum_type=[],
                extension_range=[
                    DescriptorProto.ExtensionRange(
                        start=536000000,
                        end=536000001,
                        options=ExtensionRangeOptions(
                            uninterpreted_option=[],
                            declaration=[
                                ExtensionRangeOptions.Declaration(
                                    number=536000000,
                                    full_name=".buf.descriptor.v1.buf_file_descriptor_set_extension",
                                    type=".buf.descriptor.v1.FileDescriptorSetExtension",
                                    reserved=unset(False),
                                    repeated=unset(False),
                                )
                            ],
                            features=None,
                            verification=unset(
                                ExtensionRangeOptions.VerificationState.UNVERIFIED
                            ),
                        ),
                    )
                ],
                oneof_decl=[],
                options=None,
                reserved_range=[],
                reserved_name=[],
                visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
            ),
            DescriptorProto(
                name="FileDescriptorProto",
                field=[
                    FieldDescriptorProto(
                        name="name",
                        number=1,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.STRING,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="name",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="package",
                        number=2,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.STRING,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="package",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="dependency",
                        number=3,
                        label=FieldDescriptorProto.Label.REPEATED,
                        type=FieldDescriptorProto.Type.STRING,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="dependency",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="public_dependency",
                        number=10,
                        label=FieldDescriptorProto.Label.REPEATED,
                        type=FieldDescriptorProto.Type.INT32,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="publicDependency",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="weak_dependency",
                        number=11,
                        label=FieldDescriptorProto.Label.REPEATED,
                        type=FieldDescriptorProto.Type.INT32,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="weakDependency",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="option_dependency",
                        number=15,
                        label=FieldDescriptorProto.Label.REPEATED,
                        type=FieldDescriptorProto.Type.STRING,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="optionDependency",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="message_type",
                        number=4,
                        label=FieldDescriptorProto.Label.REPEATED,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.DescriptorProto",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="messageType",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="enum_type",
                        number=5,
                        label=FieldDescriptorProto.Label.REPEATED,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.EnumDescriptorProto",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="enumType",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="service",
                        number=6,
                        label=FieldDescriptorProto.Label.REPEATED,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.ServiceDescriptorProto",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="service",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="extension",
                        number=7,
                        label=FieldDescriptorProto.Label.REPEATED,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.FieldDescriptorProto",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="extension",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="options",
                        number=8,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.FileOptions",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="options",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="source_code_info",
                        number=9,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.SourceCodeInfo",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="sourceCodeInfo",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="syntax",
                        number=12,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.STRING,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="syntax",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="edition",
                        number=14,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.ENUM,
                        type_name=".google.protobuf.Edition",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="edition",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                ],
                extension=[],
                nested_type=[],
                enum_type=[],
                extension_range=[],
                oneof_decl=[],
                options=None,
                reserved_range=[],
                reserved_name=[],
                visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
            ),
            DescriptorProto(
                name="DescriptorProto",
                field=[
                    FieldDescriptorProto(
                        name="name",
                        number=1,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.STRING,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="name",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="field",
                        number=2,
                        label=FieldDescriptorProto.Label.REPEATED,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.FieldDescriptorProto",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="field",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="extension",
                        number=6,
                        label=FieldDescriptorProto.Label.REPEATED,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.FieldDescriptorProto",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="extension",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="nested_type",
                        number=3,
                        label=FieldDescriptorProto.Label.REPEATED,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.DescriptorProto",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="nestedType",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="enum_type",
                        number=4,
                        label=FieldDescriptorProto.Label.REPEATED,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.EnumDescriptorProto",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="enumType",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="extension_range",
                        number=5,
                        label=FieldDescriptorProto.Label.REPEATED,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.DescriptorProto.ExtensionRange",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="extensionRange",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="oneof_decl",
                        number=8,
                        label=FieldDescriptorProto.Label.REPEATED,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.OneofDescriptorProto",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="oneofDecl",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="options",
                        number=7,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.MessageOptions",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="options",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="reserved_range",
                        number=9,
                        label=FieldDescriptorProto.Label.REPEATED,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.DescriptorProto.ReservedRange",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="reservedRange",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="reserved_name",
                        number=10,
                        label=FieldDescriptorProto.Label.REPEATED,
                        type=FieldDescriptorProto.Type.STRING,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="reservedName",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="visibility",
                        number=11,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.ENUM,
                        type_name=".google.protobuf.SymbolVisibility",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="visibility",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                ],
                extension=[],
                nested_type=[
                    DescriptorProto(
                        name="ExtensionRange",
                        field=[
                            FieldDescriptorProto(
                                name="start",
                                number=1,
                                label=FieldDescriptorProto.Label.OPTIONAL,
                                type=FieldDescriptorProto.Type.INT32,
                                type_name=unset(""),
                                extendee=unset(""),
                                default_value=unset(""),
                                oneof_index=unset(0),
                                json_name="start",
                                options=None,
                                proto3_optional=unset(False),
                            ),
                            FieldDescriptorProto(
                                name="end",
                                number=2,
                                label=FieldDescriptorProto.Label.OPTIONAL,
                                type=FieldDescriptorProto.Type.INT32,
                                type_name=unset(""),
                                extendee=unset(""),
                                default_value=unset(""),
                                oneof_index=unset(0),
                                json_name="end",
                                options=None,
                                proto3_optional=unset(False),
                            ),
                            FieldDescriptorProto(
                                name="options",
                                number=3,
                                label=FieldDescriptorProto.Label.OPTIONAL,
                                type=FieldDescriptorProto.Type.MESSAGE,
                                type_name=".google.protobuf.ExtensionRangeOptions",
                                extendee=unset(""),
                                default_value=unset(""),
                                oneof_index=unset(0),
                                json_name="options",
                                options=None,
                                proto3_optional=unset(False),
                            ),
                        ],
                        extension=[],
                        nested_type=[],
                        enum_type=[],
                        extension_range=[],
                        oneof_decl=[],
                        options=None,
                        reserved_range=[],
                        reserved_name=[],
                        visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
                    ),
                    DescriptorProto(
                        name="ReservedRange",
                        field=[
                            FieldDescriptorProto(
                                name="start",
                                number=1,
                                label=FieldDescriptorProto.Label.OPTIONAL,
                                type=FieldDescriptorProto.Type.INT32,
                                type_name=unset(""),
                                extendee=unset(""),
                                default_value=unset(""),
                                oneof_index=unset(0),
                                json_name="start",
                                options=None,
                                proto3_optional=unset(False),
                            ),
                            FieldDescriptorProto(
                                name="end",
                                number=2,
                                label=FieldDescriptorProto.Label.OPTIONAL,
                                type=FieldDescriptorProto.Type.INT32,
                                type_name=unset(""),
                                extendee=unset(""),
                                default_value=unset(""),
                                oneof_index=unset(0),
                                json_name="end",
                                options=None,
                                proto3_optional=unset(False),
                            ),
                        ],
                        extension=[],
                        nested_type=[],
                        enum_type=[],
                        extension_range=[],
                        oneof_decl=[],
                        options=None,
                        reserved_range=[],
                        reserved_name=[],
                        visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
                    ),
                ],
                enum_type=[],
                extension_range=[],
                oneof_decl=[],
                options=None,
                reserved_range=[],
                reserved_name=[],
                visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
            ),
            DescriptorProto(
                name="ExtensionRangeOptions",
                field=[
                    FieldDescriptorProto(
                        name="uninterpreted_option",
                        number=999,
                        label=FieldDescriptorProto.Label.REPEATED,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.UninterpretedOption",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="uninterpretedOption",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="declaration",
                        number=2,
                        label=FieldDescriptorProto.Label.REPEATED,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.ExtensionRangeOptions.Declaration",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="declaration",
                        options=FieldOptions(
                            ctype=unset(FieldOptions.CType.STRING),
                            packed=unset(False),
                            jstype=unset(FieldOptions.JSType.JS_NORMAL),
                            lazy=unset(False),
                            unverified_lazy=unset(False),
                            deprecated=unset(False),
                            weak=unset(False),
                            debug_redact=unset(False),
                            retention=FieldOptions.OptionRetention.RETENTION_SOURCE,
                            targets=[],
                            edition_defaults=[],
                            features=None,
                            feature_support=None,
                            uninterpreted_option=[],
                        ),
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="features",
                        number=50,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.FeatureSet",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="features",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="verification",
                        number=3,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.ENUM,
                        type_name=".google.protobuf.ExtensionRangeOptions.VerificationState",
                        extendee=unset(""),
                        default_value="UNVERIFIED",
                        oneof_index=unset(0),
                        json_name="verification",
                        options=FieldOptions(
                            ctype=unset(FieldOptions.CType.STRING),
                            packed=unset(False),
                            jstype=unset(FieldOptions.JSType.JS_NORMAL),
                            lazy=unset(False),
                            unverified_lazy=unset(False),
                            deprecated=unset(False),
                            weak=unset(False),
                            debug_redact=unset(False),
                            retention=FieldOptions.OptionRetention.RETENTION_SOURCE,
                            targets=[],
                            edition_defaults=[],
                            features=None,
                            feature_support=None,
                            uninterpreted_option=[],
                        ),
                        proto3_optional=unset(False),
                    ),
                ],
                extension=[],
                nested_type=[
                    DescriptorProto(
                        name="Declaration",
                        field=[
                            FieldDescriptorProto(
                                name="number",
                                number=1,
                                label=FieldDescriptorProto.Label.OPTIONAL,
                                type=FieldDescriptorProto.Type.INT32,
                                type_name=unset(""),
                                extendee=unset(""),
                                default_value=unset(""),
                                oneof_index=unset(0),
                                json_name="number",
                                options=None,
                                proto3_optional=unset(False),
                            ),
                            FieldDescriptorProto(
                                name="full_name",
                                number=2,
                                label=FieldDescriptorProto.Label.OPTIONAL,
                                type=FieldDescriptorProto.Type.STRING,
                                type_name=unset(""),
                                extendee=unset(""),
                                default_value=unset(""),
                                oneof_index=unset(0),
                                json_name="fullName",
                                options=None,
                                proto3_optional=unset(False),
                            ),
                            FieldDescriptorProto(
                                name="type",
                                number=3,
                                label=FieldDescriptorProto.Label.OPTIONAL,
                                type=FieldDescriptorProto.Type.STRING,
                                type_name=unset(""),
                                extendee=unset(""),
                                default_value=unset(""),
                                oneof_index=unset(0),
                                json_name="type",
                                options=None,
                                proto3_optional=unset(False),
                            ),
                            FieldDescriptorProto(
                                name="reserved",
                                number=5,
                                label=FieldDescriptorProto.Label.OPTIONAL,
                                type=FieldDescriptorProto.Type.BOOL,
                                type_name=unset(""),
                                extendee=unset(""),
                                default_value=unset(""),
                                oneof_index=unset(0),
                                json_name="reserved",
                                options=None,
                                proto3_optional=unset(False),
                            ),
                            FieldDescriptorProto(
                                name="repeated",
                                number=6,
                                label=FieldDescriptorProto.Label.OPTIONAL,
                                type=FieldDescriptorProto.Type.BOOL,
                                type_name=unset(""),
                                extendee=unset(""),
                                default_value=unset(""),
                                oneof_index=unset(0),
                                json_name="repeated",
                                options=None,
                                proto3_optional=unset(False),
                            ),
                        ],
                        extension=[],
                        nested_type=[],
                        enum_type=[],
                        extension_range=[],
                        oneof_decl=[],
                        options=None,
                        reserved_range=[DescriptorProto.ReservedRange(start=4, end=5)],
                        reserved_name=[],
                        visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
                    )
                ],
                enum_type=[
                    EnumDescriptorProto(
                        name="VerificationState",
                        value=[
                            EnumValueDescriptorProto(
                                name="DECLARATION", number=0, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="UNVERIFIED", number=1, options=None
                            ),
                        ],
                        options=None,
                        reserved_range=[],
                        reserved_name=[],
                        visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
                    )
                ],
                extension_range=[
                    DescriptorProto.ExtensionRange(start=990, end=999, options=None),
                    DescriptorProto.ExtensionRange(
                        start=1000, end=536870912, options=None
                    ),
                ],
                oneof_decl=[],
                options=None,
                reserved_range=[],
                reserved_name=[],
                visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
            ),
            DescriptorProto(
                name="FieldDescriptorProto",
                field=[
                    FieldDescriptorProto(
                        name="name",
                        number=1,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.STRING,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="name",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="number",
                        number=3,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.INT32,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="number",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="label",
                        number=4,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.ENUM,
                        type_name=".google.protobuf.FieldDescriptorProto.Label",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="label",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="type",
                        number=5,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.ENUM,
                        type_name=".google.protobuf.FieldDescriptorProto.Type",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="type",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="type_name",
                        number=6,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.STRING,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="typeName",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="extendee",
                        number=2,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.STRING,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="extendee",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="default_value",
                        number=7,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.STRING,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="defaultValue",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="oneof_index",
                        number=9,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.INT32,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="oneofIndex",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="json_name",
                        number=10,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.STRING,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="jsonName",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="options",
                        number=8,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.FieldOptions",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="options",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="proto3_optional",
                        number=17,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.BOOL,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="proto3Optional",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                ],
                extension=[],
                nested_type=[],
                enum_type=[
                    EnumDescriptorProto(
                        name="Type",
                        value=[
                            EnumValueDescriptorProto(
                                name="TYPE_DOUBLE", number=1, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="TYPE_FLOAT", number=2, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="TYPE_INT64", number=3, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="TYPE_UINT64", number=4, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="TYPE_INT32", number=5, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="TYPE_FIXED64", number=6, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="TYPE_FIXED32", number=7, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="TYPE_BOOL", number=8, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="TYPE_STRING", number=9, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="TYPE_GROUP", number=10, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="TYPE_MESSAGE", number=11, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="TYPE_BYTES", number=12, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="TYPE_UINT32", number=13, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="TYPE_ENUM", number=14, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="TYPE_SFIXED32", number=15, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="TYPE_SFIXED64", number=16, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="TYPE_SINT32", number=17, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="TYPE_SINT64", number=18, options=None
                            ),
                        ],
                        options=None,
                        reserved_range=[],
                        reserved_name=[],
                        visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
                    ),
                    EnumDescriptorProto(
                        name="Label",
                        value=[
                            EnumValueDescriptorProto(
                                name="LABEL_OPTIONAL", number=1, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="LABEL_REPEATED", number=3, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="LABEL_REQUIRED", number=2, options=None
                            ),
                        ],
                        options=None,
                        reserved_range=[],
                        reserved_name=[],
                        visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
                    ),
                ],
                extension_range=[],
                oneof_decl=[],
                options=None,
                reserved_range=[],
                reserved_name=[],
                visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
            ),
            DescriptorProto(
                name="OneofDescriptorProto",
                field=[
                    FieldDescriptorProto(
                        name="name",
                        number=1,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.STRING,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="name",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="options",
                        number=2,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.OneofOptions",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="options",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                ],
                extension=[],
                nested_type=[],
                enum_type=[],
                extension_range=[],
                oneof_decl=[],
                options=None,
                reserved_range=[],
                reserved_name=[],
                visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
            ),
            DescriptorProto(
                name="EnumDescriptorProto",
                field=[
                    FieldDescriptorProto(
                        name="name",
                        number=1,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.STRING,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="name",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="value",
                        number=2,
                        label=FieldDescriptorProto.Label.REPEATED,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.EnumValueDescriptorProto",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="value",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="options",
                        number=3,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.EnumOptions",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="options",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="reserved_range",
                        number=4,
                        label=FieldDescriptorProto.Label.REPEATED,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.EnumDescriptorProto.EnumReservedRange",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="reservedRange",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="reserved_name",
                        number=5,
                        label=FieldDescriptorProto.Label.REPEATED,
                        type=FieldDescriptorProto.Type.STRING,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="reservedName",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="visibility",
                        number=6,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.ENUM,
                        type_name=".google.protobuf.SymbolVisibility",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="visibility",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                ],
                extension=[],
                nested_type=[
                    DescriptorProto(
                        name="EnumReservedRange",
                        field=[
                            FieldDescriptorProto(
                                name="start",
                                number=1,
                                label=FieldDescriptorProto.Label.OPTIONAL,
                                type=FieldDescriptorProto.Type.INT32,
                                type_name=unset(""),
                                extendee=unset(""),
                                default_value=unset(""),
                                oneof_index=unset(0),
                                json_name="start",
                                options=None,
                                proto3_optional=unset(False),
                            ),
                            FieldDescriptorProto(
                                name="end",
                                number=2,
                                label=FieldDescriptorProto.Label.OPTIONAL,
                                type=FieldDescriptorProto.Type.INT32,
                                type_name=unset(""),
                                extendee=unset(""),
                                default_value=unset(""),
                                oneof_index=unset(0),
                                json_name="end",
                                options=None,
                                proto3_optional=unset(False),
                            ),
                        ],
                        extension=[],
                        nested_type=[],
                        enum_type=[],
                        extension_range=[],
                        oneof_decl=[],
                        options=None,
                        reserved_range=[],
                        reserved_name=[],
                        visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
                    )
                ],
                enum_type=[],
                extension_range=[],
                oneof_decl=[],
                options=None,
                reserved_range=[],
                reserved_name=[],
                visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
            ),
            DescriptorProto(
                name="EnumValueDescriptorProto",
                field=[
                    FieldDescriptorProto(
                        name="name",
                        number=1,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.STRING,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="name",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="number",
                        number=2,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.INT32,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="number",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="options",
                        number=3,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.EnumValueOptions",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="options",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                ],
                extension=[],
                nested_type=[],
                enum_type=[],
                extension_range=[],
                oneof_decl=[],
                options=None,
                reserved_range=[],
                reserved_name=[],
                visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
            ),
            DescriptorProto(
                name="ServiceDescriptorProto",
                field=[
                    FieldDescriptorProto(
                        name="name",
                        number=1,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.STRING,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="name",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="method",
                        number=2,
                        label=FieldDescriptorProto.Label.REPEATED,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.MethodDescriptorProto",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="method",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="options",
                        number=3,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.ServiceOptions",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="options",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                ],
                extension=[],
                nested_type=[],
                enum_type=[],
                extension_range=[],
                oneof_decl=[],
                options=None,
                reserved_range=[DescriptorProto.ReservedRange(start=4, end=5)],
                reserved_name=["stream"],
                visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
            ),
            DescriptorProto(
                name="MethodDescriptorProto",
                field=[
                    FieldDescriptorProto(
                        name="name",
                        number=1,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.STRING,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="name",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="input_type",
                        number=2,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.STRING,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="inputType",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="output_type",
                        number=3,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.STRING,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="outputType",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="options",
                        number=4,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.MethodOptions",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="options",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="client_streaming",
                        number=5,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.BOOL,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value="false",
                        oneof_index=unset(0),
                        json_name="clientStreaming",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="server_streaming",
                        number=6,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.BOOL,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value="false",
                        oneof_index=unset(0),
                        json_name="serverStreaming",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                ],
                extension=[],
                nested_type=[],
                enum_type=[],
                extension_range=[],
                oneof_decl=[],
                options=None,
                reserved_range=[],
                reserved_name=[],
                visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
            ),
            DescriptorProto(
                name="FileOptions",
                field=[
                    FieldDescriptorProto(
                        name="java_package",
                        number=1,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.STRING,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="javaPackage",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="java_outer_classname",
                        number=8,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.STRING,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="javaOuterClassname",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="java_multiple_files",
                        number=10,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.BOOL,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value="false",
                        oneof_index=unset(0),
                        json_name="javaMultipleFiles",
                        options=FieldOptions(
                            ctype=unset(FieldOptions.CType.STRING),
                            packed=unset(False),
                            jstype=unset(FieldOptions.JSType.JS_NORMAL),
                            lazy=unset(False),
                            unverified_lazy=unset(False),
                            deprecated=unset(False),
                            weak=unset(False),
                            debug_redact=unset(False),
                            retention=unset(
                                FieldOptions.OptionRetention.RETENTION_UNKNOWN
                            ),
                            targets=[],
                            edition_defaults=[],
                            features=None,
                            feature_support=FieldOptions.FeatureSupport(
                                edition_introduced=Edition.PROTO2,
                                edition_deprecated=unset(Edition.UNKNOWN),
                                deprecation_warning=unset(""),
                                edition_removed=Edition.EDITION_2024,
                                removal_error="This behavior is enabled by default in editions 2024 and above. To disable it, you can set `features.(pb.java).nest_in_file_class = YES` on individual messages, enums, or services.",
                            ),
                            uninterpreted_option=[],
                        ),
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="java_generate_equals_and_hash",
                        number=20,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.BOOL,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="javaGenerateEqualsAndHash",
                        options=FieldOptions(
                            ctype=unset(FieldOptions.CType.STRING),
                            packed=unset(False),
                            jstype=unset(FieldOptions.JSType.JS_NORMAL),
                            lazy=unset(False),
                            unverified_lazy=unset(False),
                            deprecated=True,
                            weak=unset(False),
                            debug_redact=unset(False),
                            retention=unset(
                                FieldOptions.OptionRetention.RETENTION_UNKNOWN
                            ),
                            targets=[],
                            edition_defaults=[],
                            features=None,
                            feature_support=None,
                            uninterpreted_option=[],
                        ),
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="java_string_check_utf8",
                        number=27,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.BOOL,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value="false",
                        oneof_index=unset(0),
                        json_name="javaStringCheckUtf8",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="optimize_for",
                        number=9,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.ENUM,
                        type_name=".google.protobuf.FileOptions.OptimizeMode",
                        extendee=unset(""),
                        default_value="SPEED",
                        oneof_index=unset(0),
                        json_name="optimizeFor",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="go_package",
                        number=11,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.STRING,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="goPackage",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="cc_generic_services",
                        number=16,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.BOOL,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value="false",
                        oneof_index=unset(0),
                        json_name="ccGenericServices",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="java_generic_services",
                        number=17,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.BOOL,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value="false",
                        oneof_index=unset(0),
                        json_name="javaGenericServices",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="py_generic_services",
                        number=18,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.BOOL,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value="false",
                        oneof_index=unset(0),
                        json_name="pyGenericServices",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="deprecated",
                        number=23,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.BOOL,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value="false",
                        oneof_index=unset(0),
                        json_name="deprecated",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="cc_enable_arenas",
                        number=31,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.BOOL,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value="true",
                        oneof_index=unset(0),
                        json_name="ccEnableArenas",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="objc_class_prefix",
                        number=36,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.STRING,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="objcClassPrefix",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="csharp_namespace",
                        number=37,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.STRING,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="csharpNamespace",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="swift_prefix",
                        number=39,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.STRING,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="swiftPrefix",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="php_class_prefix",
                        number=40,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.STRING,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="phpClassPrefix",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="php_namespace",
                        number=41,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.STRING,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="phpNamespace",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="php_metadata_namespace",
                        number=44,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.STRING,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="phpMetadataNamespace",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="ruby_package",
                        number=45,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.STRING,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="rubyPackage",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="features",
                        number=50,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.FeatureSet",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="features",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="uninterpreted_option",
                        number=999,
                        label=FieldDescriptorProto.Label.REPEATED,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.UninterpretedOption",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="uninterpretedOption",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                ],
                extension=[],
                nested_type=[],
                enum_type=[
                    EnumDescriptorProto(
                        name="OptimizeMode",
                        value=[
                            EnumValueDescriptorProto(
                                name="SPEED", number=1, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="CODE_SIZE", number=2, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="LITE_RUNTIME", number=3, options=None
                            ),
                        ],
                        options=None,
                        reserved_range=[],
                        reserved_name=[],
                        visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
                    )
                ],
                extension_range=[
                    DescriptorProto.ExtensionRange(
                        start=990,
                        end=999,
                        options=ExtensionRangeOptions(
                            uninterpreted_option=[],
                            declaration=[
                                ExtensionRangeOptions.Declaration(
                                    number=990,
                                    full_name=".pb.file.cpp",
                                    type=".pb.file.CppFileOptions",
                                    reserved=unset(False),
                                    repeated=unset(False),
                                )
                            ],
                            features=None,
                            verification=unset(
                                ExtensionRangeOptions.VerificationState.UNVERIFIED
                            ),
                        ),
                    ),
                    DescriptorProto.ExtensionRange(
                        start=1000, end=536870912, options=None
                    ),
                ],
                oneof_decl=[],
                options=None,
                reserved_range=[
                    DescriptorProto.ReservedRange(start=42, end=43),
                    DescriptorProto.ReservedRange(start=38, end=39),
                ],
                reserved_name=["php_generic_services"],
                visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
            ),
            DescriptorProto(
                name="MessageOptions",
                field=[
                    FieldDescriptorProto(
                        name="message_set_wire_format",
                        number=1,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.BOOL,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value="false",
                        oneof_index=unset(0),
                        json_name="messageSetWireFormat",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="no_standard_descriptor_accessor",
                        number=2,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.BOOL,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value="false",
                        oneof_index=unset(0),
                        json_name="noStandardDescriptorAccessor",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="deprecated",
                        number=3,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.BOOL,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value="false",
                        oneof_index=unset(0),
                        json_name="deprecated",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="map_entry",
                        number=7,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.BOOL,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="mapEntry",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="deprecated_legacy_json_field_conflicts",
                        number=11,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.BOOL,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="deprecatedLegacyJsonFieldConflicts",
                        options=FieldOptions(
                            ctype=unset(FieldOptions.CType.STRING),
                            packed=unset(False),
                            jstype=unset(FieldOptions.JSType.JS_NORMAL),
                            lazy=unset(False),
                            unverified_lazy=unset(False),
                            deprecated=True,
                            weak=unset(False),
                            debug_redact=unset(False),
                            retention=unset(
                                FieldOptions.OptionRetention.RETENTION_UNKNOWN
                            ),
                            targets=[],
                            edition_defaults=[],
                            features=None,
                            feature_support=None,
                            uninterpreted_option=[],
                        ),
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="features",
                        number=12,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.FeatureSet",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="features",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="uninterpreted_option",
                        number=999,
                        label=FieldDescriptorProto.Label.REPEATED,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.UninterpretedOption",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="uninterpretedOption",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                ],
                extension=[],
                nested_type=[],
                enum_type=[],
                extension_range=[
                    DescriptorProto.ExtensionRange(start=990, end=999, options=None),
                    DescriptorProto.ExtensionRange(
                        start=1000, end=536870912, options=None
                    ),
                ],
                oneof_decl=[],
                options=None,
                reserved_range=[
                    DescriptorProto.ReservedRange(start=4, end=5),
                    DescriptorProto.ReservedRange(start=5, end=6),
                    DescriptorProto.ReservedRange(start=6, end=7),
                    DescriptorProto.ReservedRange(start=8, end=9),
                    DescriptorProto.ReservedRange(start=9, end=10),
                ],
                reserved_name=[],
                visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
            ),
            DescriptorProto(
                name="FieldOptions",
                field=[
                    FieldDescriptorProto(
                        name="ctype",
                        number=1,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.ENUM,
                        type_name=".google.protobuf.FieldOptions.CType",
                        extendee=unset(""),
                        default_value="STRING",
                        oneof_index=unset(0),
                        json_name="ctype",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="packed",
                        number=2,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.BOOL,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="packed",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="jstype",
                        number=6,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.ENUM,
                        type_name=".google.protobuf.FieldOptions.JSType",
                        extendee=unset(""),
                        default_value="JS_NORMAL",
                        oneof_index=unset(0),
                        json_name="jstype",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="lazy",
                        number=5,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.BOOL,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value="false",
                        oneof_index=unset(0),
                        json_name="lazy",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="unverified_lazy",
                        number=15,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.BOOL,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value="false",
                        oneof_index=unset(0),
                        json_name="unverifiedLazy",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="deprecated",
                        number=3,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.BOOL,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value="false",
                        oneof_index=unset(0),
                        json_name="deprecated",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="weak",
                        number=10,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.BOOL,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value="false",
                        oneof_index=unset(0),
                        json_name="weak",
                        options=FieldOptions(
                            ctype=unset(FieldOptions.CType.STRING),
                            packed=unset(False),
                            jstype=unset(FieldOptions.JSType.JS_NORMAL),
                            lazy=unset(False),
                            unverified_lazy=unset(False),
                            deprecated=True,
                            weak=unset(False),
                            debug_redact=unset(False),
                            retention=unset(
                                FieldOptions.OptionRetention.RETENTION_UNKNOWN
                            ),
                            targets=[],
                            edition_defaults=[],
                            features=None,
                            feature_support=None,
                            uninterpreted_option=[],
                        ),
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="debug_redact",
                        number=16,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.BOOL,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value="false",
                        oneof_index=unset(0),
                        json_name="debugRedact",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="retention",
                        number=17,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.ENUM,
                        type_name=".google.protobuf.FieldOptions.OptionRetention",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="retention",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="targets",
                        number=19,
                        label=FieldDescriptorProto.Label.REPEATED,
                        type=FieldDescriptorProto.Type.ENUM,
                        type_name=".google.protobuf.FieldOptions.OptionTargetType",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="targets",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="edition_defaults",
                        number=20,
                        label=FieldDescriptorProto.Label.REPEATED,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.FieldOptions.EditionDefault",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="editionDefaults",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="features",
                        number=21,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.FeatureSet",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="features",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="feature_support",
                        number=22,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.FieldOptions.FeatureSupport",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="featureSupport",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="uninterpreted_option",
                        number=999,
                        label=FieldDescriptorProto.Label.REPEATED,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.UninterpretedOption",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="uninterpretedOption",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                ],
                extension=[],
                nested_type=[
                    DescriptorProto(
                        name="EditionDefault",
                        field=[
                            FieldDescriptorProto(
                                name="edition",
                                number=3,
                                label=FieldDescriptorProto.Label.OPTIONAL,
                                type=FieldDescriptorProto.Type.ENUM,
                                type_name=".google.protobuf.Edition",
                                extendee=unset(""),
                                default_value=unset(""),
                                oneof_index=unset(0),
                                json_name="edition",
                                options=None,
                                proto3_optional=unset(False),
                            ),
                            FieldDescriptorProto(
                                name="value",
                                number=2,
                                label=FieldDescriptorProto.Label.OPTIONAL,
                                type=FieldDescriptorProto.Type.STRING,
                                type_name=unset(""),
                                extendee=unset(""),
                                default_value=unset(""),
                                oneof_index=unset(0),
                                json_name="value",
                                options=None,
                                proto3_optional=unset(False),
                            ),
                        ],
                        extension=[],
                        nested_type=[],
                        enum_type=[],
                        extension_range=[],
                        oneof_decl=[],
                        options=None,
                        reserved_range=[],
                        reserved_name=[],
                        visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
                    ),
                    DescriptorProto(
                        name="FeatureSupport",
                        field=[
                            FieldDescriptorProto(
                                name="edition_introduced",
                                number=1,
                                label=FieldDescriptorProto.Label.OPTIONAL,
                                type=FieldDescriptorProto.Type.ENUM,
                                type_name=".google.protobuf.Edition",
                                extendee=unset(""),
                                default_value=unset(""),
                                oneof_index=unset(0),
                                json_name="editionIntroduced",
                                options=None,
                                proto3_optional=unset(False),
                            ),
                            FieldDescriptorProto(
                                name="edition_deprecated",
                                number=2,
                                label=FieldDescriptorProto.Label.OPTIONAL,
                                type=FieldDescriptorProto.Type.ENUM,
                                type_name=".google.protobuf.Edition",
                                extendee=unset(""),
                                default_value=unset(""),
                                oneof_index=unset(0),
                                json_name="editionDeprecated",
                                options=None,
                                proto3_optional=unset(False),
                            ),
                            FieldDescriptorProto(
                                name="deprecation_warning",
                                number=3,
                                label=FieldDescriptorProto.Label.OPTIONAL,
                                type=FieldDescriptorProto.Type.STRING,
                                type_name=unset(""),
                                extendee=unset(""),
                                default_value=unset(""),
                                oneof_index=unset(0),
                                json_name="deprecationWarning",
                                options=None,
                                proto3_optional=unset(False),
                            ),
                            FieldDescriptorProto(
                                name="edition_removed",
                                number=4,
                                label=FieldDescriptorProto.Label.OPTIONAL,
                                type=FieldDescriptorProto.Type.ENUM,
                                type_name=".google.protobuf.Edition",
                                extendee=unset(""),
                                default_value=unset(""),
                                oneof_index=unset(0),
                                json_name="editionRemoved",
                                options=None,
                                proto3_optional=unset(False),
                            ),
                            FieldDescriptorProto(
                                name="removal_error",
                                number=5,
                                label=FieldDescriptorProto.Label.OPTIONAL,
                                type=FieldDescriptorProto.Type.STRING,
                                type_name=unset(""),
                                extendee=unset(""),
                                default_value=unset(""),
                                oneof_index=unset(0),
                                json_name="removalError",
                                options=None,
                                proto3_optional=unset(False),
                            ),
                        ],
                        extension=[],
                        nested_type=[],
                        enum_type=[],
                        extension_range=[],
                        oneof_decl=[],
                        options=None,
                        reserved_range=[],
                        reserved_name=[],
                        visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
                    ),
                ],
                enum_type=[
                    EnumDescriptorProto(
                        name="CType",
                        value=[
                            EnumValueDescriptorProto(
                                name="STRING", number=0, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="CORD", number=1, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="STRING_PIECE", number=2, options=None
                            ),
                        ],
                        options=None,
                        reserved_range=[],
                        reserved_name=[],
                        visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
                    ),
                    EnumDescriptorProto(
                        name="JSType",
                        value=[
                            EnumValueDescriptorProto(
                                name="JS_NORMAL", number=0, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="JS_STRING", number=1, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="JS_NUMBER", number=2, options=None
                            ),
                        ],
                        options=None,
                        reserved_range=[],
                        reserved_name=[],
                        visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
                    ),
                    EnumDescriptorProto(
                        name="OptionRetention",
                        value=[
                            EnumValueDescriptorProto(
                                name="RETENTION_UNKNOWN", number=0, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="RETENTION_RUNTIME", number=1, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="RETENTION_SOURCE", number=2, options=None
                            ),
                        ],
                        options=None,
                        reserved_range=[],
                        reserved_name=[],
                        visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
                    ),
                    EnumDescriptorProto(
                        name="OptionTargetType",
                        value=[
                            EnumValueDescriptorProto(
                                name="TARGET_TYPE_UNKNOWN", number=0, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="TARGET_TYPE_FILE", number=1, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="TARGET_TYPE_EXTENSION_RANGE",
                                number=2,
                                options=None,
                            ),
                            EnumValueDescriptorProto(
                                name="TARGET_TYPE_MESSAGE", number=3, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="TARGET_TYPE_FIELD", number=4, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="TARGET_TYPE_ONEOF", number=5, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="TARGET_TYPE_ENUM", number=6, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="TARGET_TYPE_ENUM_ENTRY", number=7, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="TARGET_TYPE_SERVICE", number=8, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="TARGET_TYPE_METHOD", number=9, options=None
                            ),
                        ],
                        options=None,
                        reserved_range=[],
                        reserved_name=[],
                        visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
                    ),
                ],
                extension_range=[
                    DescriptorProto.ExtensionRange(start=990, end=999, options=None),
                    DescriptorProto.ExtensionRange(
                        start=1000, end=536870912, options=None
                    ),
                ],
                oneof_decl=[],
                options=None,
                reserved_range=[
                    DescriptorProto.ReservedRange(start=4, end=5),
                    DescriptorProto.ReservedRange(start=18, end=19),
                ],
                reserved_name=[],
                visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
            ),
            DescriptorProto(
                name="OneofOptions",
                field=[
                    FieldDescriptorProto(
                        name="features",
                        number=1,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.FeatureSet",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="features",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="uninterpreted_option",
                        number=999,
                        label=FieldDescriptorProto.Label.REPEATED,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.UninterpretedOption",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="uninterpretedOption",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                ],
                extension=[],
                nested_type=[],
                enum_type=[],
                extension_range=[
                    DescriptorProto.ExtensionRange(start=990, end=999, options=None),
                    DescriptorProto.ExtensionRange(
                        start=1000, end=536870912, options=None
                    ),
                ],
                oneof_decl=[],
                options=None,
                reserved_range=[],
                reserved_name=[],
                visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
            ),
            DescriptorProto(
                name="EnumOptions",
                field=[
                    FieldDescriptorProto(
                        name="allow_alias",
                        number=2,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.BOOL,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="allowAlias",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="deprecated",
                        number=3,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.BOOL,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value="false",
                        oneof_index=unset(0),
                        json_name="deprecated",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="deprecated_legacy_json_field_conflicts",
                        number=6,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.BOOL,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="deprecatedLegacyJsonFieldConflicts",
                        options=FieldOptions(
                            ctype=unset(FieldOptions.CType.STRING),
                            packed=unset(False),
                            jstype=unset(FieldOptions.JSType.JS_NORMAL),
                            lazy=unset(False),
                            unverified_lazy=unset(False),
                            deprecated=True,
                            weak=unset(False),
                            debug_redact=unset(False),
                            retention=unset(
                                FieldOptions.OptionRetention.RETENTION_UNKNOWN
                            ),
                            targets=[],
                            edition_defaults=[],
                            features=None,
                            feature_support=None,
                            uninterpreted_option=[],
                        ),
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="features",
                        number=7,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.FeatureSet",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="features",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="uninterpreted_option",
                        number=999,
                        label=FieldDescriptorProto.Label.REPEATED,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.UninterpretedOption",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="uninterpretedOption",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                ],
                extension=[],
                nested_type=[],
                enum_type=[],
                extension_range=[
                    DescriptorProto.ExtensionRange(start=990, end=999, options=None),
                    DescriptorProto.ExtensionRange(
                        start=1000, end=536870912, options=None
                    ),
                ],
                oneof_decl=[],
                options=None,
                reserved_range=[DescriptorProto.ReservedRange(start=5, end=6)],
                reserved_name=[],
                visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
            ),
            DescriptorProto(
                name="EnumValueOptions",
                field=[
                    FieldDescriptorProto(
                        name="deprecated",
                        number=1,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.BOOL,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value="false",
                        oneof_index=unset(0),
                        json_name="deprecated",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="features",
                        number=2,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.FeatureSet",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="features",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="debug_redact",
                        number=3,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.BOOL,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value="false",
                        oneof_index=unset(0),
                        json_name="debugRedact",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="feature_support",
                        number=4,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.FieldOptions.FeatureSupport",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="featureSupport",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="uninterpreted_option",
                        number=999,
                        label=FieldDescriptorProto.Label.REPEATED,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.UninterpretedOption",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="uninterpretedOption",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                ],
                extension=[],
                nested_type=[],
                enum_type=[],
                extension_range=[
                    DescriptorProto.ExtensionRange(start=990, end=999, options=None),
                    DescriptorProto.ExtensionRange(
                        start=1000, end=536870912, options=None
                    ),
                ],
                oneof_decl=[],
                options=None,
                reserved_range=[],
                reserved_name=[],
                visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
            ),
            DescriptorProto(
                name="ServiceOptions",
                field=[
                    FieldDescriptorProto(
                        name="features",
                        number=34,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.FeatureSet",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="features",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="deprecated",
                        number=33,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.BOOL,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value="false",
                        oneof_index=unset(0),
                        json_name="deprecated",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="uninterpreted_option",
                        number=999,
                        label=FieldDescriptorProto.Label.REPEATED,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.UninterpretedOption",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="uninterpretedOption",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                ],
                extension=[],
                nested_type=[],
                enum_type=[],
                extension_range=[
                    DescriptorProto.ExtensionRange(start=990, end=999, options=None),
                    DescriptorProto.ExtensionRange(
                        start=1000, end=536870912, options=None
                    ),
                ],
                oneof_decl=[],
                options=None,
                reserved_range=[],
                reserved_name=[],
                visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
            ),
            DescriptorProto(
                name="MethodOptions",
                field=[
                    FieldDescriptorProto(
                        name="deprecated",
                        number=33,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.BOOL,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value="false",
                        oneof_index=unset(0),
                        json_name="deprecated",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="idempotency_level",
                        number=34,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.ENUM,
                        type_name=".google.protobuf.MethodOptions.IdempotencyLevel",
                        extendee=unset(""),
                        default_value="IDEMPOTENCY_UNKNOWN",
                        oneof_index=unset(0),
                        json_name="idempotencyLevel",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="features",
                        number=35,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.FeatureSet",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="features",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="uninterpreted_option",
                        number=999,
                        label=FieldDescriptorProto.Label.REPEATED,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.UninterpretedOption",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="uninterpretedOption",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                ],
                extension=[],
                nested_type=[],
                enum_type=[
                    EnumDescriptorProto(
                        name="IdempotencyLevel",
                        value=[
                            EnumValueDescriptorProto(
                                name="IDEMPOTENCY_UNKNOWN", number=0, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="NO_SIDE_EFFECTS", number=1, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="IDEMPOTENT", number=2, options=None
                            ),
                        ],
                        options=None,
                        reserved_range=[],
                        reserved_name=[],
                        visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
                    )
                ],
                extension_range=[
                    DescriptorProto.ExtensionRange(start=990, end=999, options=None),
                    DescriptorProto.ExtensionRange(
                        start=1000, end=536870912, options=None
                    ),
                ],
                oneof_decl=[],
                options=None,
                reserved_range=[],
                reserved_name=[],
                visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
            ),
            DescriptorProto(
                name="UninterpretedOption",
                field=[
                    FieldDescriptorProto(
                        name="name",
                        number=2,
                        label=FieldDescriptorProto.Label.REPEATED,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.UninterpretedOption.NamePart",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="name",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="identifier_value",
                        number=3,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.STRING,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="identifierValue",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="positive_int_value",
                        number=4,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.UINT64,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="positiveIntValue",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="negative_int_value",
                        number=5,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.INT64,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="negativeIntValue",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="double_value",
                        number=6,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.DOUBLE,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="doubleValue",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="string_value",
                        number=7,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.BYTES,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="stringValue",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="aggregate_value",
                        number=8,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.STRING,
                        type_name=unset(""),
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="aggregateValue",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                ],
                extension=[],
                nested_type=[
                    DescriptorProto(
                        name="NamePart",
                        field=[
                            FieldDescriptorProto(
                                name="name_part",
                                number=1,
                                label=FieldDescriptorProto.Label.REQUIRED,
                                type=FieldDescriptorProto.Type.STRING,
                                type_name=unset(""),
                                extendee=unset(""),
                                default_value=unset(""),
                                oneof_index=unset(0),
                                json_name="namePart",
                                options=None,
                                proto3_optional=unset(False),
                            ),
                            FieldDescriptorProto(
                                name="is_extension",
                                number=2,
                                label=FieldDescriptorProto.Label.REQUIRED,
                                type=FieldDescriptorProto.Type.BOOL,
                                type_name=unset(""),
                                extendee=unset(""),
                                default_value=unset(""),
                                oneof_index=unset(0),
                                json_name="isExtension",
                                options=None,
                                proto3_optional=unset(False),
                            ),
                        ],
                        extension=[],
                        nested_type=[],
                        enum_type=[],
                        extension_range=[],
                        oneof_decl=[],
                        options=None,
                        reserved_range=[],
                        reserved_name=[],
                        visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
                    )
                ],
                enum_type=[],
                extension_range=[],
                oneof_decl=[],
                options=None,
                reserved_range=[],
                reserved_name=[],
                visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
            ),
            DescriptorProto(
                name="FeatureSet",
                field=[
                    FieldDescriptorProto(
                        name="field_presence",
                        number=1,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.ENUM,
                        type_name=".google.protobuf.FeatureSet.FieldPresence",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="fieldPresence",
                        options=FieldOptions(
                            ctype=unset(FieldOptions.CType.STRING),
                            packed=unset(False),
                            jstype=unset(FieldOptions.JSType.JS_NORMAL),
                            lazy=unset(False),
                            unverified_lazy=unset(False),
                            deprecated=unset(False),
                            weak=unset(False),
                            debug_redact=unset(False),
                            retention=FieldOptions.OptionRetention.RETENTION_RUNTIME,
                            targets=[
                                FieldOptions.OptionTargetType.TARGET_TYPE_FIELD,
                                FieldOptions.OptionTargetType.TARGET_TYPE_FILE,
                            ],
                            edition_defaults=[
                                FieldOptions.EditionDefault(
                                    edition=Edition.LEGACY, value="EXPLICIT"
                                ),
                                FieldOptions.EditionDefault(
                                    edition=Edition.PROTO3, value="IMPLICIT"
                                ),
                                FieldOptions.EditionDefault(
                                    edition=Edition.EDITION_2023, value="EXPLICIT"
                                ),
                            ],
                            features=None,
                            feature_support=FieldOptions.FeatureSupport(
                                edition_introduced=Edition.EDITION_2023,
                                edition_deprecated=unset(Edition.UNKNOWN),
                                deprecation_warning=unset(""),
                                edition_removed=unset(Edition.UNKNOWN),
                                removal_error=unset(""),
                            ),
                            uninterpreted_option=[],
                        ),
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="enum_type",
                        number=2,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.ENUM,
                        type_name=".google.protobuf.FeatureSet.EnumType",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="enumType",
                        options=FieldOptions(
                            ctype=unset(FieldOptions.CType.STRING),
                            packed=unset(False),
                            jstype=unset(FieldOptions.JSType.JS_NORMAL),
                            lazy=unset(False),
                            unverified_lazy=unset(False),
                            deprecated=unset(False),
                            weak=unset(False),
                            debug_redact=unset(False),
                            retention=FieldOptions.OptionRetention.RETENTION_RUNTIME,
                            targets=[
                                FieldOptions.OptionTargetType.TARGET_TYPE_ENUM,
                                FieldOptions.OptionTargetType.TARGET_TYPE_FILE,
                            ],
                            edition_defaults=[
                                FieldOptions.EditionDefault(
                                    edition=Edition.LEGACY, value="CLOSED"
                                ),
                                FieldOptions.EditionDefault(
                                    edition=Edition.PROTO3, value="OPEN"
                                ),
                            ],
                            features=None,
                            feature_support=FieldOptions.FeatureSupport(
                                edition_introduced=Edition.EDITION_2023,
                                edition_deprecated=unset(Edition.UNKNOWN),
                                deprecation_warning=unset(""),
                                edition_removed=unset(Edition.UNKNOWN),
                                removal_error=unset(""),
                            ),
                            uninterpreted_option=[],
                        ),
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="repeated_field_encoding",
                        number=3,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.ENUM,
                        type_name=".google.protobuf.FeatureSet.RepeatedFieldEncoding",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="repeatedFieldEncoding",
                        options=FieldOptions(
                            ctype=unset(FieldOptions.CType.STRING),
                            packed=unset(False),
                            jstype=unset(FieldOptions.JSType.JS_NORMAL),
                            lazy=unset(False),
                            unverified_lazy=unset(False),
                            deprecated=unset(False),
                            weak=unset(False),
                            debug_redact=unset(False),
                            retention=FieldOptions.OptionRetention.RETENTION_RUNTIME,
                            targets=[
                                FieldOptions.OptionTargetType.TARGET_TYPE_FIELD,
                                FieldOptions.OptionTargetType.TARGET_TYPE_FILE,
                            ],
                            edition_defaults=[
                                FieldOptions.EditionDefault(
                                    edition=Edition.LEGACY, value="EXPANDED"
                                ),
                                FieldOptions.EditionDefault(
                                    edition=Edition.PROTO3, value="PACKED"
                                ),
                            ],
                            features=None,
                            feature_support=FieldOptions.FeatureSupport(
                                edition_introduced=Edition.EDITION_2023,
                                edition_deprecated=unset(Edition.UNKNOWN),
                                deprecation_warning=unset(""),
                                edition_removed=unset(Edition.UNKNOWN),
                                removal_error=unset(""),
                            ),
                            uninterpreted_option=[],
                        ),
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="utf8_validation",
                        number=4,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.ENUM,
                        type_name=".google.protobuf.FeatureSet.Utf8Validation",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="utf8Validation",
                        options=FieldOptions(
                            ctype=unset(FieldOptions.CType.STRING),
                            packed=unset(False),
                            jstype=unset(FieldOptions.JSType.JS_NORMAL),
                            lazy=unset(False),
                            unverified_lazy=unset(False),
                            deprecated=unset(False),
                            weak=unset(False),
                            debug_redact=unset(False),
                            retention=FieldOptions.OptionRetention.RETENTION_RUNTIME,
                            targets=[
                                FieldOptions.OptionTargetType.TARGET_TYPE_FIELD,
                                FieldOptions.OptionTargetType.TARGET_TYPE_FILE,
                            ],
                            edition_defaults=[
                                FieldOptions.EditionDefault(
                                    edition=Edition.LEGACY, value="NONE"
                                ),
                                FieldOptions.EditionDefault(
                                    edition=Edition.PROTO3, value="VERIFY"
                                ),
                            ],
                            features=None,
                            feature_support=FieldOptions.FeatureSupport(
                                edition_introduced=Edition.EDITION_2023,
                                edition_deprecated=unset(Edition.UNKNOWN),
                                deprecation_warning=unset(""),
                                edition_removed=unset(Edition.UNKNOWN),
                                removal_error=unset(""),
                            ),
                            uninterpreted_option=[],
                        ),
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="message_encoding",
                        number=5,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.ENUM,
                        type_name=".google.protobuf.FeatureSet.MessageEncoding",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="messageEncoding",
                        options=FieldOptions(
                            ctype=unset(FieldOptions.CType.STRING),
                            packed=unset(False),
                            jstype=unset(FieldOptions.JSType.JS_NORMAL),
                            lazy=unset(False),
                            unverified_lazy=unset(False),
                            deprecated=unset(False),
                            weak=unset(False),
                            debug_redact=unset(False),
                            retention=FieldOptions.OptionRetention.RETENTION_RUNTIME,
                            targets=[
                                FieldOptions.OptionTargetType.TARGET_TYPE_FIELD,
                                FieldOptions.OptionTargetType.TARGET_TYPE_FILE,
                            ],
                            edition_defaults=[
                                FieldOptions.EditionDefault(
                                    edition=Edition.LEGACY, value="LENGTH_PREFIXED"
                                )
                            ],
                            features=None,
                            feature_support=FieldOptions.FeatureSupport(
                                edition_introduced=Edition.EDITION_2023,
                                edition_deprecated=unset(Edition.UNKNOWN),
                                deprecation_warning=unset(""),
                                edition_removed=unset(Edition.UNKNOWN),
                                removal_error=unset(""),
                            ),
                            uninterpreted_option=[],
                        ),
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="json_format",
                        number=6,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.ENUM,
                        type_name=".google.protobuf.FeatureSet.JsonFormat",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="jsonFormat",
                        options=FieldOptions(
                            ctype=unset(FieldOptions.CType.STRING),
                            packed=unset(False),
                            jstype=unset(FieldOptions.JSType.JS_NORMAL),
                            lazy=unset(False),
                            unverified_lazy=unset(False),
                            deprecated=unset(False),
                            weak=unset(False),
                            debug_redact=unset(False),
                            retention=FieldOptions.OptionRetention.RETENTION_RUNTIME,
                            targets=[
                                FieldOptions.OptionTargetType.TARGET_TYPE_MESSAGE,
                                FieldOptions.OptionTargetType.TARGET_TYPE_ENUM,
                                FieldOptions.OptionTargetType.TARGET_TYPE_FILE,
                            ],
                            edition_defaults=[
                                FieldOptions.EditionDefault(
                                    edition=Edition.LEGACY, value="LEGACY_BEST_EFFORT"
                                ),
                                FieldOptions.EditionDefault(
                                    edition=Edition.PROTO3, value="ALLOW"
                                ),
                            ],
                            features=None,
                            feature_support=FieldOptions.FeatureSupport(
                                edition_introduced=Edition.EDITION_2023,
                                edition_deprecated=unset(Edition.UNKNOWN),
                                deprecation_warning=unset(""),
                                edition_removed=unset(Edition.UNKNOWN),
                                removal_error=unset(""),
                            ),
                            uninterpreted_option=[],
                        ),
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="enforce_naming_style",
                        number=7,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.ENUM,
                        type_name=".google.protobuf.FeatureSet.EnforceNamingStyle",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="enforceNamingStyle",
                        options=FieldOptions(
                            ctype=unset(FieldOptions.CType.STRING),
                            packed=unset(False),
                            jstype=unset(FieldOptions.JSType.JS_NORMAL),
                            lazy=unset(False),
                            unverified_lazy=unset(False),
                            deprecated=unset(False),
                            weak=unset(False),
                            debug_redact=unset(False),
                            retention=FieldOptions.OptionRetention.RETENTION_SOURCE,
                            targets=[
                                FieldOptions.OptionTargetType.TARGET_TYPE_FILE,
                                FieldOptions.OptionTargetType.TARGET_TYPE_EXTENSION_RANGE,
                                FieldOptions.OptionTargetType.TARGET_TYPE_MESSAGE,
                                FieldOptions.OptionTargetType.TARGET_TYPE_FIELD,
                                FieldOptions.OptionTargetType.TARGET_TYPE_ONEOF,
                                FieldOptions.OptionTargetType.TARGET_TYPE_ENUM,
                                FieldOptions.OptionTargetType.TARGET_TYPE_ENUM_ENTRY,
                                FieldOptions.OptionTargetType.TARGET_TYPE_SERVICE,
                                FieldOptions.OptionTargetType.TARGET_TYPE_METHOD,
                            ],
                            edition_defaults=[
                                FieldOptions.EditionDefault(
                                    edition=Edition.LEGACY, value="STYLE_LEGACY"
                                ),
                                FieldOptions.EditionDefault(
                                    edition=Edition.EDITION_2024, value="STYLE2024"
                                ),
                                FieldOptions.EditionDefault(
                                    edition=Edition.UNSTABLE, value="STYLE2026"
                                ),
                            ],
                            features=None,
                            feature_support=FieldOptions.FeatureSupport(
                                edition_introduced=Edition.EDITION_2024,
                                edition_deprecated=unset(Edition.UNKNOWN),
                                deprecation_warning=unset(""),
                                edition_removed=unset(Edition.UNKNOWN),
                                removal_error=unset(""),
                            ),
                            uninterpreted_option=[],
                        ),
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="default_symbol_visibility",
                        number=8,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.ENUM,
                        type_name=".google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="defaultSymbolVisibility",
                        options=FieldOptions(
                            ctype=unset(FieldOptions.CType.STRING),
                            packed=unset(False),
                            jstype=unset(FieldOptions.JSType.JS_NORMAL),
                            lazy=unset(False),
                            unverified_lazy=unset(False),
                            deprecated=unset(False),
                            weak=unset(False),
                            debug_redact=unset(False),
                            retention=FieldOptions.OptionRetention.RETENTION_SOURCE,
                            targets=[FieldOptions.OptionTargetType.TARGET_TYPE_FILE],
                            edition_defaults=[
                                FieldOptions.EditionDefault(
                                    edition=Edition.LEGACY, value="EXPORT_ALL"
                                ),
                                FieldOptions.EditionDefault(
                                    edition=Edition.EDITION_2024,
                                    value="EXPORT_TOP_LEVEL",
                                ),
                            ],
                            features=None,
                            feature_support=FieldOptions.FeatureSupport(
                                edition_introduced=Edition.EDITION_2024,
                                edition_deprecated=unset(Edition.UNKNOWN),
                                deprecation_warning=unset(""),
                                edition_removed=unset(Edition.UNKNOWN),
                                removal_error=unset(""),
                            ),
                            uninterpreted_option=[],
                        ),
                        proto3_optional=unset(False),
                    ),
                ],
                extension=[],
                nested_type=[
                    DescriptorProto(
                        name="VisibilityFeature",
                        field=[],
                        extension=[],
                        nested_type=[],
                        enum_type=[
                            EnumDescriptorProto(
                                name="DefaultSymbolVisibility",
                                value=[
                                    EnumValueDescriptorProto(
                                        name="DEFAULT_SYMBOL_VISIBILITY_UNKNOWN",
                                        number=0,
                                        options=None,
                                    ),
                                    EnumValueDescriptorProto(
                                        name="EXPORT_ALL", number=1, options=None
                                    ),
                                    EnumValueDescriptorProto(
                                        name="EXPORT_TOP_LEVEL", number=2, options=None
                                    ),
                                    EnumValueDescriptorProto(
                                        name="LOCAL_ALL", number=3, options=None
                                    ),
                                    EnumValueDescriptorProto(
                                        name="STRICT", number=4, options=None
                                    ),
                                ],
                                options=None,
                                reserved_range=[],
                                reserved_name=[],
                                visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
                            )
                        ],
                        extension_range=[],
                        oneof_decl=[],
                        options=None,
                        reserved_range=[
                            DescriptorProto.ReservedRange(start=1, end=536870912)
                        ],
                        reserved_name=[],
                        visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
                    )
                ],
                enum_type=[
                    EnumDescriptorProto(
                        name="FieldPresence",
                        value=[
                            EnumValueDescriptorProto(
                                name="FIELD_PRESENCE_UNKNOWN", number=0, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="EXPLICIT", number=1, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="IMPLICIT", number=2, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="LEGACY_REQUIRED", number=3, options=None
                            ),
                        ],
                        options=None,
                        reserved_range=[],
                        reserved_name=[],
                        visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
                    ),
                    EnumDescriptorProto(
                        name="EnumType",
                        value=[
                            EnumValueDescriptorProto(
                                name="ENUM_TYPE_UNKNOWN", number=0, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="OPEN", number=1, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="CLOSED", number=2, options=None
                            ),
                        ],
                        options=None,
                        reserved_range=[],
                        reserved_name=[],
                        visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
                    ),
                    EnumDescriptorProto(
                        name="RepeatedFieldEncoding",
                        value=[
                            EnumValueDescriptorProto(
                                name="REPEATED_FIELD_ENCODING_UNKNOWN",
                                number=0,
                                options=None,
                            ),
                            EnumValueDescriptorProto(
                                name="PACKED", number=1, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="EXPANDED", number=2, options=None
                            ),
                        ],
                        options=None,
                        reserved_range=[],
                        reserved_name=[],
                        visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
                    ),
                    EnumDescriptorProto(
                        name="Utf8Validation",
                        value=[
                            EnumValueDescriptorProto(
                                name="UTF8_VALIDATION_UNKNOWN", number=0, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="VERIFY", number=2, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="NONE", number=3, options=None
                            ),
                        ],
                        options=None,
                        reserved_range=[
                            EnumDescriptorProto.EnumReservedRange(start=1, end=1)
                        ],
                        reserved_name=[],
                        visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
                    ),
                    EnumDescriptorProto(
                        name="MessageEncoding",
                        value=[
                            EnumValueDescriptorProto(
                                name="MESSAGE_ENCODING_UNKNOWN", number=0, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="LENGTH_PREFIXED", number=1, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="DELIMITED", number=2, options=None
                            ),
                        ],
                        options=None,
                        reserved_range=[],
                        reserved_name=[],
                        visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
                    ),
                    EnumDescriptorProto(
                        name="JsonFormat",
                        value=[
                            EnumValueDescriptorProto(
                                name="JSON_FORMAT_UNKNOWN", number=0, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="ALLOW", number=1, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="LEGACY_BEST_EFFORT", number=2, options=None
                            ),
                        ],
                        options=None,
                        reserved_range=[],
                        reserved_name=[],
                        visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
                    ),
                    EnumDescriptorProto(
                        name="EnforceNamingStyle",
                        value=[
                            EnumValueDescriptorProto(
                                name="ENFORCE_NAMING_STYLE_UNKNOWN",
                                number=0,
                                options=None,
                            ),
                            EnumValueDescriptorProto(
                                name="STYLE2024", number=1, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="STYLE_LEGACY", number=2, options=None
                            ),
                            EnumValueDescriptorProto(
                                name="STYLE2026", number=3, options=None
                            ),
                        ],
                        options=None,
                        reserved_range=[],
                        reserved_name=[],
                        visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
                    ),
                ],
                extension_range=[
                    DescriptorProto.ExtensionRange(
                        start=1000,
                        end=9995,
                        options=ExtensionRangeOptions(
                            uninterpreted_option=[],
                            declaration=[
                                ExtensionRangeOptions.Declaration(
                                    number=1000,
                                    full_name=".pb.cpp",
                                    type=".pb.CppFeatures",
                                    reserved=unset(False),
                                    repeated=unset(False),
                                ),
                                ExtensionRangeOptions.Declaration(
                                    number=1001,
                                    full_name=".pb.java",
                                    type=".pb.JavaFeatures",
                                    reserved=unset(False),
                                    repeated=unset(False),
                                ),
                                ExtensionRangeOptions.Declaration(
                                    number=1002,
                                    full_name=".pb.go",
                                    type=".pb.GoFeatures",
                                    reserved=unset(False),
                                    repeated=unset(False),
                                ),
                                ExtensionRangeOptions.Declaration(
                                    number=1003,
                                    full_name=".pb.python",
                                    type=".pb.PythonFeatures",
                                    reserved=unset(False),
                                    repeated=unset(False),
                                ),
                                ExtensionRangeOptions.Declaration(
                                    number=1004,
                                    full_name=".pb.csharp",
                                    type=".pb.CSharpFeatures",
                                    reserved=unset(False),
                                    repeated=unset(False),
                                ),
                                ExtensionRangeOptions.Declaration(
                                    number=1100,
                                    full_name=".imp.impress_feature_set",
                                    type=".imp.ImpressFeatureSet",
                                    reserved=unset(False),
                                    repeated=unset(False),
                                ),
                                ExtensionRangeOptions.Declaration(
                                    number=9989,
                                    full_name=".pb.java_mutable",
                                    type=".pb.JavaMutableFeatures",
                                    reserved=unset(False),
                                    repeated=unset(False),
                                ),
                                ExtensionRangeOptions.Declaration(
                                    number=9990,
                                    full_name=".pb.proto1",
                                    type=".pb.Proto1Features",
                                    reserved=unset(False),
                                    repeated=unset(False),
                                ),
                            ],
                            features=None,
                            verification=unset(
                                ExtensionRangeOptions.VerificationState.UNVERIFIED
                            ),
                        ),
                    ),
                    DescriptorProto.ExtensionRange(start=9995, end=10000, options=None),
                    DescriptorProto.ExtensionRange(
                        start=10000, end=10001, options=None
                    ),
                ],
                oneof_decl=[],
                options=None,
                reserved_range=[DescriptorProto.ReservedRange(start=999, end=1000)],
                reserved_name=[],
                visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
            ),
            DescriptorProto(
                name="FeatureSetDefaults",
                field=[
                    FieldDescriptorProto(
                        name="defaults",
                        number=1,
                        label=FieldDescriptorProto.Label.REPEATED,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="defaults",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="minimum_edition",
                        number=4,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.ENUM,
                        type_name=".google.protobuf.Edition",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="minimumEdition",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                    FieldDescriptorProto(
                        name="maximum_edition",
                        number=5,
                        label=FieldDescriptorProto.Label.OPTIONAL,
                        type=FieldDescriptorProto.Type.ENUM,
                        type_name=".google.protobuf.Edition",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="maximumEdition",
                        options=None,
                        proto3_optional=unset(False),
                    ),
                ],
                extension=[],
                nested_type=[
                    DescriptorProto(
                        name="FeatureSetEditionDefault",
                        field=[
                            FieldDescriptorProto(
                                name="edition",
                                number=3,
                                label=FieldDescriptorProto.Label.OPTIONAL,
                                type=FieldDescriptorProto.Type.ENUM,
                                type_name=".google.protobuf.Edition",
                                extendee=unset(""),
                                default_value=unset(""),
                                oneof_index=unset(0),
                                json_name="edition",
                                options=None,
                                proto3_optional=unset(False),
                            ),
                            FieldDescriptorProto(
                                name="overridable_features",
                                number=4,
                                label=FieldDescriptorProto.Label.OPTIONAL,
                                type=FieldDescriptorProto.Type.MESSAGE,
                                type_name=".google.protobuf.FeatureSet",
                                extendee=unset(""),
                                default_value=unset(""),
                                oneof_index=unset(0),
                                json_name="overridableFeatures",
                                options=None,
                                proto3_optional=unset(False),
                            ),
                            FieldDescriptorProto(
                                name="fixed_features",
                                number=5,
                                label=FieldDescriptorProto.Label.OPTIONAL,
                                type=FieldDescriptorProto.Type.MESSAGE,
                                type_name=".google.protobuf.FeatureSet",
                                extendee=unset(""),
                                default_value=unset(""),
                                oneof_index=unset(0),
                                json_name="fixedFeatures",
                                options=None,
                                proto3_optional=unset(False),
                            ),
                        ],
                        extension=[],
                        nested_type=[],
                        enum_type=[],
                        extension_range=[],
                        oneof_decl=[],
                        options=None,
                        reserved_range=[
                            DescriptorProto.ReservedRange(start=1, end=2),
                            DescriptorProto.ReservedRange(start=2, end=3),
                        ],
                        reserved_name=["features"],
                        visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
                    )
                ],
                enum_type=[],
                extension_range=[],
                oneof_decl=[],
                options=None,
                reserved_range=[],
                reserved_name=[],
                visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
            ),
            DescriptorProto(
                name="SourceCodeInfo",
                field=[
                    FieldDescriptorProto(
                        name="location",
                        number=1,
                        label=FieldDescriptorProto.Label.REPEATED,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.SourceCodeInfo.Location",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="location",
                        options=None,
                        proto3_optional=unset(False),
                    )
                ],
                extension=[],
                nested_type=[
                    DescriptorProto(
                        name="Location",
                        field=[
                            FieldDescriptorProto(
                                name="path",
                                number=1,
                                label=FieldDescriptorProto.Label.REPEATED,
                                type=FieldDescriptorProto.Type.INT32,
                                type_name=unset(""),
                                extendee=unset(""),
                                default_value=unset(""),
                                oneof_index=unset(0),
                                json_name="path",
                                options=FieldOptions(
                                    ctype=unset(FieldOptions.CType.STRING),
                                    packed=True,
                                    jstype=unset(FieldOptions.JSType.JS_NORMAL),
                                    lazy=unset(False),
                                    unverified_lazy=unset(False),
                                    deprecated=unset(False),
                                    weak=unset(False),
                                    debug_redact=unset(False),
                                    retention=unset(
                                        FieldOptions.OptionRetention.RETENTION_UNKNOWN
                                    ),
                                    targets=[],
                                    edition_defaults=[],
                                    features=None,
                                    feature_support=None,
                                    uninterpreted_option=[],
                                ),
                                proto3_optional=unset(False),
                            ),
                            FieldDescriptorProto(
                                name="span",
                                number=2,
                                label=FieldDescriptorProto.Label.REPEATED,
                                type=FieldDescriptorProto.Type.INT32,
                                type_name=unset(""),
                                extendee=unset(""),
                                default_value=unset(""),
                                oneof_index=unset(0),
                                json_name="span",
                                options=FieldOptions(
                                    ctype=unset(FieldOptions.CType.STRING),
                                    packed=True,
                                    jstype=unset(FieldOptions.JSType.JS_NORMAL),
                                    lazy=unset(False),
                                    unverified_lazy=unset(False),
                                    deprecated=unset(False),
                                    weak=unset(False),
                                    debug_redact=unset(False),
                                    retention=unset(
                                        FieldOptions.OptionRetention.RETENTION_UNKNOWN
                                    ),
                                    targets=[],
                                    edition_defaults=[],
                                    features=None,
                                    feature_support=None,
                                    uninterpreted_option=[],
                                ),
                                proto3_optional=unset(False),
                            ),
                            FieldDescriptorProto(
                                name="leading_comments",
                                number=3,
                                label=FieldDescriptorProto.Label.OPTIONAL,
                                type=FieldDescriptorProto.Type.STRING,
                                type_name=unset(""),
                                extendee=unset(""),
                                default_value=unset(""),
                                oneof_index=unset(0),
                                json_name="leadingComments",
                                options=None,
                                proto3_optional=unset(False),
                            ),
                            FieldDescriptorProto(
                                name="trailing_comments",
                                number=4,
                                label=FieldDescriptorProto.Label.OPTIONAL,
                                type=FieldDescriptorProto.Type.STRING,
                                type_name=unset(""),
                                extendee=unset(""),
                                default_value=unset(""),
                                oneof_index=unset(0),
                                json_name="trailingComments",
                                options=None,
                                proto3_optional=unset(False),
                            ),
                            FieldDescriptorProto(
                                name="leading_detached_comments",
                                number=6,
                                label=FieldDescriptorProto.Label.REPEATED,
                                type=FieldDescriptorProto.Type.STRING,
                                type_name=unset(""),
                                extendee=unset(""),
                                default_value=unset(""),
                                oneof_index=unset(0),
                                json_name="leadingDetachedComments",
                                options=None,
                                proto3_optional=unset(False),
                            ),
                        ],
                        extension=[],
                        nested_type=[],
                        enum_type=[],
                        extension_range=[],
                        oneof_decl=[],
                        options=None,
                        reserved_range=[],
                        reserved_name=[],
                        visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
                    )
                ],
                enum_type=[],
                extension_range=[
                    DescriptorProto.ExtensionRange(
                        start=536000000,
                        end=536000001,
                        options=ExtensionRangeOptions(
                            uninterpreted_option=[],
                            declaration=[
                                ExtensionRangeOptions.Declaration(
                                    number=536000000,
                                    full_name=".buf.descriptor.v1.buf_source_code_info_extension",
                                    type=".buf.descriptor.v1.SourceCodeInfoExtension",
                                    reserved=unset(False),
                                    repeated=unset(False),
                                )
                            ],
                            features=None,
                            verification=unset(
                                ExtensionRangeOptions.VerificationState.UNVERIFIED
                            ),
                        ),
                    )
                ],
                oneof_decl=[],
                options=None,
                reserved_range=[],
                reserved_name=[],
                visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
            ),
            DescriptorProto(
                name="GeneratedCodeInfo",
                field=[
                    FieldDescriptorProto(
                        name="annotation",
                        number=1,
                        label=FieldDescriptorProto.Label.REPEATED,
                        type=FieldDescriptorProto.Type.MESSAGE,
                        type_name=".google.protobuf.GeneratedCodeInfo.Annotation",
                        extendee=unset(""),
                        default_value=unset(""),
                        oneof_index=unset(0),
                        json_name="annotation",
                        options=None,
                        proto3_optional=unset(False),
                    )
                ],
                extension=[],
                nested_type=[
                    DescriptorProto(
                        name="Annotation",
                        field=[
                            FieldDescriptorProto(
                                name="path",
                                number=1,
                                label=FieldDescriptorProto.Label.REPEATED,
                                type=FieldDescriptorProto.Type.INT32,
                                type_name=unset(""),
                                extendee=unset(""),
                                default_value=unset(""),
                                oneof_index=unset(0),
                                json_name="path",
                                options=FieldOptions(
                                    ctype=unset(FieldOptions.CType.STRING),
                                    packed=True,
                                    jstype=unset(FieldOptions.JSType.JS_NORMAL),
                                    lazy=unset(False),
                                    unverified_lazy=unset(False),
                                    deprecated=unset(False),
                                    weak=unset(False),
                                    debug_redact=unset(False),
                                    retention=unset(
                                        FieldOptions.OptionRetention.RETENTION_UNKNOWN
                                    ),
                                    targets=[],
                                    edition_defaults=[],
                                    features=None,
                                    feature_support=None,
                                    uninterpreted_option=[],
                                ),
                                proto3_optional=unset(False),
                            ),
                            FieldDescriptorProto(
                                name="source_file",
                                number=2,
                                label=FieldDescriptorProto.Label.OPTIONAL,
                                type=FieldDescriptorProto.Type.STRING,
                                type_name=unset(""),
                                extendee=unset(""),
                                default_value=unset(""),
                                oneof_index=unset(0),
                                json_name="sourceFile",
                                options=None,
                                proto3_optional=unset(False),
                            ),
                            FieldDescriptorProto(
                                name="begin",
                                number=3,
                                label=FieldDescriptorProto.Label.OPTIONAL,
                                type=FieldDescriptorProto.Type.INT32,
                                type_name=unset(""),
                                extendee=unset(""),
                                default_value=unset(""),
                                oneof_index=unset(0),
                                json_name="begin",
                                options=None,
                                proto3_optional=unset(False),
                            ),
                            FieldDescriptorProto(
                                name="end",
                                number=4,
                                label=FieldDescriptorProto.Label.OPTIONAL,
                                type=FieldDescriptorProto.Type.INT32,
                                type_name=unset(""),
                                extendee=unset(""),
                                default_value=unset(""),
                                oneof_index=unset(0),
                                json_name="end",
                                options=None,
                                proto3_optional=unset(False),
                            ),
                            FieldDescriptorProto(
                                name="semantic",
                                number=5,
                                label=FieldDescriptorProto.Label.OPTIONAL,
                                type=FieldDescriptorProto.Type.ENUM,
                                type_name=".google.protobuf.GeneratedCodeInfo.Annotation.Semantic",
                                extendee=unset(""),
                                default_value=unset(""),
                                oneof_index=unset(0),
                                json_name="semantic",
                                options=None,
                                proto3_optional=unset(False),
                            ),
                        ],
                        extension=[],
                        nested_type=[],
                        enum_type=[
                            EnumDescriptorProto(
                                name="Semantic",
                                value=[
                                    EnumValueDescriptorProto(
                                        name="NONE", number=0, options=None
                                    ),
                                    EnumValueDescriptorProto(
                                        name="SET", number=1, options=None
                                    ),
                                    EnumValueDescriptorProto(
                                        name="ALIAS", number=2, options=None
                                    ),
                                ],
                                options=None,
                                reserved_range=[],
                                reserved_name=[],
                                visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
                            )
                        ],
                        extension_range=[],
                        oneof_decl=[],
                        options=None,
                        reserved_range=[],
                        reserved_name=[],
                        visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
                    )
                ],
                enum_type=[],
                extension_range=[],
                oneof_decl=[],
                options=None,
                reserved_range=[],
                reserved_name=[],
                visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
            ),
        ],
        enum_type=[
            EnumDescriptorProto(
                name="Edition",
                value=[
                    EnumValueDescriptorProto(
                        name="EDITION_UNKNOWN", number=0, options=None
                    ),
                    EnumValueDescriptorProto(
                        name="EDITION_LEGACY", number=900, options=None
                    ),
                    EnumValueDescriptorProto(
                        name="EDITION_PROTO2", number=998, options=None
                    ),
                    EnumValueDescriptorProto(
                        name="EDITION_PROTO3", number=999, options=None
                    ),
                    EnumValueDescriptorProto(
                        name="EDITION_2023", number=1000, options=None
                    ),
                    EnumValueDescriptorProto(
                        name="EDITION_2024", number=1001, options=None
                    ),
                    EnumValueDescriptorProto(
                        name="EDITION_2026", number=1002, options=None
                    ),
                    EnumValueDescriptorProto(
                        name="EDITION_UNSTABLE", number=9999, options=None
                    ),
                    EnumValueDescriptorProto(
                        name="EDITION_1_TEST_ONLY", number=1, options=None
                    ),
                    EnumValueDescriptorProto(
                        name="EDITION_2_TEST_ONLY", number=2, options=None
                    ),
                    EnumValueDescriptorProto(
                        name="EDITION_99997_TEST_ONLY", number=99997, options=None
                    ),
                    EnumValueDescriptorProto(
                        name="EDITION_99998_TEST_ONLY", number=99998, options=None
                    ),
                    EnumValueDescriptorProto(
                        name="EDITION_99999_TEST_ONLY", number=99999, options=None
                    ),
                    EnumValueDescriptorProto(
                        name="EDITION_MAX", number=2147483647, options=None
                    ),
                ],
                options=None,
                reserved_range=[],
                reserved_name=[],
                visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
            ),
            EnumDescriptorProto(
                name="SymbolVisibility",
                value=[
                    EnumValueDescriptorProto(
                        name="VISIBILITY_UNSET", number=0, options=None
                    ),
                    EnumValueDescriptorProto(
                        name="VISIBILITY_LOCAL", number=1, options=None
                    ),
                    EnumValueDescriptorProto(
                        name="VISIBILITY_EXPORT", number=2, options=None
                    ),
                ],
                options=None,
                reserved_range=[],
                reserved_name=[],
                visibility=unset(SymbolVisibility.VISIBILITY_UNSET),
            ),
        ],
        service=[],
        extension=[],
        options=FileOptions(
            java_package="com.google.protobuf",
            java_outer_classname="DescriptorProtos",
            java_multiple_files=unset(False),
            java_generate_equals_and_hash=unset(False),
            java_string_check_utf8=unset(False),
            optimize_for=FileOptions.OptimizeMode.SPEED,
            go_package="google.golang.org/protobuf/types/descriptorpb",
            cc_generic_services=unset(False),
            java_generic_services=unset(False),
            py_generic_services=unset(False),
            deprecated=unset(False),
            cc_enable_arenas=True,
            objc_class_prefix="GPB",
            csharp_namespace="Google.Protobuf.Reflection",
            swift_prefix=unset(""),
            php_class_prefix=unset(""),
            php_namespace=unset(""),
            php_metadata_namespace=unset(""),
            ruby_package=unset(""),
            features=None,
            uninterpreted_option=[],
        ),
        source_code_info=None,
        syntax=unset(""),
        edition=unset(Edition.UNKNOWN),
    ),
    {
        "FileDescriptorSet": FileDescriptorSet,
        "FileDescriptorProto": FileDescriptorProto,
        "DescriptorProto": DescriptorProto,
        "DescriptorProto.ExtensionRange": DescriptorProto.ExtensionRange,
        "DescriptorProto.ReservedRange": DescriptorProto.ReservedRange,
        "ExtensionRangeOptions": ExtensionRangeOptions,
        "ExtensionRangeOptions.Declaration": ExtensionRangeOptions.Declaration,
        "ExtensionRangeOptions.VerificationState": ExtensionRangeOptions.VerificationState,
        "FieldDescriptorProto": FieldDescriptorProto,
        "FieldDescriptorProto.Type": FieldDescriptorProto.Type,
        "FieldDescriptorProto.Label": FieldDescriptorProto.Label,
        "OneofDescriptorProto": OneofDescriptorProto,
        "EnumDescriptorProto": EnumDescriptorProto,
        "EnumDescriptorProto.EnumReservedRange": EnumDescriptorProto.EnumReservedRange,
        "EnumValueDescriptorProto": EnumValueDescriptorProto,
        "ServiceDescriptorProto": ServiceDescriptorProto,
        "MethodDescriptorProto": MethodDescriptorProto,
        "FileOptions": FileOptions,
        "FileOptions.OptimizeMode": FileOptions.OptimizeMode,
        "MessageOptions": MessageOptions,
        "FieldOptions": FieldOptions,
        "FieldOptions.EditionDefault": FieldOptions.EditionDefault,
        "FieldOptions.FeatureSupport": FieldOptions.FeatureSupport,
        "FieldOptions.CType": FieldOptions.CType,
        "FieldOptions.JSType": FieldOptions.JSType,
        "FieldOptions.OptionRetention": FieldOptions.OptionRetention,
        "FieldOptions.OptionTargetType": FieldOptions.OptionTargetType,
        "OneofOptions": OneofOptions,
        "EnumOptions": EnumOptions,
        "EnumValueOptions": EnumValueOptions,
        "ServiceOptions": ServiceOptions,
        "MethodOptions": MethodOptions,
        "MethodOptions.IdempotencyLevel": MethodOptions.IdempotencyLevel,
        "UninterpretedOption": UninterpretedOption,
        "UninterpretedOption.NamePart": UninterpretedOption.NamePart,
        "FeatureSet": FeatureSet,
        "FeatureSet.VisibilityFeature": FeatureSet.VisibilityFeature,
        "FeatureSet.VisibilityFeature.DefaultSymbolVisibility": FeatureSet.VisibilityFeature.DefaultSymbolVisibility,
        "FeatureSet.FieldPresence": FeatureSet.FieldPresence,
        "FeatureSet.EnumType": FeatureSet.EnumType,
        "FeatureSet.RepeatedFieldEncoding": FeatureSet.RepeatedFieldEncoding,
        "FeatureSet.Utf8Validation": FeatureSet.Utf8Validation,
        "FeatureSet.MessageEncoding": FeatureSet.MessageEncoding,
        "FeatureSet.JsonFormat": FeatureSet.JsonFormat,
        "FeatureSet.EnforceNamingStyle": FeatureSet.EnforceNamingStyle,
        "FeatureSetDefaults": FeatureSetDefaults,
        "FeatureSetDefaults.FeatureSetEditionDefault": FeatureSetDefaults.FeatureSetEditionDefault,
        "SourceCodeInfo": SourceCodeInfo,
        "SourceCodeInfo.Location": SourceCodeInfo.Location,
        "GeneratedCodeInfo": GeneratedCodeInfo,
        "GeneratedCodeInfo.Annotation": GeneratedCodeInfo.Annotation,
        "GeneratedCodeInfo.Annotation.Semantic": GeneratedCodeInfo.Annotation.Semantic,
        "Edition": Edition,
        "SymbolVisibility": SymbolVisibility,
    },
)


def desc() -> DescFile:
    """Returns the descriptor for the file `google/protobuf/descriptor.proto`."""
    return _DESC
