# 
# Generated by the nebius.base.protos.compiler.  DO NOT EDIT!
# 

"""Auto-generated Nebius SDK package for ``nebius``"""

import builtins as builtins
import collections.abc as abc
import google.protobuf.descriptor as descriptor_1
import google.protobuf.message as message
import nebius.api.nebius.annotations_pb2 as annotations_pb2
import nebius.base.protos.descriptor as descriptor
import nebius.base.protos.pb_classes as pb_classes
import nebius.base.protos.pb_enum as pb_enum
import nebius.base.protos.unset as unset
import typing as typing
#@ local imports here @#

# file: nebius/annotations.proto
class ResourceBehavior(pb_enum.Enum):
    __PB2_DESCRIPTOR__ = descriptor.DescriptorWrap[descriptor_1.EnumDescriptor](".nebius.ResourceBehavior",annotations_pb2.DESCRIPTOR,descriptor_1.EnumDescriptor)
    RESOURCE_BEHAVIOR_UNSPECIFIED = 0
    """
    The behavior of the resource is unspecified.
    Avoid using this default value.
    """
    
    MOVABLE = 1
    """
    Indicates that the resource can be moved to another parent, typically an
    IAM container, though not necessarily limited to this.
    This behavior suggests that the ``metadata.parent_id`` attribute could be modified.
    """
    
    UNNAMED = 2
    """
    Indicates that the resource name can be unspecified or does not follow
    uniqueness requirement within parent_id and resource type.
    """
    
    IMMUTABLE_NAME = 3
    """
    Indicates that the resource is named, and the name cannot be changed after
    it is created. It is strongly recommended to do srvices with renaming
    capability, as the guidelines suggest.
    """
    

class FieldBehavior(pb_enum.Enum):
    __PB2_DESCRIPTOR__ = descriptor.DescriptorWrap[descriptor_1.EnumDescriptor](".nebius.FieldBehavior",annotations_pb2.DESCRIPTOR,descriptor_1.EnumDescriptor)
    FIELD_BEHAVIOR_UNSPECIFIED = 0
    IMMUTABLE = 2
    """
    This indicates that the field can't be changed during a resource update.
    Changing the field value will cause an ``INVALID_ARGUMENT`` error.
    For message fields, this applies to the field itself. Nested immutable
    fields do not make a mutable parent message immutable, and such a parent
    message may still be cleared.
    Resource recreate requires a change of the field value.
    """
    
    IDENTIFIER = 3
    """
    Indicates field is a resource ID, so it MUST be present on a resource
    update, but MUST NOT be set on create.
    Otherwise, RPC will fail with the ``INVALID_ARGUMENT`` error
    """
    
    INPUT_ONLY = 4
    """
    Indicates field is not present in output.
    """
    
    OUTPUT_ONLY = 5
    """
    Indicates field can't be set on create or changed on update.
    Otherwise, RPC will fail with the ``INVALID_ARGUMENT`` error
    """
    
    MEANINGFUL_EMPTY_VALUE = 6
    """
    Indicates that an empty message and a null have different semantics.
    Usually, that field is a feature spec message: its empty message enables
    that feature, and null disables it. Such a message is different from ``bool``
    because it already has some feature parameters, or they can be added later
    in a backward-compatible way.
    IMPORTANT: if the message itself is recursive, this behavior is forced.
    """
    
    NON_EMPTY_DEFAULT = 7
    """
    Indicates that an empty (default) value will be filled by the server.
    Usually, that field is a feature spec value, which by default is computed.
    Values marked with this annotation won't raise error if they are not set
    and the returned value is not equal to protobuf default.
    
    IMPORTANT:
    Updating this value from explicit to default may not lead to Update call in
    some tools (eg Terraform).
    Compound values (messages, lists and maps) may result in unpredictable
    updates (see examples in guidelines).
    """
    

