gcore 0.3.0__py3-none-any.whl → 0.4.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of gcore might be problematic. Click here for more details.

Files changed (120) hide show
  1. gcore/__init__.py +2 -1
  2. gcore/_base_client.py +22 -0
  3. gcore/_client.py +9 -0
  4. gcore/_version.py +1 -1
  5. gcore/pagination.py +61 -1
  6. gcore/resources/__init__.py +14 -0
  7. gcore/resources/cloud/baremetal/flavors.py +11 -137
  8. gcore/resources/cloud/baremetal/images.py +10 -12
  9. gcore/resources/cloud/baremetal/servers.py +31 -28
  10. gcore/resources/cloud/billing_reservations.py +2 -2
  11. gcore/resources/cloud/file_shares/file_shares.py +7 -8
  12. gcore/resources/cloud/floating_ips.py +7 -12
  13. gcore/resources/cloud/gpu_baremetal_clusters/gpu_baremetal_clusters.py +31 -20
  14. gcore/resources/cloud/gpu_baremetal_clusters/images.py +9 -10
  15. gcore/resources/cloud/gpu_baremetal_clusters/interfaces.py +2 -2
  16. gcore/resources/cloud/gpu_baremetal_clusters/servers.py +8 -4
  17. gcore/resources/cloud/inference/deployments/deployments.py +10 -2
  18. gcore/resources/cloud/inference/registry_credentials.py +2 -2
  19. gcore/resources/cloud/inference/secrets.py +8 -8
  20. gcore/resources/cloud/instances/flavors.py +9 -233
  21. gcore/resources/cloud/instances/images.py +47 -37
  22. gcore/resources/cloud/instances/instances.py +47 -32
  23. gcore/resources/cloud/instances/interfaces.py +2 -2
  24. gcore/resources/cloud/ip_ranges.py +34 -2
  25. gcore/resources/cloud/load_balancers/l7_policies/l7_policies.py +10 -2
  26. gcore/resources/cloud/load_balancers/listeners.py +17 -8
  27. gcore/resources/cloud/load_balancers/load_balancers.py +73 -21
  28. gcore/resources/cloud/load_balancers/metrics.py +2 -2
  29. gcore/resources/cloud/load_balancers/pools/health_monitors.py +2 -2
  30. gcore/resources/cloud/load_balancers/pools/members.py +6 -2
  31. gcore/resources/cloud/networks/networks.py +81 -17
  32. gcore/resources/cloud/networks/routers.py +18 -18
  33. gcore/resources/cloud/networks/subnets.py +51 -11
  34. gcore/resources/cloud/projects.py +38 -24
  35. gcore/resources/cloud/quotas/quotas.py +6 -6
  36. gcore/resources/cloud/quotas/requests.py +8 -8
  37. gcore/resources/cloud/registries/artifacts.py +4 -4
  38. gcore/resources/cloud/registries/registries.py +14 -16
  39. gcore/resources/cloud/registries/repositories.py +4 -4
  40. gcore/resources/cloud/registries/tags.py +2 -2
  41. gcore/resources/cloud/registries/users.py +21 -22
  42. gcore/resources/cloud/reserved_fixed_ips/reserved_fixed_ips.py +20 -20
  43. gcore/resources/cloud/reserved_fixed_ips/vip.py +10 -10
  44. gcore/resources/cloud/security_groups/rules.py +6 -6
  45. gcore/resources/cloud/security_groups/security_groups.py +70 -31
  46. gcore/resources/cloud/tasks.py +4 -4
  47. gcore/resources/cloud/users/role_assignments.py +12 -14
  48. gcore/resources/cloud/volumes.py +139 -49
  49. gcore/resources/iam/__init__.py +47 -0
  50. gcore/resources/iam/api_tokens.py +521 -0
  51. gcore/resources/iam/iam.py +199 -0
  52. gcore/resources/iam/users.py +642 -0
  53. gcore/resources/waap/__init__.py +0 -14
  54. gcore/resources/waap/waap.py +0 -32
  55. gcore/types/cloud/baremetal/__init__.py +0 -1
  56. gcore/types/cloud/baremetal/image_list_params.py +1 -5
  57. gcore/types/cloud/baremetal/server_create_params.py +4 -8
  58. gcore/types/cloud/baremetal/server_list_params.py +1 -5
  59. gcore/types/cloud/ddos_profile.py +9 -3
  60. gcore/types/cloud/file_share_create_params.py +3 -5
  61. gcore/types/cloud/floating_ip_create_params.py +2 -4
  62. gcore/types/cloud/floating_ip_list_params.py +1 -5
  63. gcore/types/cloud/gpu_baremetal_cluster_create_params.py +2 -3
  64. gcore/types/cloud/gpu_baremetal_clusters/image_upload_params.py +2 -4
  65. gcore/types/cloud/health_monitor.py +6 -1
  66. gcore/types/cloud/instance_create_params.py +7 -8
  67. gcore/types/cloud/instance_list_params.py +1 -5
  68. gcore/types/cloud/instances/__init__.py +0 -2
  69. gcore/types/cloud/instances/image_create_from_volume_params.py +2 -4
  70. gcore/types/cloud/instances/image_list_params.py +1 -5
  71. gcore/types/cloud/instances/image_upload_params.py +2 -4
  72. gcore/types/cloud/load_balancer_create_params.py +8 -4
  73. gcore/types/cloud/load_balancer_list_params.py +1 -5
  74. gcore/types/cloud/load_balancer_update_params.py +24 -0
  75. gcore/types/cloud/load_balancers/pool_create_params.py +6 -1
  76. gcore/types/cloud/load_balancers/pool_update_params.py +6 -1
  77. gcore/types/cloud/load_balancers/pools/member_add_params.py +6 -1
  78. gcore/types/cloud/member.py +6 -1
  79. gcore/types/cloud/network_create_params.py +2 -3
  80. gcore/types/cloud/network_list_params.py +4 -5
  81. gcore/types/cloud/network_update_params.py +28 -2
  82. gcore/types/cloud/networks/router_list_params.py +2 -2
  83. gcore/types/cloud/networks/subnet_create_params.py +2 -3
  84. gcore/types/cloud/networks/subnet_list_params.py +1 -5
  85. gcore/types/cloud/networks/subnet_update_params.py +25 -0
  86. gcore/types/cloud/registries/__init__.py +1 -0
  87. gcore/types/cloud/registries/user_refresh_secret_response.py +31 -0
  88. gcore/types/cloud/reserved_fixed_ip_list_params.py +2 -2
  89. gcore/types/cloud/security_group_list_params.py +3 -7
  90. gcore/types/cloud/security_group_update_params.py +25 -0
  91. gcore/types/cloud/tag_update_map_param.py +2 -2
  92. gcore/types/cloud/volume_list_params.py +1 -5
  93. gcore/types/cloud/volume_update_params.py +29 -3
  94. gcore/types/iam/__init__.py +17 -0
  95. gcore/types/iam/account_overview.py +488 -0
  96. gcore/types/iam/api_token.py +78 -0
  97. gcore/types/iam/api_token_create.py +15 -0
  98. gcore/types/iam/api_token_create_params.py +42 -0
  99. gcore/types/iam/api_token_list.py +81 -0
  100. gcore/types/iam/api_token_list_params.py +41 -0
  101. gcore/types/iam/user.py +86 -0
  102. gcore/types/iam/user_detailed.py +104 -0
  103. gcore/types/iam/user_invite.py +15 -0
  104. gcore/types/iam/user_invite_params.py +37 -0
  105. gcore/types/iam/user_list_params.py +15 -0
  106. gcore/types/iam/user_update.py +104 -0
  107. gcore/types/iam/user_update_params.py +52 -0
  108. gcore/types/waap/__init__.py +0 -1
  109. gcore/types/waap/domains/custom_rule_create_params.py +7 -3
  110. gcore/types/waap/domains/custom_rule_update_params.py +7 -3
  111. gcore/types/waap/waap_custom_rule.py +7 -3
  112. {gcore-0.3.0.dist-info → gcore-0.4.0.dist-info}/METADATA +40 -3
  113. {gcore-0.3.0.dist-info → gcore-0.4.0.dist-info}/RECORD +115 -101
  114. gcore/resources/waap/clients.py +0 -135
  115. gcore/types/cloud/baremetal/flavor_list_suitable_params.py +0 -22
  116. gcore/types/cloud/instances/flavor_list_for_resize_params.py +0 -16
  117. gcore/types/cloud/instances/flavor_list_suitable_params.py +0 -59
  118. gcore/types/waap/client_me_response.py +0 -34
  119. {gcore-0.3.0.dist-info → gcore-0.4.0.dist-info}/WHEEL +0 -0
  120. {gcore-0.3.0.dist-info → gcore-0.4.0.dist-info}/licenses/LICENSE +0 -0
