Skip to content

Commit 0a5bfcd

Browse files
Auto-update API to: c321b1d, 2026-02-18 10:00:40 +0000
1 parent 0f2d0ac commit 0a5bfcd

22 files changed

+3274
-22
lines changed

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "nebius"
7-
version = "0.3.36"
7+
version = "0.3.37"
88
description = "Nebius Python SDK"
99
authors = [
1010
{ name = "Daniil Drizhuk", email = "complynx@nebius.com" },

src/nebius/api/nebius/__init__.py

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,45 @@ class FieldBehavior(pb_enum.Enum):
9898
"""
9999

100100

101+
class MethodBehavior(pb_enum.Enum):
102+
"""
103+
MethodBehavior describes special behaviors of a method that affect
104+
code generation and tooling.
105+
"""
106+
107+
__PB2_DESCRIPTOR__ = descriptor.DescriptorWrap[descriptor_1.EnumDescriptor](".nebius.MethodBehavior",annotations_pb2.DESCRIPTOR,descriptor_1.EnumDescriptor)
108+
METHOD_BEHAVIOR_UNSPECIFIED = 0
109+
"""
110+
Indicates that the method behavior is default and is not specified.
111+
For instance, an Update method will lose its update semantics if this value
112+
is set.
113+
Does not mean anything if set along with other values.
114+
"""
115+
116+
METHOD_UPDATER = 2
117+
"""
118+
Indicates that the method is used to update a resource or a number of
119+
resources, therefore it requires a reset mask to unset fields.
120+
This will enable SDKs to generate the reset mask on request, as well as the
121+
gateway to pass and sanitize it. The CLI will add flags to set partial or
122+
full updates and custom reset masks.
123+
"""
124+
125+
METHOD_PAGINATED = 3
126+
"""
127+
Indicates that the method is used to list something, and supports
128+
pagination.
129+
"""
130+
131+
METHOD_WITHOUT_GET = 4
132+
"""
133+
Indicates that the method will create an operation, which doesn't have a
134+
gettable resource after its completion, and therefore must not call a ``get``
135+
method. For instance, it can be used for long-running operations that
136+
don't return any resource, or for resource deletion operations.
137+
"""
138+
139+
101140
class ServicePySDKSettings(pb_classes.Message):
102141
__PB2_CLASS__ = annotations_pb2.ServicePySDKSettings
103142
__PB2_DESCRIPTOR__ = descriptor.DescriptorWrap[descriptor_1.Descriptor](".nebius.ServicePySDKSettings",annotations_pb2.DESCRIPTOR,descriptor_1.Descriptor)
@@ -481,6 +520,7 @@ def parent_resource(self, value: "abc.Iterable[builtins.str]|None") -> None:
481520
method_deprecation_details = annotations_pb2.method_deprecation_details
482521
method_py_sdk = annotations_pb2.method_py_sdk
483522
send_reset_mask = annotations_pb2.send_reset_mask
523+
method_behavior = annotations_pb2.method_behavior
484524
resource_behavior = annotations_pb2.resource_behavior
485525
message_deprecation_details = annotations_pb2.message_deprecation_details
486526
message_py_sdk = annotations_pb2.message_py_sdk
@@ -500,13 +540,15 @@ def parent_resource(self, value: "abc.Iterable[builtins.str]|None") -> None:
500540
#@ local import names here @#
501541
"ResourceBehavior",
502542
"FieldBehavior",
543+
"MethodBehavior",
503544
"file_deprecation_details",
504545
"api_service_name",
505546
"service_deprecation_details",
506547
"service_py_sdk",
507548
"method_deprecation_details",
508549
"method_py_sdk",
509550
"send_reset_mask",
551+
"method_behavior",
510552
"resource_behavior",
511553
"message_deprecation_details",
512554
"message_py_sdk",

src/nebius/api/nebius/annotations_pb2.py

Lines changed: 4 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/nebius/api/nebius/annotations_pb2.pyi

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,13 @@ class FieldBehavior(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
2323
OUTPUT_ONLY: _ClassVar[FieldBehavior]
2424
MEANINGFUL_EMPTY_VALUE: _ClassVar[FieldBehavior]
2525
NON_EMPTY_DEFAULT: _ClassVar[FieldBehavior]
26+
27+
class MethodBehavior(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
28+
__slots__ = []
29+
METHOD_BEHAVIOR_UNSPECIFIED: _ClassVar[MethodBehavior]
30+
METHOD_UPDATER: _ClassVar[MethodBehavior]
31+
METHOD_PAGINATED: _ClassVar[MethodBehavior]
32+
METHOD_WITHOUT_GET: _ClassVar[MethodBehavior]
2633
RESOURCE_BEHAVIOR_UNSPECIFIED: ResourceBehavior
2734
MOVABLE: ResourceBehavior
2835
UNNAMED: ResourceBehavior
@@ -34,6 +41,10 @@ INPUT_ONLY: FieldBehavior
3441
OUTPUT_ONLY: FieldBehavior
3542
MEANINGFUL_EMPTY_VALUE: FieldBehavior
3643
NON_EMPTY_DEFAULT: FieldBehavior
44+
METHOD_BEHAVIOR_UNSPECIFIED: MethodBehavior
45+
METHOD_UPDATER: MethodBehavior
46+
METHOD_PAGINATED: MethodBehavior
47+
METHOD_WITHOUT_GET: MethodBehavior
3748
FILE_DEPRECATION_DETAILS_FIELD_NUMBER: _ClassVar[int]
3849
file_deprecation_details: _descriptor.FieldDescriptor
3950
API_SERVICE_NAME_FIELD_NUMBER: _ClassVar[int]
@@ -48,6 +59,8 @@ METHOD_PY_SDK_FIELD_NUMBER: _ClassVar[int]
4859
method_py_sdk: _descriptor.FieldDescriptor
4960
SEND_RESET_MASK_FIELD_NUMBER: _ClassVar[int]
5061
send_reset_mask: _descriptor.FieldDescriptor
62+
METHOD_BEHAVIOR_FIELD_NUMBER: _ClassVar[int]
63+
method_behavior: _descriptor.FieldDescriptor
5164
RESOURCE_BEHAVIOR_FIELD_NUMBER: _ClassVar[int]
5265
resource_behavior: _descriptor.FieldDescriptor
5366
MESSAGE_DEPRECATION_DETAILS_FIELD_NUMBER: _ClassVar[int]

src/nebius/api/nebius/compute/v1/__init__.py

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4394,6 +4394,7 @@ def __init__(
43944394
ip_address: "IPAddress|network_interface_pb2.IPAddress|None|unset.UnsetType" = unset.Unset,
43954395
public_ip_address: "PublicIPAddress|network_interface_pb2.PublicIPAddress|None|unset.UnsetType" = unset.Unset,
43964396
aliases: "abc.Iterable[IPAlias]|None|unset.UnsetType" = unset.Unset,
4397+
security_groups: "abc.Iterable[SecurityGroup]|None|unset.UnsetType" = unset.Unset,
43974398
) -> None:
43984399
super().__init__(initial_message)
43994400
if not isinstance(subnet_id, unset.UnsetType):
@@ -4406,6 +4407,8 @@ def __init__(
44064407
self.public_ip_address = public_ip_address
44074408
if not isinstance(aliases, unset.UnsetType):
44084409
self.aliases = aliases
4410+
if not isinstance(security_groups, unset.UnsetType):
4411+
self.security_groups = security_groups
44094412

44104413
def __dir__(self) ->abc.Iterable[builtins.str]:
44114414
return [
@@ -4414,6 +4417,7 @@ def __dir__(self) ->abc.Iterable[builtins.str]:
44144417
"ip_address",
44154418
"public_ip_address",
44164419
"aliases",
4420+
"security_groups",
44174421
]
44184422

44194423
@builtins.property
@@ -4486,12 +4490,29 @@ def aliases(self, value: "abc.Iterable[IPAlias]|None") -> None:
44864490
return super()._set_field("aliases",value,explicit_presence=False,
44874491
)
44884492

4493+
@builtins.property
4494+
def security_groups(self) -> "abc.MutableSequence[SecurityGroup]":
4495+
"""
4496+
Security groups associated with the network interface.
4497+
If an empty list is provided, the default security group for the network will be used.
4498+
Effective security groups can be seen in the status.
4499+
"""
4500+
4501+
return super()._get_field("security_groups", explicit_presence=False,
4502+
wrap=pb_classes.Repeated.with_wrap(SecurityGroup,None,None),
4503+
)
4504+
@security_groups.setter
4505+
def security_groups(self, value: "abc.Iterable[SecurityGroup]|None") -> None:
4506+
return super()._set_field("security_groups",value,explicit_presence=False,
4507+
)
4508+
44894509
__PY_TO_PB2__: builtins.dict[builtins.str,builtins.str] = {
44904510
"subnet_id":"subnet_id",
44914511
"name":"name",
44924512
"ip_address":"ip_address",
44934513
"public_ip_address":"public_ip_address",
44944514
"aliases":"aliases",
4515+
"security_groups":"security_groups",
44954516
}
44964517

44974518
class IPAddress(pb_classes.Message):
@@ -4990,6 +5011,44 @@ def cidrs(self, value: "abc.Iterable[builtins.str]|None") -> None:
49905011
"cidrs":"cidrs",
49915012
}
49925013

5014+
class SecurityGroup(pb_classes.Message):
5015+
__PB2_CLASS__ = network_interface_pb2.SecurityGroup
5016+
__PB2_DESCRIPTOR__ = descriptor.DescriptorWrap[descriptor_1.Descriptor](".nebius.compute.v1.SecurityGroup",network_interface_pb2.DESCRIPTOR,descriptor_1.Descriptor)
5017+
__mask_functions__ = {
5018+
}
5019+
5020+
def __init__(
5021+
self,
5022+
initial_message: message_1.Message|None = None,
5023+
*,
5024+
id: "builtins.str|None|unset.UnsetType" = unset.Unset,
5025+
) -> None:
5026+
super().__init__(initial_message)
5027+
if not isinstance(id, unset.UnsetType):
5028+
self.id = id
5029+
5030+
def __dir__(self) ->abc.Iterable[builtins.str]:
5031+
return [
5032+
"id",
5033+
]
5034+
5035+
@builtins.property
5036+
def id(self) -> "builtins.str":
5037+
"""
5038+
Security group identifier
5039+
"""
5040+
5041+
return super()._get_field("id", explicit_presence=False,
5042+
)
5043+
@id.setter
5044+
def id(self, value: "builtins.str|None") -> None:
5045+
return super()._set_field("id",value,explicit_presence=False,
5046+
)
5047+
5048+
__PY_TO_PB2__: builtins.dict[builtins.str,builtins.str] = {
5049+
"id":"id",
5050+
}
5051+
49935052
# file: nebius/compute/v1/instance.proto
49945053
class InstanceRecoveryPolicy(pb_enum.Enum):
49955054
__PB2_DESCRIPTOR__ = descriptor.DescriptorWrap[descriptor_1.EnumDescriptor](".nebius.compute.v1.InstanceRecoveryPolicy",instance_pb2.DESCRIPTOR,descriptor_1.EnumDescriptor)
@@ -8023,6 +8082,7 @@ def list(self,
80238082
"IPAddressStatus",
80248083
"PublicIPAddressStatus",
80258084
"IPAliasesStatus",
8085+
"SecurityGroup",
80268086
"InstanceRecoveryPolicy",
80278087
"Instance",
80288088
"InstanceSpec",

0 commit comments

Comments
 (0)