class MethodBehavior(pb_enum.Enum):
    """
    MethodBehavior describes special behaviors of a method that affect
    code generation and tooling.
    """
    
    __PB2_DESCRIPTOR__ = descriptor.DescriptorWrap[descriptor_1.EnumDescriptor](".nebius.MethodBehavior",annotations_pb2.DESCRIPTOR,descriptor_1.EnumDescriptor)
    METHOD_BEHAVIOR_UNSPECIFIED = 0
    """
    Indicates that the method behavior is default and is not specified.
    For instance, an Update method will lose its update semantics if this value
    is set.
    Does not mean anything if set along with other values.
    """
    
    METHOD_UPDATER = 2
    """
    Indicates that the method is used to update a resource or a number of
    resources, therefore it requires a reset mask to unset fields.
    This will enable SDKs to generate the reset mask on request, as well as the
    gateway to pass and sanitize it. The CLI will add flags to set partial or
    full updates and custom reset masks.
    """
    
    METHOD_PAGINATED = 3
    """
    Indicates that the method is used to list something, and supports
    pagination.
    """
    
    METHOD_WITHOUT_GET = 4
    """
    Indicates that the method will create an operation, which doesn't have a
    gettable resource after its completion, and therefore must not call a ``get``
    method. For instance, it can be used for long-running operations that
    don't return any resource, or for resource deletion operations.
    """
    

class ServicePySDKSettings(pb_classes.Message):
    __PB2_CLASS__ = annotations_pb2.ServicePySDKSettings
    __PB2_DESCRIPTOR__ = descriptor.DescriptorWrap[descriptor_1.Descriptor](".nebius.ServicePySDKSettings",annotations_pb2.DESCRIPTOR,descriptor_1.Descriptor)
    __mask_functions__ = {
    }
    
    def __init__(
        self,
        initial_message: message.Message|None = None,
        *,
        name: "builtins.str|None|unset.UnsetType" = unset.Unset,
    ) -> None:
        super().__init__(initial_message)
        if not isinstance(name, unset.UnsetType):
            self.name = name
    
    def __dir__(self) ->abc.Iterable[builtins.str]:
        return [
            "name",
        ]
    
    @builtins.property
    def name(self) -> "builtins.str":
        return super()._get_field("name", explicit_presence=False,
        )
    @name.setter
    def name(self, value: "builtins.str|None") -> None:
        return super()._set_field("name",value,explicit_presence=False,
        )
    
    __PY_TO_PB2__: builtins.dict[builtins.str,builtins.str] = {
        "name":"name",
    }
    
class MethodPySDKSettings(pb_classes.Message):
    __PB2_CLASS__ = annotations_pb2.MethodPySDKSettings
    __PB2_DESCRIPTOR__ = descriptor.DescriptorWrap[descriptor_1.Descriptor](".nebius.MethodPySDKSettings",annotations_pb2.DESCRIPTOR,descriptor_1.Descriptor)
    __mask_functions__ = {
    }
    
    def __init__(
        self,
        initial_message: message.Message|None = None,
        *,
        name: "builtins.str|None|unset.UnsetType" = unset.Unset,
    ) -> None:
        super().__init__(initial_message)
        if not isinstance(name, unset.UnsetType):
            self.name = name
    
    def __dir__(self) ->abc.Iterable[builtins.str]:
        return [
            "name",
        ]
    
    @builtins.property
    def name(self) -> "builtins.str":
        return super()._get_field("name", explicit_presence=False,
        )
    @name.setter
    def name(self, value: "builtins.str|None") -> None:
        return super()._set_field("name",value,explicit_presence=False,
        )
    
    __PY_TO_PB2__: builtins.dict[builtins.str,builtins.str] = {
        "name":"name",
    }
    
class FieldPySDKSettings(pb_classes.Message):
    __PB2_CLASS__ = annotations_pb2.FieldPySDKSettings
    __PB2_DESCRIPTOR__ = descriptor.DescriptorWrap[descriptor_1.Descriptor](".nebius.FieldPySDKSettings",annotations_pb2.DESCRIPTOR,descriptor_1.Descriptor)
    __mask_functions__ = {
    }
    
    def __init__(
        self,
        initial_message: message.Message|None = None,
        *,
        name: "builtins.str|None|unset.UnsetType" = unset.Unset,
    ) -> None:
        super().__init__(initial_message)
        if not isinstance(name, unset.UnsetType):
            self.name = name
    
    def __dir__(self) ->abc.Iterable[builtins.str]:
        return [
            "name",
        ]
    
    @builtins.property
    def name(self) -> "builtins.str":
        return super()._get_field("name", explicit_presence=False,
        )
    @name.setter
    def name(self, value: "builtins.str|None") -> None:
        return super()._set_field("name",value,explicit_presence=False,
        )
    
    __PY_TO_PB2__: builtins.dict[builtins.str,builtins.str] = {
        "name":"name",
    }
    