@@ -12,14 +12,6 @@ from .tags import (
12
12
  TagsResourceWithStreamingResponse,
13
13
  AsyncTagsResourceWithStreamingResponse,
14
14
  )
15
- from .clients import (
16
- ClientsResource,
17
- AsyncClientsResource,
18
- ClientsResourceWithRawResponse,
19
- AsyncClientsResourceWithRawResponse,
20
- ClientsResourceWithStreamingResponse,
21
- AsyncClientsResourceWithStreamingResponse,
22
- )
23
15
  from .ip_info import (
24
16
  IPInfoResource,
25
17
  AsyncIPInfoResource,
@@ -84,10 +76,6 @@ __all__ = ["WaapResource", "AsyncWaapResource"]
84
76
 
85
77
 
86
78
  class WaapResource(SyncAPIResource):
87
- @cached_property
88
- def clients(self) -> ClientsResource:
89
- return ClientsResource(self._client)
90
-
91
79
  @cached_property
92
80
  def statistics(self) -> StatisticsResource:
93
81
  return StatisticsResource(self._client)
@@ -156,10 +144,6 @@ class WaapResource(SyncAPIResource):
156
144
 
157
145
 
158
146
  class AsyncWaapResource(AsyncAPIResource):
159
- @cached_property
160
- def clients(self) -> AsyncClientsResource:
161
- return AsyncClientsResource(self._client)
162
-
163
147
  @cached_property
164
148
  def statistics(self) -> AsyncStatisticsResource:
165
149
  return AsyncStatisticsResource(self._client)
@@ -235,10 +219,6 @@ class WaapResourceWithRawResponse:
235
219
  waap.get_account_overview,
236
220
  )