class MessagePySDKSettings(pb_classes.Message):
    __PB2_CLASS__ = annotations_pb2.MessagePySDKSettings
    __PB2_DESCRIPTOR__ = descriptor.DescriptorWrap[descriptor_1.Descriptor](".nebius.MessagePySDKSettings",annotations_pb2.DESCRIPTOR,descriptor_1.Descriptor)
    __mask_functions__ = {
    }
    
    def __init__(
        self,
        initial_message: message.Message|None = None,
        *,
        name: "builtins.str|None|unset.UnsetType" = unset.Unset,
    ) -> None:
        super().__init__(initial_message)
        if not isinstance(name, unset.UnsetType):
            self.name = name
    
    def __dir__(self) ->abc.Iterable[builtins.str]:
        return [
            "name",
        ]
    
    @builtins.property
    def name(self) -> "builtins.str":
        return super()._get_field("name", explicit_presence=False,
        )
    @name.setter
    def name(self, value: "builtins.str|None") -> None:
        return super()._set_field("name",value,explicit_presence=False,
        )
    
    __PY_TO_PB2__: builtins.dict[builtins.str,builtins.str] = {
        "name":"name",
    }
    
class OneofPySDKSettings(pb_classes.Message):
    __PB2_CLASS__ = annotations_pb2.OneofPySDKSettings
    __PB2_DESCRIPTOR__ = descriptor.DescriptorWrap[descriptor_1.Descriptor](".nebius.OneofPySDKSettings",annotations_pb2.DESCRIPTOR,descriptor_1.Descriptor)
    __mask_functions__ = {
    }
    
    def __init__(
        self,
        initial_message: message.Message|None = None,
        *,
        name: "builtins.str|None|unset.UnsetType" = unset.Unset,
    ) -> None:
        super().__init__(initial_message)
        if not isinstance(name, unset.UnsetType):
            self.name = name
    
    def __dir__(self) ->abc.Iterable[builtins.str]:
        return [
            "name",
        ]
    
    @builtins.property
    def name(self) -> "builtins.str":
        return super()._get_field("name", explicit_presence=False,
        )
    @name.setter
    def name(self, value: "builtins.str|None") -> None:
        return super()._set_field("name",value,explicit_presence=False,
        )
    
    __PY_TO_PB2__: builtins.dict[builtins.str,builtins.str] = {
        "name":"name",
    }
    
class EnumPySDKSettings(pb_classes.Message):
    __PB2_CLASS__ = annotations_pb2.EnumPySDKSettings
    __PB2_DESCRIPTOR__ = descriptor.DescriptorWrap[descriptor_1.Descriptor](".nebius.EnumPySDKSettings",annotations_pb2.DESCRIPTOR,descriptor_1.Descriptor)
    __mask_functions__ = {
    }
    
    def __init__(
        self,
        initial_message: message.Message|None = None,
        *,
        name: "builtins.str|None|unset.UnsetType" = unset.Unset,
    ) -> None:
        super().__init__(initial_message)
        if not isinstance(name, unset.UnsetType):
            self.name = name
    
    def __dir__(self) ->abc.Iterable[builtins.str]:
        return [
            "name",
        ]
    
    @builtins.property
    def name(self) -> "builtins.str":
        return super()._get_field("name", explicit_presence=False,
        )
    @name.setter
    def name(self, value: "builtins.str|None") -> None:
        return super()._set_field("name",value,explicit_presence=False,
        )
    
    __PY_TO_PB2__: builtins.dict[builtins.str,builtins.str] = {
        "name":"name",
    }
    
class EnumValuePySDKSettings(pb_classes.Message):
    __PB2_CLASS__ = annotations_pb2.EnumValuePySDKSettings
    __PB2_DESCRIPTOR__ = descriptor.DescriptorWrap[descriptor_1.Descriptor](".nebius.EnumValuePySDKSettings",annotations_pb2.DESCRIPTOR,descriptor_1.Descriptor)
    __mask_functions__ = {
    }
    
    def __init__(
        self,
        initial_message: message.Message|None = None,
        *,
        name: "builtins.str|None|unset.UnsetType" = unset.Unset,
    ) -> None:
        super().__init__(initial_message)
        if not isinstance(name, unset.UnsetType):
            self.name = name
    
    def __dir__(self) ->abc.Iterable[builtins.str]:
        return [
            "name",
        ]
    
    @builtins.property
    def name(self) -> "builtins.str":
        return super()._get_field("name", explicit_presence=False,
        )
    @name.setter
    def name(self, value: "builtins.str|None") -> None:
        return super()._set_field("name",value,explicit_presence=False,
        )
    
    __PY_TO_PB2__: builtins.dict[builtins.str,builtins.str] = {
        "name":"name",
    }
    