237
221
 
238
- @cached_property
239
- def clients(self) -> ClientsResourceWithRawResponse:
240
- return ClientsResourceWithRawResponse(self._waap.clients)
241
-
242
222
  @cached_property
243
223
  def statistics(self) -> StatisticsResourceWithRawResponse:
244
224
  return StatisticsResourceWithRawResponse(self._waap.statistics)
@@ -276,10 +256,6 @@ class AsyncWaapResourceWithRawResponse:
276
256
  waap.get_account_overview,
277
257
  )
278
258
 
279
- @cached_property
280
- def clients(self) -> AsyncClientsResourceWithRawResponse:
281
- return AsyncClientsResourceWithRawResponse(self._waap.clients)
282
-
283
259
  @cached_property
284
260
  def statistics(self) -> AsyncStatisticsResourceWithRawResponse:
285
261
  return AsyncStatisticsResourceWithRawResponse(self._waap.statistics)
@@ -317,10 +293,6 @@ class WaapResourceWithStreamingResponse:
317
293
  waap.get_account_overview,
318
294
  )
319
295
 
320
- @cached_property
321
- def clients(self) -> ClientsResourceWithStreamingResponse:
322
- return ClientsResourceWithStreamingResponse(self._waap.clients)
323
-
324
296
  @cached_property
325
297
  def statistics(self) -> StatisticsResourceWithStreamingResponse:
326
298
  return StatisticsResourceWithStreamingResponse(self._waap.statistics)
@@ -358,10 +330,6 @@ class AsyncWaapResourceWithStreamingResponse:
358
330
  waap.get_account_overview,
359
331
  )
360
332
 
361
- @cached_property
362
- def clients(self) -> AsyncClientsResourceWithStreamingResponse:
363
- return AsyncClientsResourceWithStreamingResponse(self._waap.clients)
364
-
365
333
  @cached_property
366
334
  def statistics(self) -> AsyncStatisticsResourceWithStreamingResponse:
367
335
  return AsyncStatisticsResourceWithStreamingResponse(self._waap.statistics)
@@ -10,4 +10,3 @@ from .server_create_params import ServerCreateParams as ServerCreateParams
10
10
  from .server_rebuild_params import ServerRebuildParams as ServerRebuildParams
11
11
  from .baremetal_fixed_address import BaremetalFixedAddress as BaremetalFixedAddress
12
12
  from .baremetal_floating_address import BaremetalFloatingAddress as BaremetalFloatingAddress
13
- from .flavor_list_suitable_params import FlavorListSuitableParams as FlavorListSuitableParams
@@ -23,11 +23,7 @@ class ImageListParams(TypedDict, total=False):
23
23
  """Filter by tag keys."""
24
24
 
25
25
  tag_key_value: str
26
- """Filter by tag key-value pairs.
27
-
28
- Must be a valid JSON string. 'curl -G --data-urlencode '`tag_key_value`={"key":
29
- "value"}' --url 'http://localhost:1111/v1/images/1/1'"
30
- """
26
+ """Filter by tag key-value pairs. Must be a valid JSON string."""
31
27
 
32
28
  visibility: Literal["private", "public", "shared"]
33
29
  """Image visibility. Globally visible images are public"""
@@ -2,11 +2,10 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import Union, Iterable, Optional
5
+ from typing import Dict, Union, Iterable, Optional
6
6
  from typing_extensions import Literal, Required, TypeAlias, TypedDict
7
7
 