class DeprecationDetails(pb_classes.Message):
    __PB2_CLASS__ = annotations_pb2.DeprecationDetails
    __PB2_DESCRIPTOR__ = descriptor.DescriptorWrap[descriptor_1.Descriptor](".nebius.DeprecationDetails",annotations_pb2.DESCRIPTOR,descriptor_1.Descriptor)
    __mask_functions__ = {
    }
    
    def __init__(
        self,
        initial_message: message.Message|None = None,
        *,
        effective_at: "builtins.str|None|unset.UnsetType" = unset.Unset,
        description: "builtins.str|None|unset.UnsetType" = unset.Unset,
        description_cli: "builtins.str|None|unset.UnsetType" = unset.Unset,
    ) -> None:
        super().__init__(initial_message)
        if not isinstance(effective_at, unset.UnsetType):
            self.effective_at = effective_at
        if not isinstance(description, unset.UnsetType):
            self.description = description
        if not isinstance(description_cli, unset.UnsetType):
            self.description_cli = description_cli
    
    def __dir__(self) ->abc.Iterable[builtins.str]:
        return [
            "effective_at",
            "description",
            "description_cli",
        ]
    
    @builtins.property
    def effective_at(self) -> "builtins.str":
        """
        The date when this method, service, message or field will stop working (format: YYYY-MM-DD)
        """
        
        return super()._get_field("effective_at", explicit_presence=False,
        )
    @effective_at.setter
    def effective_at(self, value: "builtins.str|None") -> None:
        return super()._set_field("effective_at",value,explicit_presence=False,
        )
    
    @builtins.property
    def description(self) -> "builtins.str":
        """
        A description to help users understand the reason for deprecation and suggest alternatives.
        By default, this message will be shown in the CLI, Terraform, and SDKs as is.
        """
        
        return super()._get_field("description", explicit_presence=False,
        )
    @description.setter
    def description(self, value: "builtins.str|None") -> None:
        return super()._set_field("description",value,explicit_presence=False,
        )
    
    @builtins.property
    def description_cli(self) -> "builtins.str":
        """
        Override base description for CLI, specify possible alternative method
        Example: "Please use the 'iam v2 access-key' command instead. All existing keys remain accessible through the new command."
        """
        
        return super()._get_field("description_cli", explicit_presence=False,
        )
    @description_cli.setter
    def description_cli(self, value: "builtins.str|None") -> None:
        return super()._set_field("description_cli",value,explicit_presence=False,
        )
    
    __PY_TO_PB2__: builtins.dict[builtins.str,builtins.str] = {
        "effective_at":"effective_at",
        "description":"description",
        "description_cli":"description_cli",
    }
    
class NIDFieldSettings(pb_classes.Message):
    __PB2_CLASS__ = annotations_pb2.NIDFieldSettings
    __PB2_DESCRIPTOR__ = descriptor.DescriptorWrap[descriptor_1.Descriptor](".nebius.NIDFieldSettings",annotations_pb2.DESCRIPTOR,descriptor_1.Descriptor)
    __mask_functions__ = {
    }
    
    def __init__(
        self,
        initial_message: message.Message|None = None,
        *,
        resource: "abc.Iterable[builtins.str]|None|unset.UnsetType" = unset.Unset,
        parent_resource: "abc.Iterable[builtins.str]|None|unset.UnsetType" = unset.Unset,
    ) -> None:
        super().__init__(initial_message)
        if not isinstance(resource, unset.UnsetType):
            self.resource = resource
        if not isinstance(parent_resource, unset.UnsetType):
            self.parent_resource = parent_resource
    
    def __dir__(self) ->abc.Iterable[builtins.str]:
        return [
            "resource",
            "parent_resource",
        ]
    
    @builtins.property
    def resource(self) -> "abc.MutableSequence[builtins.str]":
        """
        Fields annotated with this option are treated as NIDs.
        ``resource`` lists allowed NID resource types (prefixes). Leave empty or set to ``*`` to accept any type.
        Validation only produces warnings.
        """
        
        return super()._get_field("resource", explicit_presence=False,
        wrap=pb_classes.Repeated,
        )
    @resource.setter
    def resource(self, value: "abc.Iterable[builtins.str]|None") -> None:
        return super()._set_field("resource",value,explicit_presence=False,
        )
    
    @builtins.property
    def parent_resource(self) -> "abc.MutableSequence[builtins.str]":
        """
        For metadata fields, ``parent_resource`` lists allowed parent resource types for ``metadata.parent_id``.
        Leave empty or set to ``*`` to allow any type. Validation only produces warnings.
        Typically set on the resource message; request-level overrides are supported.
        """
        
        return super()._get_field("parent_resource", explicit_presence=False,
        wrap=pb_classes.Repeated,
        )
    @parent_resource.setter
    def parent_resource(self, value: "abc.Iterable[builtins.str]|None") -> None:
        return super()._set_field("parent_resource",value,explicit_presence=False,
        )
    
    __PY_TO_PB2__: builtins.dict[builtins.str,builtins.str] = {
        "resource":"resource",
        "parent_resource":"parent_resource",
    }
    
class SubfieldSettings(pb_classes.Message):
    """
    SubfieldSettings describes overrides for some settings for subfields of a
    field. Overrides are applied to fields in order of appearance, so the first
    matching override is applied, and the rest are ignored.
    
    Example:
    
    .. code-block:: protobuf
    
       message MyMessage {
         string field1 = 1;
       }
       message MyMessage2 {
         MyMessage field2 = 1 [(subfield_settings) = { field_path: "field1", is_required: true }];
       }
    
    In this example, ``field1`` in ``MyMessage2`` is required, even if it is not
    required in ``MyMessage``.
    The following example will override the setting again:
    
    .. code-block:: protobuf
    
       service MyService {
         rpc MyMethod(MyMessage2) returns (MyMessage2) {
           option (method_behavior) = METHOD_UPDATER;
           option (request_fields) = { field_path: "field2.field1", is_required: false };
         }
       }
    
    In this example, ``field1`` in ``MyMessage2`` is not required for the ``MyMethod``,
    even if it is required in ``MyMessage2``.
    """
    
    __PB2_CLASS__ = annotations_pb2.SubfieldSettings
    __PB2_DESCRIPTOR__ = descriptor.DescriptorWrap[descriptor_1.Descriptor](".nebius.SubfieldSettings",annotations_pb2.DESCRIPTOR,descriptor_1.Descriptor)
    __mask_functions__ = {
    }
    
    class __OneOfClass__is_required__(pb_classes.OneOf):
        name: builtins.str= "_is_required"
        
        def __init__(self, msg: "SubfieldSettings") -> None:
            super().__init__()
            self._message: "SubfieldSettings" = msg
    
    class __OneOfClass__is_required_is_required__(__OneOfClass__is_required__):
        field: typing.Literal["is_required"] = "is_required"
        
        def __init__(self, msg: "SubfieldSettings") -> None:
            super().__init__(msg)
        @builtins.property
        def value(self) -> "builtins.bool":
            return self._message.is_required
    
    @builtins.property
    def _is_required(self) -> __OneOfClass__is_required_is_required__|None:
        field_name: str|None = super().which_field_in_oneof("_is_required")
        match field_name:
            case "is_required":
                return self.__OneOfClass__is_required_is_required__(self)
            case None:
                return None
            case _:
                raise pb_classes.OneOfMatchError(field_name)
    
    def __init__(
        self,
        initial_message: message.Message|None = None,
        *,
        field_path: "builtins.str|None|unset.UnsetType" = unset.Unset,
        nid: "NIDFieldSettings|annotations_pb2.NIDFieldSettings|None|unset.UnsetType" = unset.Unset,
        is_required: "builtins.bool|None|unset.UnsetType" = unset.Unset,
    ) -> None:
        super().__init__(initial_message)
        if not isinstance(field_path, unset.UnsetType):
            self.field_path = field_path
        if not isinstance(nid, unset.UnsetType):
            self.nid = nid
        if not isinstance(is_required, unset.UnsetType):
            self.is_required = is_required
    
    def __dir__(self) ->abc.Iterable[builtins.str]:
        return [
            "field_path",
            "nid",
            "is_required",
            "_is_required",
        ]
    
    @builtins.property
    def field_path(self) -> "builtins.str":
        """
        Subfield path in the message, for example ``metadata.parent_id`` or ``metadata.name``.
        Must be a valid SelectMask.
        May match several fields, if necessary. For example, ``some.*.subfield`` or
        ``some.(subfield,another_field)``.
        """
        
        return super()._get_field("field_path", explicit_presence=False,
        )
    @field_path.setter
    def field_path(self, value: "builtins.str|None") -> None:
        return super()._set_field("field_path",value,explicit_presence=False,
        )
    
    @builtins.property
    def nid(self) -> "NIDFieldSettings":
        """
        For fields annotated with this option, values are treated as NIDs and
        warnings are emitted when they are not valid. These warnings are separate from server-side validation.
        """
        
        return super()._get_field("nid", explicit_presence=False,
        wrap=NIDFieldSettings,
        )
    @nid.setter
    def nid(self, value: "NIDFieldSettings|annotations_pb2.NIDFieldSettings|None") -> None:
        return super()._set_field("nid",value,explicit_presence=False,
        )
    
    @builtins.property
    def is_required(self) -> "builtins.bool|None":
        """
        Mark a field as required, even if it is not required in the message it contains.
        Unlike cel expressions, this setting can be reflected in tools documentation and
        help messages.
        """
        
        return super()._get_field("is_required", explicit_presence=True,
        )
    @is_required.setter
    def is_required(self, value: "builtins.bool|None") -> None:
        return super()._set_field("is_required",value,explicit_presence=True,
        )
    
    __PY_TO_PB2__: builtins.dict[builtins.str,builtins.str] = {
        "field_path":"field_path",
        "nid":"nid",
        "is_required":"is_required",
        "_is_required":"_is_required",
    }
    