8
8
  from ..interface_ip_family import InterfaceIPFamily
9
- from ..tag_update_map_param import TagUpdateMapParam
10
9
 
11
10
  __all__ = [
12
11
  "ServerCreateParams",
@@ -88,7 +87,7 @@ class ServerCreateParams(TypedDict, total=False):
88
87
  [/v1/`ssh_keys` endpoint](/docs/api-reference/ssh-keys/add-or-generate-ssh-key).
89
88
  """
90
89
 
91
- tags: TagUpdateMapParam
90
+ tags: Dict[str, str]
92
91
  """Key-value tags to associate with the resource.
93
92
 
94
93
  A tag is a key-value pair that can be associated with a resource, enabling
@@ -361,10 +360,7 @@ class DDOSProfileField(TypedDict, total=False):
361
360
 
362
361
  class DDOSProfile(TypedDict, total=False):
363
362
  profile_template: Required[int]
364
- """DDoS profile template ID"""
363
+ """Advanced DDoS template ID"""
365
364
 
366
- fields: Optional[Iterable[DDOSProfileField]]
365
+ fields: Iterable[DDOSProfileField]
367
366
  """DDoS profile parameters"""
368
-
369
- profile_template_name: Optional[str]
370
- """DDoS profile template name"""
@@ -85,11 +85,7 @@ class ServerListParams(TypedDict, total=False):
85
85
  """Filters instances by a server status, as a string."""
86
86
 
87
87
  tag_key_value: str
88
- """Optional.
89
-
90
- Filter by tag key-value pairs. curl -G --data-urlencode "`tag_key_value`={"key":
91
- "value"}" --url "https://example.com/cloud/v1/resource/1/1"
92
- """
88
+ """Optional. Filter by tag key-value pairs."""
93
89
 
94
90
  tag_value: List[str]
95
91
  """Optional. Filter by tag values. ?`tag_value`=value1&`tag_value`=value2"""
@@ -8,14 +8,20 @@ from .ddos_profile_status import DDOSProfileStatus
8
8
  from .ddos_profile_template import DDOSProfileTemplate
9
9
  from .ddos_profile_option_list import DDOSProfileOptionList
10
10
 
11
- __all__ = ["DDOSProfile"]
11
+ __all__ = ["DDOSProfile", "Protocol"]
12
+
13
+
14
+ class Protocol(BaseModel):
15
+ port: str
16
+
17
+ protocols: List[str]
12
18
 
13
19
 
14
20
  class DDOSProfile(BaseModel):
15
21
  id: int
16
22
  """DDoS protection profile ID"""
17
23
 
18
- profile_template: DDOSProfileTemplate
24
+ profile_template: Optional[DDOSProfileTemplate] = None
19
25
  """Template data"""
20
26
 
21
27
  fields: Optional[List[DDOSProfileField]] = None
@@ -25,7 +31,7 @@ class DDOSProfile(BaseModel):
25
31
  profile_template_description: Optional[str] = None
26
32
  """DDoS profile template description"""
27
33
 
28
- protocols: Optional[List[object]] = None
34
+ protocols: Optional[List[Protocol]] = None
29
35
  """List of protocols"""
30
36
 
31
37
  site: Optional[str] = None
@@ -2,11 +2,9 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import Union, Iterable
5
+ from typing import Dict, Union, Iterable
6
6
  from typing_extensions import Literal, Required, TypeAlias, TypedDict
7
7
 
8
- from .tag_update_map_param import TagUpdateMapParam
9
-
10
8
  __all__ = [
11
9
  "FileShareCreateParams",
12
10
  "CreateStandardFileShareSerializer",
@@ -38,7 +36,7 @@ class CreateStandardFileShareSerializer(TypedDict, total=False):
38
36
  access: Iterable[CreateStandardFileShareSerializerAccess]
39
37
  """Access Rules"""
40
38
 
41
- tags: TagUpdateMapParam
39
+ tags: Dict[str, str]
42
40
  """Key-value tags to associate with the resource.
43
41
 
44
42
  A tag is a key-value pair that can be associated with a resource, enabling
@@ -90,7 +88,7 @@ class CreateVastFileShareSerializer(TypedDict, total=False):
90
88
  volume_type: Required[Literal["vast_share_type"]]
91
89
  """File share volume type"""
92
90
 
93
- tags: TagUpdateMapParam
91
+ tags: Dict[str, str]
94
92
  """Key-value tags to associate with the resource.
95
93
 
96
94
  A tag is a key-value pair that can be associated with a resource, enabling
@@ -2,11 +2,9 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import Optional
5
+ from typing import Dict, Optional
6
6
  from typing_extensions import TypedDict
7
7
 
8
- from .tag_update_map_param import TagUpdateMapParam
9
-
10
8
  __all__ = ["FloatingIPCreateParams"]
11
9
 
12
10
 
@@ -29,7 +27,7 @@ class FloatingIPCreateParams(TypedDict, total=False):
29
27
  If provided, the floating IP will be immediately attached to the specified port.
30
28
  """
31
29
 
32
- tags: TagUpdateMapParam
30
+ tags: Dict[str, str]
33
31
  """Key-value tags to associate with the resource.
34
32
 
35
33
  A tag is a key-value pair that can be associated with a resource, enabling
@@ -28,8 +28,4 @@ class FloatingIPListParams(TypedDict, total=False):
28
28
  """Optional. Filter by tag keys. ?`tag_key`=key1&`tag_key`=key2"""
29
29
 
30
30
  tag_key_value: str
31
- """Optional.
32
-
33
- Filter by tag key-value pairs. curl -G --data-urlencode "`tag_key_value`={"key":
34
- "value"}" --url "https://example.com/cloud/v1/resource/1/1"
35
- """
31
+ """Optional. Filter by tag key-value pairs."""
@@ -2,11 +2,10 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import Union, Iterable, Optional
5
+ from typing import Dict, Union, Iterable, Optional
6
6
  from typing_extensions import Literal, Required, TypeAlias, TypedDict
7
7
 
8
8
  from .interface_ip_family import InterfaceIPFamily
9
- from .tag_update_map_param import TagUpdateMapParam
10
9
 
11
10
  __all__ = [
12
11
  "GPUBaremetalClusterCreateParams",
@@ -55,7 +54,7 @@ class GPUBaremetalClusterCreateParams(TypedDict, total=False):
55
54
  [/v1/`ssh_keys` endpoint](/docs/api-reference/ssh-keys/add-or-generate-ssh-key).
56
55
  """
57
56
 
58
- tags: TagUpdateMapParam
57
+ tags: Dict[str, str]
59
58
  """Key-value tags to associate with the resource.
60
59
 
61
60
  A tag is a key-value pair that can be associated with a resource, enabling
@@ -2,11 +2,9 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import Optional
5
+ from typing import Dict, Optional
6
6
  from typing_extensions import Literal, Required, TypedDict
7
7
 
8
- from ..tag_update_map_param import TagUpdateMapParam
9
-
10
8
  __all__ = ["ImageUploadParams"]
11
9
 
12
10
 
@@ -47,7 +45,7 @@ class ImageUploadParams(TypedDict, total=False):
47
45
  ssh_key: Literal["allow", "deny", "required"]
48
46
  """Permission to use a ssh key in instances"""
49
47
 
50
- tags: TagUpdateMapParam
48
+ tags: Dict[str, str]
51
49
  """Key-value tags to associate with the resource.
52
50
 
53
51
  A tag is a key-value pair that can be associated with a resource, enabling
@@ -16,7 +16,12 @@ class HealthMonitor(BaseModel):
16
16
  """Health monitor ID"""
17
17
 
18
18
  admin_state_up: bool
19
- """true if enabled. Defaults to true"""
19
+ """Administrative state of the resource.
20
+
21
+ When set to true, the resource is enabled and operational. When set to false,
22
+ the resource is disabled and will not process traffic. When null is passed, the
23
+ value is skipped and defaults to true.
24
+ """
20
25
 
21
26
  delay: int
22
27
  """The time, in seconds, between sending probes to members"""
@@ -2,11 +2,10 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import Union, Iterable, Optional
5
+ from typing import Dict, Union, Iterable, Optional
6
6
  from typing_extensions import Literal, Required, TypeAlias, TypedDict
7
7
 
8
8
  from .interface_ip_family import InterfaceIPFamily
9
- from .tag_update_map_param import TagUpdateMapParam
10
9
 
11
10
  __all__ = [
12
11
  "InstanceCreateParams",
@@ -113,7 +112,7 @@ class InstanceCreateParams(TypedDict, total=False):
113
112
  [/v1/`ssh_keys` endpoint](/docs/api-reference/ssh-keys/add-or-generate-ssh-key).
114
113
  """
115
114
 
116
- tags: TagUpdateMapParam
115
+ tags: Dict[str, str]
117
116
  """Key-value tags to associate with the resource.
118
117
 
119
118
  A tag is a key-value pair that can be associated with a resource, enabling
@@ -389,7 +388,7 @@ class VolumeCreateInstanceCreateNewVolumeSerializer(TypedDict, total=False):
389
388
  If not specified, a name will be generated automatically.
390
389
  """
391
390
 
392
- tags: TagUpdateMapParam
391
+ tags: Dict[str, str]
393
392
  """Key-value tags to associate with the resource.
394
393
 
395
394
  A tag is a key-value pair that can be associated with a resource, enabling
@@ -450,7 +449,7 @@ class VolumeCreateInstanceCreateVolumeFromImageSerializer(TypedDict, total=False
450
449
  - For basic VMs: the size is set automatically based on the flavor.
451
450
  """
452
451
 
453
- tags: TagUpdateMapParam
452
+ tags: Dict[str, str]
454
453
  """Key-value tags to associate with the resource.
455
454
 
456
455
  A tag is a key-value pair that can be associated with a resource, enabling
@@ -504,7 +503,7 @@ class VolumeCreateInstanceCreateVolumeFromSnapshotSerializer(TypedDict, total=Fa
504
503
  If not specified, a name will be generated automatically.
505
504
  """
506
505
 
507
- tags: TagUpdateMapParam
506
+ tags: Dict[str, str]
508
507
  """Key-value tags to associate with the resource.
509
508
 
510
509
  A tag is a key-value pair that can be associated with a resource, enabling
@@ -550,7 +549,7 @@ class VolumeCreateInstanceCreateVolumeFromApptemplateSerializer(TypedDict, total
550
549
  size: int
551
550
  """Volume size in GiB."""
552
551
 
553
- tags: TagUpdateMapParam
552
+ tags: Dict[str, str]
554
553
  """Key-value tags to associate with the resource.
555
554
 
556
555
  A tag is a key-value pair that can be associated with a resource, enabling
@@ -595,7 +594,7 @@ class VolumeCreateInstanceExistingVolumeSerializer(TypedDict, total=False):
595
594
  delete_on_termination: bool
596
595
  """Set to `true` to automatically delete the volume when the instance is deleted."""
597
596
 
598
- tags: TagUpdateMapParam
597
+ tags: Dict[str, str]
599
598
  """Key-value tags to associate with the resource.
600
599
 
601
600
  A tag is a key-value pair that can be associated with a resource, enabling
@@ -118,11 +118,7 @@ class InstanceListParams(TypedDict, total=False):
118
118
  """Filters instances by status."""
119
119
 
120
120
  tag_key_value: str
121
- """Optional.
122
-
123
- Filter by tag key-value pairs. curl -G --data-urlencode "`tag_key_value`={"key":
124
- "value"}" --url "https://example.com/cloud/v1/resource/1/1"
125
- """
121
+ """Optional. Filter by tag key-value pairs."""
126
122
 
127
123
  tag_value: List[str]
128
124
  """Optional. Filter by tag values. ?`tag_value`=value1&`tag_value`=value2"""
@@ -14,6 +14,4 @@ from .image_upload_params import ImageUploadParams as ImageUploadParams
14
14
  from .instance_flavor_list import InstanceFlavorList as InstanceFlavorList
15
15
  from .interface_attach_params import InterfaceAttachParams as InterfaceAttachParams
16
16
  from .interface_detach_params import InterfaceDetachParams as InterfaceDetachParams
17
- from .flavor_list_suitable_params import FlavorListSuitableParams as FlavorListSuitableParams
18
- from .flavor_list_for_resize_params import FlavorListForResizeParams as FlavorListForResizeParams
19
17
  from .image_create_from_volume_params import ImageCreateFromVolumeParams as ImageCreateFromVolumeParams
@@ -2,11 +2,9 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import Optional
5
+ from typing import Dict, Optional
6
6
  from typing_extensions import Literal, Required, TypedDict
7
7
 
8
- from ..tag_update_map_param import TagUpdateMapParam
9
-
10
8
  __all__ = ["ImageCreateFromVolumeParams"]
11
9
 
12
10
 
@@ -42,7 +40,7 @@ class ImageCreateFromVolumeParams(TypedDict, total=False):
42
40
  ssh_key: Literal["allow", "deny", "required"]
43
41
  """Whether the image supports SSH key or not"""
44
42
 
45
- tags: TagUpdateMapParam
43
+ tags: Dict[str, str]
46
44
  """Key-value tags to associate with the resource.
47
45
 
48
46
  A tag is a key-value pair that can be associated with a resource, enabling
@@ -23,11 +23,7 @@ class ImageListParams(TypedDict, total=False):
23
23
  """Filter by tag keys."""
24
24
 
25
25
  tag_key_value: str
26
- """Filter by tag key-value pairs.
27
-
28
- Must be a valid JSON string. 'curl -G --data-urlencode '`tag_key_value`={"key":
29
- "value"}' --url 'http://localhost:1111/v1/images/1/1'"
30
- """
26
+ """Filter by tag key-value pairs. Must be a valid JSON string."""
31
27
 
32
28
  visibility: Literal["private", "public", "shared"]
33
29
  """Image visibility. Globally visible images are public"""
@@ -2,11 +2,9 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import Optional
5
+ from typing import Dict, Optional
6
6
  from typing_extensions import Literal, Required, TypedDict
7
7
 
8
- from ..tag_update_map_param import TagUpdateMapParam
9
-
10
8
  __all__ = ["ImageUploadParams"]
11
9
 
12
10
 
@@ -51,7 +49,7 @@ class ImageUploadParams(TypedDict, total=False):
51
49
  ssh_key: Literal["allow", "deny", "required"]
52
50
  """Whether the image supports SSH key or not"""
53
51
 
54
- tags: TagUpdateMapParam
52
+ tags: Dict[str, str]
55
53
  """Key-value tags to associate with the resource.
56
54
 
57
55
  A tag is a key-value pair that can be associated with a resource, enabling
@@ -2,7 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import List, Union, Iterable, Optional
5
+ from typing import Dict, List, Union, Iterable, Optional
6
6
  from typing_extensions import Literal, Required, TypeAlias, TypedDict
7
7
 
8
8
  from .http_method import HTTPMethod
@@ -10,7 +10,6 @@ from .lb_algorithm import LbAlgorithm
10
10
  from .lb_pool_protocol import LbPoolProtocol
11
11
  from .interface_ip_family import InterfaceIPFamily
12
12
  from .lb_listener_protocol import LbListenerProtocol
13
- from .tag_update_map_param import TagUpdateMapParam
14
13
  from .lb_health_monitor_type import LbHealthMonitorType
15
14
  from .lb_session_persistence_type import LbSessionPersistenceType
16
15
  from .laas_index_retention_policy_param import LaasIndexRetentionPolicyParam
@@ -66,7 +65,7 @@ class LoadBalancerCreateParams(TypedDict, total=False):
66
65
  specification.
67
66
  """
68
67
 
69
- tags: TagUpdateMapParam
68
+ tags: Dict[str, str]
70
69
  """Key-value tags to associate with the resource.
71
70
 
72
71
  A tag is a key-value pair that can be associated with a resource, enabling
@@ -175,7 +174,12 @@ class ListenerPoolMember(TypedDict, total=False):
175
174
  """Member IP port"""
176
175
 
177
176
  admin_state_up: Optional[bool]
178
- """true if enabled. Defaults to true"""
177
+ """Administrative state of the resource.
178
+
179
+ When set to true, the resource is enabled and operational. When set to false,
180
+ the resource is disabled and will not process traffic. When null is passed, the
181
+ value is skipped and defaults to true.
182
+ """
179
183
 
180
184
  instance_id: Optional[str]
181
185
  """Either `subnet_id` or `instance_id` should be provided"""
@@ -43,11 +43,7 @@ class LoadBalancerListParams(TypedDict, total=False):
43
43
  """Filter by tag keys."""
44
44
 
45
45
  tag_key_value: str
46
- """Filter by tag key-value pairs.
47
-
48
- Must be a valid JSON string. curl -G --data-urlencode "`tag_key_value`={"key":
49
- "value"}" --url "http://localhost:1111/v1/loadbalancers/1/1"
50
- """
46
+ """Filter by tag key-value pairs. Must be a valid JSON string."""
51
47
 
52
48
  with_ddos: bool
53
49
  """Show Advanced DDoS protection profile, if exists"""
@@ -5,6 +5,7 @@ from __future__ import annotations
5
5
  from typing import Optional
6
6
  from typing_extensions import TypedDict
7
7
 
8
+ from .tag_update_map_param import TagUpdateMapParam
8
9
  from .laas_index_retention_policy_param import LaasIndexRetentionPolicyParam
9
10
  from .load_balancer_member_connectivity import LoadBalancerMemberConnectivity
10
11
 
@@ -28,6 +29,29 @@ class LoadBalancerUpdateParams(TypedDict, total=False):
28
29
  members
29
30
  """
30
31
 
32
+ tags: Optional[TagUpdateMapParam]
33
+ """Update key-value tags using JSON Merge Patch semantics (RFC 7386).
34
+
35
+ Provide key-value pairs to add or update tags. Set tag values to `null` to
36
+ remove tags. Unspecified tags remain unchanged. Read-only tags are always
37
+ preserved and cannot be modified. **Examples:**
38
+
39
+ - **Add/update tags:**
40
+ `{'tags': {'environment': 'production', 'team': 'backend'}}` adds new tags or
41
+ updates existing ones.
42
+ - **Delete tags:** `{'tags': {'`old_tag`': null}}` removes specific tags.
43
+ - **Remove all tags:** `{'tags': null}` removes all user-managed tags (read-only
44
+ tags are preserved).
45
+ - **Partial update:** `{'tags': {'environment': 'staging'}}` only updates
46
+ specified tags.
47
+ - **Mixed operations:**
48
+ `{'tags': {'environment': 'production', '`cost_center`': 'engineering', '`deprecated_tag`': null}}`
49
+ adds/updates 'environment' and '`cost_center`' while removing
50
+ '`deprecated_tag`', preserving other existing tags.
51
+ - **Replace all:** first delete existing tags with null values, then add new
52
+ ones in the same request.
53
+ """
54
+
31
55
 
32
56
  class Logging(TypedDict, total=False):
33
57
  destination_region_id: Optional[int]
@@ -105,7 +105,12 @@ class Member(TypedDict, total=False):
105
105
  """Member IP port"""
106
106
 
107
107
  admin_state_up: Optional[bool]
108
- """true if enabled. Defaults to true"""
108
+ """Administrative state of the resource.
109
+
110
+ When set to true, the resource is enabled and operational. When set to false,
111
+ the resource is disabled and will not process traffic. When null is passed, the
112
+ value is skipped and defaults to true.
113
+ """
109
114
 
110
115
  instance_id: Optional[str]
111
116
  """Either `subnet_id` or `instance_id` should be provided"""
@@ -103,7 +103,12 @@ class Member(TypedDict, total=False):
103
103
  """Member IP port"""
104
104
 
105
105
  admin_state_up: Optional[bool]
106
- """true if enabled. Defaults to true"""
106
+ """Administrative state of the resource.
107
+
108
+ When set to true, the resource is enabled and operational. When set to false,
109
+ the resource is disabled and will not process traffic. When null is passed, the
110
+ value is skipped and defaults to true.
111
+ """
107
112
 
108
113
  instance_id: Optional[str]
109
114
  """Either `subnet_id` or `instance_id` should be provided"""
@@ -22,7 +22,12 @@ class MemberAddParams(TypedDict, total=False):
22
22
  """Member IP port"""
23
23
 
24
24
  admin_state_up: Optional[bool]
25
- """true if enabled. Defaults to true"""
25
+ """Administrative state of the resource.
26
+
27
+ When set to true, the resource is enabled and operational. When set to false,
28
+ the resource is disabled and will not process traffic. When null is passed, the
29
+ value is skipped and defaults to true.
30
+ """
26
31
 
27
32
  instance_id: Optional[str]
28
33
  """Either `subnet_id` or `instance_id` should be provided"""
@@ -17,7 +17,12 @@ class Member(BaseModel):
17
17
  """Member IP address"""
18
18
 
19
19
  admin_state_up: bool
20
- """true if enabled. Defaults to true"""
20
+ """Administrative state of the resource.
21
+
22
+ When set to true, the resource is enabled and operational. When set to false,
23
+ the resource is disabled and will not process traffic. When null is passed, the
24
+ value is skipped and defaults to true.
25
+ """
21
26
 
22
27
  operating_status: LoadBalancerOperatingStatus
23
28
  """Member operating status of the entity"""
@@ -2,10 +2,9 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
+ from typing import Dict
5
6
  from typing_extensions import Literal, Required, TypedDict
6
7
 
7
- from .tag_update_map_param import TagUpdateMapParam
8
-
9
8
  __all__ = ["NetworkCreateParams"]
10
9
 
11
10
 
@@ -22,7 +21,7 @@ class NetworkCreateParams(TypedDict, total=False):
22
21
  create_router: bool
23
22
  """Defaults to True"""
24
23
 
25
- tags: TagUpdateMapParam
24
+ tags: Dict[str, str]
26
25
  """Key-value tags to associate with the resource.
27
26
 
28
27
  A tag is a key-value pair that can be associated with a resource, enabling
@@ -18,6 +18,9 @@ class NetworkListParams(TypedDict, total=False):
18
18
  limit: int
19
19
  """Optional. Limit the number of returned items"""
20
20
 
21
+ name: str
22
+ """Filter networks by name"""
23
+
21
24
  offset: int
22
25
  """Optional.
23
26
 
@@ -34,8 +37,4 @@ class NetworkListParams(TypedDict, total=False):
34
37
  """Optional. Filter by tag keys. ?`tag_key`=key1&`tag_key`=key2"""
35
38
 
36
39
  tag_key_value: str
37
- """Optional.
38
-
39
- Filter by tag key-value pairs. curl -G --data-urlencode "`tag_key_value`={"key":
40
- "value"}" --url "https://example.com/cloud/v1/resource/1/1"
41
- """
40
+ """Optional. Filter by tag key-value pairs."""