file_deprecation_details = annotations_pb2.file_deprecation_details
api_service_name = annotations_pb2.api_service_name
service_deprecation_details = annotations_pb2.service_deprecation_details
service_py_sdk = annotations_pb2.service_py_sdk
method_deprecation_details = annotations_pb2.method_deprecation_details
method_py_sdk = annotations_pb2.method_py_sdk
method_behavior = annotations_pb2.method_behavior
request_fields = annotations_pb2.request_fields
resource_behavior = annotations_pb2.resource_behavior
message_deprecation_details = annotations_pb2.message_deprecation_details
message_py_sdk = annotations_pb2.message_py_sdk
field_behavior = annotations_pb2.field_behavior
sensitive = annotations_pb2.sensitive
credentials = annotations_pb2.credentials
field_deprecation_details = annotations_pb2.field_deprecation_details
field_py_sdk = annotations_pb2.field_py_sdk
nid = annotations_pb2.nid
subfield_settings = annotations_pb2.subfield_settings
oneof_behavior = annotations_pb2.oneof_behavior
oneof_py_sdk = annotations_pb2.oneof_py_sdk
enum_py_sdk = annotations_pb2.enum_py_sdk
enum_deprecation_details = annotations_pb2.enum_deprecation_details
enum_value_deprecation_details = annotations_pb2.enum_value_deprecation_details
enum_value_py_sdk = annotations_pb2.enum_value_py_sdk
__all__ = [
    #@ local import names here @#
    "ResourceBehavior",
    "FieldBehavior",
    "MethodBehavior",
    "file_deprecation_details",
    "api_service_name",
    "service_deprecation_details",
    "service_py_sdk",
    "method_deprecation_details",
    "method_py_sdk",
    "method_behavior",
    "request_fields",
    "resource_behavior",
    "message_deprecation_details",
    "message_py_sdk",
    "field_behavior",
    "sensitive",
    "credentials",
    "field_deprecation_details",
    "field_py_sdk",
    "nid",
    "subfield_settings",
    "oneof_behavior",
    "oneof_py_sdk",
    "enum_py_sdk",
    "enum_deprecation_details",
    "enum_value_deprecation_details",
    "enum_value_py_sdk",
    "ServicePySDKSettings",
    "MethodPySDKSettings",
    "FieldPySDKSettings",
    "MessagePySDKSettings",
    "OneofPySDKSettings",
    "EnumPySDKSettings",
    "EnumValuePySDKSettings",
    "DeprecationDetails",
    "NIDFieldSettings",
    "SubfieldSettings",
]
