gcore 0.16.0__py3-none-any.whl → 0.23.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 (220) hide show
  1. gcore/_client.py +16 -0
  2. gcore/_models.py +37 -15
  3. gcore/_streaming.py +12 -12
  4. gcore/_utils/_sync.py +3 -31
  5. gcore/_utils/_utils.py +1 -1
  6. gcore/_version.py +1 -1
  7. gcore/resources/cdn/audit_log.py +4 -4
  8. gcore/resources/cdn/cdn.py +120 -21
  9. gcore/resources/cdn/ip_ranges.py +97 -5
  10. gcore/resources/cdn/{logs/logs.py → logs.py} +9 -9
  11. gcore/resources/cdn/resources/resources.py +20 -20
  12. gcore/resources/cdn/statistics.py +56 -58
  13. gcore/resources/cloud/__init__.py +40 -12
  14. gcore/resources/cloud/audit_logs.py +20 -0
  15. gcore/resources/cloud/baremetal/servers.py +48 -14
  16. gcore/resources/cloud/billing_reservations.py +2 -2
  17. gcore/resources/cloud/cloud.py +100 -18
  18. gcore/resources/cloud/databases/__init__.py +33 -0
  19. gcore/resources/cloud/databases/databases.py +102 -0
  20. gcore/resources/cloud/databases/postgres/__init__.py +61 -0
  21. gcore/resources/cloud/databases/postgres/clusters/__init__.py +33 -0
  22. gcore/resources/cloud/databases/postgres/clusters/clusters.py +716 -0
  23. gcore/resources/cloud/databases/postgres/clusters/user_credentials.py +281 -0
  24. gcore/resources/cloud/databases/postgres/configurations.py +169 -0
  25. gcore/resources/cloud/databases/postgres/custom_configurations.py +197 -0
  26. gcore/resources/cloud/databases/postgres/postgres.py +166 -0
  27. gcore/resources/cloud/file_shares/file_shares.py +154 -49
  28. gcore/resources/cloud/floating_ips.py +42 -10
  29. gcore/resources/cloud/gpu_baremetal_clusters/gpu_baremetal_clusters.py +70 -10
  30. gcore/resources/cloud/gpu_baremetal_clusters/images.py +40 -6
  31. gcore/resources/cloud/gpu_baremetal_clusters/servers.py +16 -0
  32. gcore/resources/cloud/gpu_virtual_clusters/__init__.py +89 -0
  33. gcore/resources/cloud/gpu_virtual_clusters/flavors.py +211 -0
  34. gcore/resources/cloud/gpu_virtual_clusters/gpu_virtual_clusters.py +1551 -0
  35. gcore/resources/cloud/gpu_virtual_clusters/images.py +582 -0
  36. gcore/resources/cloud/gpu_virtual_clusters/interfaces.py +187 -0
  37. gcore/resources/cloud/gpu_virtual_clusters/servers.py +506 -0
  38. gcore/resources/cloud/gpu_virtual_clusters/volumes.py +187 -0
  39. gcore/resources/cloud/inference/deployments/deployments.py +52 -4
  40. gcore/resources/cloud/instances/images.py +72 -18
  41. gcore/resources/cloud/instances/instances.py +110 -18
  42. gcore/resources/cloud/instances/interfaces.py +12 -0
  43. gcore/resources/cloud/k8s/__init__.py +12 -12
  44. gcore/resources/cloud/k8s/clusters/clusters.py +25 -25
  45. gcore/resources/cloud/k8s/clusters/pools/pools.py +14 -14
  46. gcore/resources/cloud/k8s/k8s.py +24 -24
  47. gcore/resources/cloud/load_balancers/l7_policies/l7_policies.py +1420 -218
  48. gcore/resources/cloud/load_balancers/l7_policies/rules.py +134 -22
  49. gcore/resources/cloud/load_balancers/listeners.py +77 -6
  50. gcore/resources/cloud/load_balancers/load_balancers.py +92 -14
  51. gcore/resources/cloud/load_balancers/pools/pools.py +52 -4
  52. gcore/resources/cloud/networks/networks.py +30 -10
  53. gcore/resources/cloud/networks/subnets.py +26 -10
  54. gcore/resources/cloud/placement_groups.py +8 -0
  55. gcore/resources/cloud/projects.py +99 -119
  56. gcore/resources/cloud/quotas/requests.py +0 -8
  57. gcore/resources/cloud/reserved_fixed_ips/reserved_fixed_ips.py +18 -0
  58. gcore/resources/cloud/secrets.py +16 -0
  59. gcore/resources/cloud/security_groups/security_groups.py +38 -12
  60. gcore/resources/cloud/ssh_keys.py +10 -0
  61. gcore/resources/cloud/tasks.py +22 -7
  62. gcore/resources/cloud/volumes.py +65 -23
  63. gcore/resources/dns/zones/rrsets.py +10 -10
  64. gcore/resources/dns/zones/zones.py +2 -2
  65. gcore/resources/security/bgp_announces.py +0 -4
  66. gcore/resources/security/profiles.py +31 -7
  67. gcore/resources/storage/credentials.py +0 -28
  68. gcore/resources/storage/storage.py +2 -2
  69. gcore/types/cdn/__init__.py +5 -0
  70. gcore/types/cdn/alibaba_regions.py +22 -0
  71. gcore/types/cdn/audit_log_list_params.py +2 -2
  72. gcore/types/cdn/aws_regions.py +22 -0
  73. gcore/types/cdn/cdn_list_purge_statuses_response.py +10 -0
  74. gcore/types/cdn/cdn_resource.py +17 -12
  75. gcore/types/cdn/ip_range_list_ips_params.py +19 -0
  76. gcore/types/cdn/ip_range_list_params.py +19 -0
  77. gcore/types/cdn/resource_create_params.py +17 -12
  78. gcore/types/cdn/resource_purge_params.py +4 -4
  79. gcore/types/cdn/resource_replace_params.py +17 -12
  80. gcore/types/cdn/resource_update_params.py +17 -12
  81. gcore/types/cdn/resource_usage_stats.py +16 -15
  82. gcore/types/cdn/resources/cdn_resource_rule.py +15 -10
  83. gcore/types/cdn/resources/rule_create_params.py +15 -10
  84. gcore/types/cdn/resources/rule_replace_params.py +15 -10
  85. gcore/types/cdn/resources/rule_update_params.py +15 -10
  86. gcore/types/cdn/rule_template.py +15 -10
  87. gcore/types/cdn/rule_template_create_params.py +15 -10
  88. gcore/types/cdn/rule_template_replace_params.py +15 -10
  89. gcore/types/cdn/rule_template_update_params.py +15 -10
  90. gcore/types/cdn/statistic_get_logs_usage_aggregated_params.py +4 -1
  91. gcore/types/cdn/statistic_get_logs_usage_series_params.py +5 -12
  92. gcore/types/cdn/statistic_get_resource_usage_aggregated_params.py +10 -21
  93. gcore/types/cdn/statistic_get_resource_usage_series_params.py +6 -1
  94. gcore/types/cdn/statistic_get_shield_usage_aggregated_params.py +5 -2
  95. gcore/types/cdn/statistic_get_shield_usage_series_params.py +3 -0
  96. gcore/types/cloud/__init__.py +9 -3
  97. gcore/types/cloud/audit_log_entry.py +9 -3
  98. gcore/types/cloud/audit_log_list_params.py +12 -0
  99. gcore/types/cloud/baremetal/server_create_params.py +7 -7
  100. gcore/types/cloud/baremetal_flavor.py +0 -6
  101. gcore/types/cloud/billing_reservation_list_params.py +1 -1
  102. gcore/types/cloud/blackhole_port.py +4 -1
  103. gcore/types/cloud/databases/postgres/__init__.py +12 -0
  104. gcore/types/cloud/databases/postgres/cluster_create_params.py +108 -0
  105. gcore/types/cloud/databases/postgres/cluster_list_params.py +19 -0
  106. gcore/types/cloud/databases/postgres/cluster_update_params.py +102 -0
  107. gcore/types/cloud/databases/postgres/clusters/__init__.py +5 -0
  108. gcore/types/cloud/databases/postgres/clusters/postgres_user_credentials.py +13 -0
  109. gcore/types/cloud/databases/postgres/custom_configuration_validate_params.py +19 -0
  110. gcore/types/cloud/databases/postgres/pg_conf_validation.py +15 -0
  111. gcore/types/cloud/databases/postgres/postgres_cluster.py +118 -0
  112. gcore/types/cloud/databases/postgres/postgres_cluster_short.py +22 -0
  113. gcore/types/cloud/databases/postgres/postgres_configuration.py +31 -0
  114. gcore/types/cloud/file_share_create_params.py +8 -8
  115. gcore/types/cloud/file_share_update_params.py +7 -2
  116. gcore/types/cloud/floating_ip.py +5 -1
  117. gcore/types/cloud/floating_ip_create_params.py +4 -4
  118. gcore/types/cloud/floating_ip_detailed.py +5 -1
  119. gcore/types/cloud/floating_ip_list_params.py +8 -0
  120. gcore/types/cloud/floating_ip_update_params.py +7 -2
  121. gcore/types/cloud/gpu_baremetal_cluster.py +18 -3
  122. gcore/types/cloud/gpu_baremetal_cluster_action_params.py +7 -2
  123. gcore/types/cloud/gpu_baremetal_cluster_create_params.py +16 -4
  124. gcore/types/cloud/gpu_baremetal_clusters/gpu_baremetal_cluster_server.py +5 -2
  125. gcore/types/cloud/gpu_baremetal_clusters/image_upload_params.py +4 -4
  126. gcore/types/cloud/gpu_image.py +9 -0
  127. gcore/types/cloud/gpu_virtual_cluster.py +189 -0
  128. gcore/types/cloud/gpu_virtual_cluster_action_params.py +127 -0
  129. gcore/types/cloud/gpu_virtual_cluster_create_params.py +213 -0
  130. gcore/types/cloud/gpu_virtual_cluster_delete_params.py +41 -0
  131. gcore/types/cloud/gpu_virtual_cluster_list_params.py +21 -0
  132. gcore/types/cloud/gpu_virtual_cluster_update_params.py +18 -0
  133. gcore/types/cloud/gpu_virtual_clusters/__init__.py +16 -0
  134. gcore/types/cloud/gpu_virtual_clusters/flavor_list_params.py +21 -0
  135. gcore/types/cloud/gpu_virtual_clusters/gpu_virtual_cluster_server.py +77 -0
  136. gcore/types/cloud/gpu_virtual_clusters/gpu_virtual_cluster_server_list.py +16 -0
  137. gcore/types/cloud/gpu_virtual_clusters/gpu_virtual_cluster_volume.py +64 -0
  138. gcore/types/cloud/gpu_virtual_clusters/gpu_virtual_cluster_volume_list.py +16 -0
  139. gcore/types/cloud/gpu_virtual_clusters/gpu_virtual_flavor.py +155 -0
  140. gcore/types/cloud/gpu_virtual_clusters/gpu_virtual_flavor_list.py +16 -0
  141. gcore/types/cloud/gpu_virtual_clusters/gpu_virtual_interface.py +190 -0
  142. gcore/types/cloud/gpu_virtual_clusters/gpu_virtual_interface_list.py +16 -0
  143. gcore/types/cloud/gpu_virtual_clusters/image_upload_params.py +56 -0
  144. gcore/types/cloud/gpu_virtual_clusters/server_delete_params.py +44 -0
  145. gcore/types/cloud/gpu_virtual_clusters/server_list_params.py +75 -0
  146. gcore/types/cloud/image.py +9 -0
  147. gcore/types/cloud/inference/deployment_create_params.py +1 -1
  148. gcore/types/cloud/inference/deployment_update_params.py +1 -1
  149. gcore/types/cloud/inference/inference_deployment.py +1 -1
  150. gcore/types/cloud/instance_create_params.py +27 -27
  151. gcore/types/cloud/instance_update_params.py +7 -2
  152. gcore/types/cloud/instances/image_create_from_volume_params.py +4 -4
  153. gcore/types/cloud/instances/image_update_params.py +4 -4
  154. gcore/types/cloud/instances/image_upload_params.py +4 -4
  155. gcore/types/cloud/k8s/__init__.py +4 -4
  156. gcore/types/cloud/k8s/cluster_update_params.py +5 -5
  157. gcore/types/cloud/k8s/clusters/__init__.py +2 -2
  158. gcore/types/cloud/k8s/clusters/k8s_cluster_pool.py +2 -2
  159. gcore/types/cloud/k8s/clusters/k8s_cluster_pool_list.py +4 -4
  160. gcore/types/cloud/k8s/k8s_cluster.py +4 -4
  161. gcore/types/cloud/k8s/k8s_cluster_certificate.py +2 -2
  162. gcore/types/cloud/k8s/k8s_cluster_kubeconfig.py +14 -2
  163. gcore/types/cloud/k8s/k8s_cluster_list.py +4 -4
  164. gcore/types/cloud/k8s_cluster_version.py +2 -2
  165. gcore/types/cloud/k8s_cluster_version_list.py +4 -4
  166. gcore/types/cloud/load_balancer_create_params.py +14 -8
  167. gcore/types/cloud/load_balancer_flavor_detail.py +2 -2
  168. gcore/types/cloud/load_balancer_l7_policy.py +29 -16
  169. gcore/types/cloud/load_balancer_l7_policy_list.py +3 -3
  170. gcore/types/cloud/load_balancer_l7_rule.py +14 -23
  171. gcore/types/cloud/load_balancer_l7_rule_list.py +3 -3
  172. gcore/types/cloud/load_balancer_listener_detail.py +2 -2
  173. gcore/types/cloud/load_balancer_update_params.py +7 -2
  174. gcore/types/cloud/load_balancers/__init__.py +1 -0
  175. gcore/types/cloud/load_balancers/l7_policies/rule_create_params.py +5 -10
  176. gcore/types/cloud/load_balancers/l7_policies/rule_replace_params.py +7 -11
  177. gcore/types/cloud/load_balancers/l7_policy_create_params.py +102 -18
  178. gcore/types/cloud/load_balancers/l7_policy_replace_params.py +94 -16
  179. gcore/types/cloud/load_balancers/listener_create_params.py +4 -1
  180. gcore/types/cloud/load_balancers/listener_delete_params.py +18 -0
  181. gcore/types/cloud/load_balancers/listener_update_params.py +4 -1
  182. gcore/types/cloud/load_balancers/pool_create_params.py +1 -1
  183. gcore/types/cloud/network_create_params.py +4 -4
  184. gcore/types/cloud/network_update_params.py +7 -2
  185. gcore/types/cloud/networks/subnet_create_params.py +4 -4
  186. gcore/types/cloud/networks/subnet_update_params.py +7 -2
  187. gcore/types/cloud/project_create_params.py +0 -6
  188. gcore/types/cloud/{project_replace_params.py → project_update_params.py} +2 -2
  189. gcore/types/cloud/quotas/request_create_params.py +0 -3
  190. gcore/types/cloud/region.py +3 -3
  191. gcore/types/cloud/security_group.py +8 -1
  192. gcore/types/cloud/security_group_create_params.py +7 -5
  193. gcore/types/cloud/security_group_list_params.py +6 -4
  194. gcore/types/cloud/security_group_update_params.py +7 -2
  195. gcore/types/cloud/ssh_key_list_params.py +7 -0
  196. gcore/types/cloud/tag.py +2 -2
  197. gcore/types/cloud/task_id_list.py +3 -3
  198. gcore/types/cloud/volume_create_params.py +12 -12
  199. gcore/types/cloud/volume_update_params.py +7 -2
  200. gcore/types/dns/zone_list_params.py +1 -1
  201. gcore/types/iam/api_token_create.py +70 -1
  202. gcore/types/security/bgp_announce_list_params.py +0 -2
  203. gcore/types/security/client_profile.py +1 -0
  204. gcore/types/security/profile_create_params.py +4 -2
  205. gcore/types/security/profile_recreate_params.py +4 -2
  206. gcore/types/security/profile_replace_params.py +4 -2
  207. gcore/types/storage/credential_recreate_params.py +0 -17
  208. gcore/types/storage/storage.py +1 -1
  209. gcore/types/storage/storage_create_params.py +1 -1
  210. gcore/types/streaming/stream.py +3 -2
  211. gcore/types/streaming/video.py +1 -1
  212. gcore/types/waap/domains/custom_rule_create_params.py +1 -1
  213. gcore/types/waap/domains/custom_rule_update_params.py +1 -1
  214. gcore/types/waap/domains/waap_custom_rule.py +1 -1
  215. {gcore-0.16.0.dist-info → gcore-0.23.0.dist-info}/METADATA +14 -14
  216. {gcore-0.16.0.dist-info → gcore-0.23.0.dist-info}/RECORD +219 -168
  217. gcore/resources/cdn/logs/__init__.py +0 -19
  218. /gcore/types/{cdn/logs → cloud/databases}/__init__.py +0 -0
  219. {gcore-0.16.0.dist-info → gcore-0.23.0.dist-info}/WHEEL +0 -0
  220. {gcore-0.16.0.dist-info → gcore-0.23.0.dist-info}/licenses/LICENSE +0 -0
@@ -45,7 +45,7 @@ class PoolCreateParams(TypedDict, total=False):
45
45
  load_balancer_id: Optional[str]
46
46
  """Loadbalancer ID"""
47
47
 
48
- members: Optional[Iterable[Member]]
48
+ members: Iterable[Member]
49
49
  """Pool members"""
50
50
 
51
51
  secret_id: Optional[str]
@@ -25,10 +25,10 @@ class NetworkCreateParams(TypedDict, total=False):
25
25
  """Key-value tags to associate with the resource.
26
26
 
27
27
  A tag is a key-value pair that can be associated with a resource, enabling
28
- efficient filtering and grouping for better organization and management. Some
29
- tags are read-only and cannot be modified by the user. Tags are also integrated
30
- with cost reports, allowing cost data to be filtered based on tag keys or
31
- values.
28
+ efficient filtering and grouping for better organization and management. Both
29
+ tag keys and values have a maximum length of 255 characters. Some tags are
30
+ read-only and cannot be modified by the user. Tags are also integrated with cost
31
+ reports, allowing cost data to be filtered based on tag keys or values.
32
32
  """
33
33
 
34
34
  type: Literal["vlan", "vxlan"]
@@ -32,15 +32,20 @@ class NetworkUpdateParams(TypedDict, total=False):
32
32
  - **Add/update tags:**
33
33
  `{'tags': {'environment': 'production', 'team': 'backend'}}` adds new tags or
34
34
  updates existing ones.
35
- - **Delete tags:** `{'tags': {'`old_tag`': null}}` removes specific tags.
35
+
36
+ - **Delete tags:** `{'tags': {'old_tag': null}}` removes specific tags.
37
+
36
38
  - **Remove all tags:** `{'tags': null}` removes all user-managed tags (read-only
37
39
  tags are preserved).
40
+
38
41
  - **Partial update:** `{'tags': {'environment': 'staging'}}` only updates
39
42
  specified tags.
43
+
40
44
  - **Mixed operations:**
41
- `{'tags': {'environment': 'production', '`cost_center`': 'engineering', '`deprecated_tag`': null}}`
45
+ `{'tags': {'environment': 'production', 'cost_center': 'engineering', 'deprecated_tag': null}}`
42
46
  adds/updates 'environment' and '`cost_center`' while removing
43
47
  '`deprecated_tag`', preserving other existing tags.
48
+
44
49
  - **Replace all:** first delete existing tags with null values, then add new
45
50
  ones in the same request.
46
51
  """
@@ -64,10 +64,10 @@ class SubnetCreateParams(TypedDict, total=False):
64
64
  """Key-value tags to associate with the resource.
65
65
 
66
66
  A tag is a key-value pair that can be associated with a resource, enabling
67
- efficient filtering and grouping for better organization and management. Some
68
- tags are read-only and cannot be modified by the user. Tags are also integrated
69
- with cost reports, allowing cost data to be filtered based on tag keys or
70
- values.
67
+ efficient filtering and grouping for better organization and management. Both
68
+ tag keys and values have a maximum length of 255 characters. Some tags are
69
+ read-only and cannot be modified by the user. Tags are also integrated with cost
70
+ reports, allowing cost data to be filtered based on tag keys or values.
71
71
  """
72
72
 
73
73
 
@@ -50,15 +50,20 @@ class SubnetUpdateParams(TypedDict, total=False):
50
50
  - **Add/update tags:**
51
51
  `{'tags': {'environment': 'production', 'team': 'backend'}}` adds new tags or
52
52
  updates existing ones.
53
- - **Delete tags:** `{'tags': {'`old_tag`': null}}` removes specific tags.
53
+
54
+ - **Delete tags:** `{'tags': {'old_tag': null}}` removes specific tags.
55
+
54
56
  - **Remove all tags:** `{'tags': null}` removes all user-managed tags (read-only
55
57
  tags are preserved).
58
+
56
59
  - **Partial update:** `{'tags': {'environment': 'staging'}}` only updates
57
60
  specified tags.
61
+
58
62
  - **Mixed operations:**
59
- `{'tags': {'environment': 'production', '`cost_center`': 'engineering', '`deprecated_tag`': null}}`
63
+ `{'tags': {'environment': 'production', 'cost_center': 'engineering', 'deprecated_tag': null}}`
60
64
  adds/updates 'environment' and '`cost_center`' while removing
61
65
  '`deprecated_tag`', preserving other existing tags.
66
+
62
67
  - **Replace all:** first delete existing tags with null values, then add new
63
68
  ones in the same request.
64
69
  """
@@ -12,11 +12,5 @@ class ProjectCreateParams(TypedDict, total=False):
12
12
  name: Required[str]
13
13
  """Unique project name for a client. Each client always has one "default" project."""
14
14
 
15
- client_id: Optional[int]
16
- """ID associated with the client."""
17
-
18
15
  description: Optional[str]
19
16
  """Description of the project."""
20
-
21
- state: Optional[str]
22
- """State of the project."""
@@ -5,10 +5,10 @@ from __future__ import annotations
5
5
  from typing import Optional
6
6
  from typing_extensions import Required, TypedDict
7
7
 
8
- __all__ = ["ProjectReplaceParams"]
8
+ __all__ = ["ProjectUpdateParams"]
9
9
 
10
10
 
11
- class ProjectReplaceParams(TypedDict, total=False):
11
+ class ProjectUpdateParams(TypedDict, total=False):
12
12
  project_id: int
13
13
 
14
14
  name: Required[str]
@@ -15,9 +15,6 @@ class RequestCreateParams(TypedDict, total=False):
15
15
  requested_limits: Required[RequestedLimits]
16
16
  """Limits you want to increase."""
17
17
 
18
- client_id: int
19
- """Client ID that requests the limit increase."""
20
-
21
18
 
22
19
  class RequestedLimitsGlobalLimits(TypedDict, total=False):
23
20
  inference_cpu_millicore_count_limit: int
@@ -1,6 +1,6 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
- from typing import List, Optional
3
+ from typing import List, Union, Optional
4
4
  from datetime import datetime
5
5
  from typing_extensions import Literal
6
6
 
@@ -10,9 +10,9 @@ __all__ = ["Region", "Coordinates"]
10
10
 
11
11
 
12
12
  class Coordinates(BaseModel):
13
- latitude: float
13
+ latitude: Union[float, str]
14
14
 
15
- longitude: float
15
+ longitude: Union[float, str]
16
16
 
17
17
 
18
18
  class Region(BaseModel):
@@ -33,7 +33,14 @@ class SecurityGroup(BaseModel):
33
33
  """The number of revisions"""
34
34
 
35
35
  tags_v2: List[Tag]
36
- """Tags for a security group"""
36
+ """List of key-value tags associated with the resource.
37
+
38
+ A tag is a key-value pair that can be associated with a resource, enabling
39
+ efficient filtering and grouping for better organization and management. Some
40
+ tags are read-only and cannot be modified by the user. Tags are also integrated
41
+ with cost reports, allowing cost data to be filtered based on tag keys or
42
+ values.
43
+ """
37
44
 
38
45
  updated_at: datetime
39
46
  """Datetime when the security group was last updated"""
@@ -12,8 +12,10 @@ __all__ = ["SecurityGroupCreateParams", "SecurityGroup", "SecurityGroupSecurityG
12
12
 
13
13
  class SecurityGroupCreateParams(TypedDict, total=False):
14
14
  project_id: int
15
+ """Project ID"""
15
16
 
16
17
  region_id: int
18
+ """Region ID"""
17
19
 
18
20
  security_group: Required[SecurityGroup]
19
21
  """Security group"""
@@ -85,12 +87,12 @@ class SecurityGroup(TypedDict, total=False):
85
87
  security_group_rules: Iterable[SecurityGroupSecurityGroupRule]
86
88
  """Security group rules"""
87
89
 
88
- tags: Dict[str, object]
90
+ tags: Dict[str, str]
89
91
  """Key-value tags to associate with the resource.
90
92
 
91
93
  A tag is a key-value pair that can be associated with a resource, enabling
92
- efficient filtering and grouping for better organization and management. Some
93
- tags are read-only and cannot be modified by the user. Tags are also integrated
94
- with cost reports, allowing cost data to be filtered based on tag keys or
95
- values.
94
+ efficient filtering and grouping for better organization and management. Both
95
+ tag keys and values have a maximum length of 255 characters. Some tags are
96
+ read-only and cannot be modified by the user. Tags are also integrated with cost
97
+ reports, allowing cost data to be filtered based on tag keys or values.
96
98
  """
@@ -11,17 +11,19 @@ __all__ = ["SecurityGroupListParams"]
11
11
 
12
12
  class SecurityGroupListParams(TypedDict, total=False):
13
13
  project_id: int
14
+ """Project ID"""
14
15
 
15
16
  region_id: int
17
+ """Region ID"""
16
18
 
17
19
  limit: int
18
- """Limit the number of returned security groups"""
20
+ """Limit of items on a single page"""
19
21
 
20
22
  offset: int
21
- """Offset value is used to exclude the first set of records from the result"""
23
+ """Offset in results list"""
22
24
 
23
25
  tag_key: SequenceNotStr[str]
24
- """Filter by tag keys."""
26
+ """Optional. Filter by tag keys."""
25
27
 
26
28
  tag_key_value: str
27
- """Filter by tag key-value pairs. Must be a valid JSON string."""
29
+ """Optional. Filter by tag key-value pairs. Must be a valid JSON string."""
@@ -33,15 +33,20 @@ class SecurityGroupUpdateParams(TypedDict, total=False):
33
33
  - **Add/update tags:**
34
34
  `{'tags': {'environment': 'production', 'team': 'backend'}}` adds new tags or
35
35
  updates existing ones.
36
- - **Delete tags:** `{'tags': {'`old_tag`': null}}` removes specific tags.
36
+
37
+ - **Delete tags:** `{'tags': {'old_tag': null}}` removes specific tags.
38
+
37
39
  - **Remove all tags:** `{'tags': null}` removes all user-managed tags (read-only
38
40
  tags are preserved).
41
+
39
42
  - **Partial update:** `{'tags': {'environment': 'staging'}}` only updates
40
43
  specified tags.
44
+
41
45
  - **Mixed operations:**
42
- `{'tags': {'environment': 'production', '`cost_center`': 'engineering', '`deprecated_tag`': null}}`
46
+ `{'tags': {'environment': 'production', 'cost_center': 'engineering', 'deprecated_tag': null}}`
43
47
  adds/updates 'environment' and '`cost_center`' while removing
44
48
  '`deprecated_tag`', preserving other existing tags.
49
+
45
50
  - **Replace all:** first delete existing tags with null values, then add new
46
51
  ones in the same request.
47
52
  """
@@ -14,6 +14,13 @@ class SSHKeyListParams(TypedDict, total=False):
14
14
  limit: int
15
15
  """Maximum number of SSH keys to return"""
16
16
 
17
+ name: str
18
+ """SSH key name.
19
+
20
+ Partial substring match. Example: `name=abc` matches any key containing `abc` in
21
+ name.
22
+ """
23
+
17
24
  offset: int
18
25
  """Offset for pagination"""
19
26
 
gcore/types/cloud/tag.py CHANGED
@@ -7,10 +7,10 @@ __all__ = ["Tag"]
7
7
 
8
8
  class Tag(BaseModel):
9
9
  key: str
10
- """Tag key. The maximum size for a key is 255 bytes."""
10
+ """Tag key. The maximum size for a key is 255 characters."""
11
11
 
12
12
  read_only: bool
13
13
  """If true, the tag is read-only and cannot be modified by the user"""
14
14
 
15
15
  value: str
16
- """Tag value. The maximum size for a value is 1024 bytes."""
16
+ """Tag value. The maximum size for a value is 255 characters."""
@@ -13,7 +13,7 @@ class TaskIDList(BaseModel):
13
13
 
14
14
  Use these IDs to monitor operation progress:
15
15
 
16
- - `GET /v1/tasks/{`task_id`}` - Check individual task status and details Poll
17
- task status until completion (`FINISHED`/`ERROR`) before proceeding with
18
- dependent operations.
16
+ - `GET /v1/tasks/{task_id}` - Check individual task status and details Poll task
17
+ status until completion (`FINISHED`/`ERROR`) before proceeding with dependent
18
+ operations.
19
19
  """
@@ -53,10 +53,10 @@ class CreateVolumeFromImageSerializer(TypedDict, total=False):
53
53
  """Key-value tags to associate with the resource.
54
54
 
55
55
  A tag is a key-value pair that can be associated with a resource, enabling
56
- efficient filtering and grouping for better organization and management. Some
57
- tags are read-only and cannot be modified by the user. Tags are also integrated
58
- with cost reports, allowing cost data to be filtered based on tag keys or
59
- values.
56
+ efficient filtering and grouping for better organization and management. Both
57
+ tag keys and values have a maximum length of 255 characters. Some tags are
58
+ read-only and cannot be modified by the user. Tags are also integrated with cost
59
+ reports, allowing cost data to be filtered based on tag keys or values.
60
60
  """
61
61
 
62
62
  type_name: Literal["cold", "ssd_hiiops", "ssd_local", "ssd_lowlatency", "standard", "ultra"]
@@ -108,10 +108,10 @@ class CreateVolumeFromSnapshotSerializer(TypedDict, total=False):
108
108
  """Key-value tags to associate with the resource.
109
109
 
110
110
  A tag is a key-value pair that can be associated with a resource, enabling
111
- efficient filtering and grouping for better organization and management. Some
112
- tags are read-only and cannot be modified by the user. Tags are also integrated
113
- with cost reports, allowing cost data to be filtered based on tag keys or
114
- values.
111
+ efficient filtering and grouping for better organization and management. Both
112
+ tag keys and values have a maximum length of 255 characters. Some tags are
113
+ read-only and cannot be modified by the user. Tags are also integrated with cost
114
+ reports, allowing cost data to be filtered based on tag keys or values.
115
115
  """
116
116
 
117
117
  type_name: Literal["cold", "ssd_hiiops", "ssd_local", "ssd_lowlatency", "standard", "ultra"]
@@ -157,10 +157,10 @@ class CreateNewVolumeSerializer(TypedDict, total=False):
157
157
  """Key-value tags to associate with the resource.
158
158
 
159
159
  A tag is a key-value pair that can be associated with a resource, enabling
160
- efficient filtering and grouping for better organization and management. Some
161
- tags are read-only and cannot be modified by the user. Tags are also integrated
162
- with cost reports, allowing cost data to be filtered based on tag keys or
163
- values.
160
+ efficient filtering and grouping for better organization and management. Both
161
+ tag keys and values have a maximum length of 255 characters. Some tags are
162
+ read-only and cannot be modified by the user. Tags are also integrated with cost
163
+ reports, allowing cost data to be filtered based on tag keys or values.
164
164
  """
165
165
 
166
166
  type_name: Literal["cold", "ssd_hiiops", "ssd_local", "ssd_lowlatency", "standard", "ultra"]
@@ -32,15 +32,20 @@ class VolumeUpdateParams(TypedDict, total=False):
32
32
  - **Add/update tags:**
33
33
  `{'tags': {'environment': 'production', 'team': 'backend'}}` adds new tags or
34
34
  updates existing ones.
35
- - **Delete tags:** `{'tags': {'`old_tag`': null}}` removes specific tags.
35
+
36
+ - **Delete tags:** `{'tags': {'old_tag': null}}` removes specific tags.
37
+
36
38
  - **Remove all tags:** `{'tags': null}` removes all user-managed tags (read-only
37
39
  tags are preserved).
40
+
38
41
  - **Partial update:** `{'tags': {'environment': 'staging'}}` only updates
39
42
  specified tags.
43
+
40
44
  - **Mixed operations:**
41
- `{'tags': {'environment': 'production', '`cost_center`': 'engineering', '`deprecated_tag`': null}}`
45
+ `{'tags': {'environment': 'production', 'cost_center': 'engineering', 'deprecated_tag': null}}`
42
46
  adds/updates 'environment' and '`cost_center`' while removing
43
47
  '`deprecated_tag`', preserving other existing tags.
48
+
44
49
  - **Replace all:** first delete existing tags with null values, then add new
45
50
  ones in the same request.
46
51
  """
@@ -19,7 +19,7 @@ class ZoneListParams(TypedDict, total=False):
19
19
  case_sensitive: bool
20
20
 
21
21
  client_id: Iterable[int]
22
- """to pass several `client_ids` `client_id=1&`client_id`=3&`client_id`=5...`"""
22
+ """to pass several `client_ids` `client_id=1&client_id=3&client_id=5...`"""
23
23
 
24
24
  dynamic: bool
25
25
  """Zones with dynamic RRsets"""
@@ -1,15 +1,84 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  from typing import Optional
4
+ from typing_extensions import Literal
4
5
 
5
6
  from ..._models import BaseModel
6
7
 
7
- __all__ = ["APITokenCreate"]
8
+ __all__ = ["APITokenCreate", "ClientUser", "ClientUserRole"]
9
+
10
+
11
+ class ClientUserRole(BaseModel):
12
+ id: Optional[int] = None
13
+ """Group's ID: Possible values are:
14
+
15
+ - 1 - Administrators* 2 - Users* 5 - Engineers* 3009 - Purge and Prefetch only
16
+ (API+Web)* 3022 - Purge and Prefetch only (API)
17
+ """
18
+
19
+ name: Optional[
20
+ Literal[
21
+ "Users", "Administrators", "Engineers", "Purge and Prefetch only (API)", "Purge and Prefetch only (API+Web)"
22
+ ]
23
+ ] = None
24
+ """Group's name."""
25
+
26
+
27
+ class ClientUser(BaseModel):
28
+ client_id: int
29
+ """Account's ID."""
30
+
31
+ deleted: bool
32
+ """Deletion flag. If true, then the API token was deleted."""
33
+
34
+ role: ClientUserRole
35
+
36
+ user_email: str
37
+ """User's email who issued the API token."""
38
+
39
+ user_id: int
40
+ """User's ID who issued the API token."""
41
+
42
+ user_name: str
43
+ """User's name who issued the API token."""
8
44
 
9
45
 
10
46
  class APITokenCreate(BaseModel):
47
+ id: int
48
+ """API token ID."""
49
+
50
+ client_user: ClientUser
51
+
52
+ created: str
53
+ """Date when the API token was issued (ISO 8086/RFC 3339 format), UTC."""
54
+
55
+ deleted: bool
56
+ """Deletion flag. If true, then the API token was deleted."""
57
+
58
+ exp_date: Optional[str] = None
59
+ """
60
+ Date when the API token becomes expired (ISO 8086/RFC 3339 format), UTC. If
61
+ null, then the API token will never expire.
62
+ """
63
+
64
+ expired: bool
65
+ """Expiration flag.
66
+
67
+ If true, then the API token has expired. When an API token expires it will be
68
+ automatically deleted.
69
+ """
70
+
71
+ last_usage: str
72
+ """Date when the API token was last used (ISO 8086/RFC 3339 format), UTC."""
73
+
74
+ name: str
75
+ """API token name."""
76
+
11
77
  token: Optional[str] = None
12
78
  """
13
79
  API token. Copy it, because you will not be able to get it again. We do not
14
80
  store tokens. All responsibility for token storage and usage is on the issuer.
15
81
  """
82
+
83
+ description: Optional[str] = None
84
+ """API token description."""
@@ -11,8 +11,6 @@ __all__ = ["BgpAnnounceListParams"]
11
11
  class BgpAnnounceListParams(TypedDict, total=False):
12
12
  announced: Optional[bool]
13
13
 
14
- client_id: Optional[int]
15
-
16
14
  origin: Optional[Literal["STATIC", "DYNAMIC"]]
17
15
 
18
16
  site: Optional[str]
@@ -50,6 +50,7 @@ class ClientProfile(BaseModel):
50
50
  protocols: List[Dict[str, object]]
51
51
 
52
52
  site: str
53
+ """Region where the protection profiles will be deployed"""
53
54
 
54
55
  status: Dict[str, object]
55
56
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import Iterable, Optional
5
+ from typing import Iterable
6
6
  from typing_extensions import Required, TypedDict
7
7
 
8
8
  __all__ = ["ProfileCreateParams", "Field"]
@@ -14,8 +14,10 @@ class ProfileCreateParams(TypedDict, total=False):
14
14
  profile_template: Required[int]
15
15
 
16
16
  site: Required[str]
17
+ """Region where the protection profiles will be deployed"""
17
18
 
18
- ip_address: Optional[str]
19
+ ip_address: str
20
+ """Required for Universal template only. Optional for all others."""
19
21
 
20
22
 
21
23
  class Field(TypedDict, total=False):
@@ -2,7 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import Iterable, Optional
5
+ from typing import Iterable
6
6
  from typing_extensions import Required, TypedDict
7
7
 
8
8
  __all__ = ["ProfileRecreateParams", "Field"]
@@ -13,9 +13,11 @@ class ProfileRecreateParams(TypedDict, total=False):
13
13
 
14
14
  profile_template: Required[int]
15
15
 
16
- ip_address: Optional[str]
16
+ ip_address: str
17
+ """Required for Universal template only. Optional for all others."""
17
18
 
18
19
  site: str
20
+ """Region where the protection profiles will be deployed"""
19
21
 
20
22
 
21
23
  class Field(TypedDict, total=False):
@@ -2,7 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import Iterable, Optional
5
+ from typing import Iterable
6
6
  from typing_extensions import Required, TypedDict
7
7
 
8
8
  __all__ = ["ProfileReplaceParams", "Field"]
@@ -13,9 +13,11 @@ class ProfileReplaceParams(TypedDict, total=False):
13
13
 
14
14
  profile_template: Required[int]
15
15
 
16
- ip_address: Optional[str]
16
+ ip_address: str
17
+ """Required for Universal template only. Optional for all others."""
17
18
 
18
19
  site: str
20
+ """Region where the protection profiles will be deployed"""
19
21
 
20
22
 
21
23
  class Field(TypedDict, total=False):
@@ -9,28 +9,11 @@ __all__ = ["CredentialRecreateParams"]
9
9
 
10
10
  class CredentialRecreateParams(TypedDict, total=False):
11
11
  delete_sftp_password: bool
12
- """Remove the SFTP password, disabling password authentication.
13
-
14
- Only applicable to SFTP storage type.
15
- """
16
12
 
17
13
  generate_s3_keys: bool
18
- """Generate new S3 access and secret keys for S3 storage.
19
-
20
- Only applicable to S3 storage type.
21
- """
22
14
 
23
15
  generate_sftp_password: bool
24
- """Generate a new random password for SFTP access.
25
-
26
- Only applicable to SFTP storage type.
27
- """
28
16
 
29
17
  reset_sftp_keys: bool
30
- """Reset/remove all SSH keys associated with the SFTP storage.
31
-
32
- Only applicable to SFTP storage type.
33
- """
34
18
 
35
19
  sftp_password: str
36
- """Set a custom password for SFTP access. Only applicable to SFTP storage type."""
@@ -53,7 +53,7 @@ class Storage(BaseModel):
53
53
  created_at: str
54
54
  """ISO 8601 timestamp when the storage was created"""
55
55
 
56
- location: Literal["s-ed1", "s-drc2", "s-sgc1", "s-nhn2", "s-darz", "s-ws1", "ams", "sin", "fra", "mia"]
56
+ location: str
57
57
  """Geographic location code where the storage is provisioned"""
58
58
 
59
59
  name: str
@@ -8,7 +8,7 @@ __all__ = ["StorageCreateParams"]
8
8
 
9
9
 
10
10
  class StorageCreateParams(TypedDict, total=False):
11
- location: Required[Literal["s-ed1", "s-drc2", "s-sgc1", "s-nhn2", "s-darz", "s-ws1", "ams", "sin", "fra", "mia"]]
11
+ location: Required[str]
12
12
  """Geographic location where the storage will be provisioned.
13
13
 
14
14
  Each location represents a specific data center region.
@@ -359,8 +359,9 @@ class Stream(BaseModel):
359
359
 
360
360
  Small latency values may lead to packet loss when jitter or retransmissions
361
361
  occur, while very large values introduce unnecessary end-to-end delay.
362
- \\**Incorrect or low default value is one of the most common reasons for packet
363
- loss, frames loss, and bad picture.\\**
362
+
363
+ _Incorrect or low default value is one of the most common reasons for packet
364
+ loss, frames loss, and bad picture._
364
365
 
365
366
  We therefore recommend setting latency manually rather than relying on the
366
367
  default, to ensure the buffer is correctly sized for your environment. A
@@ -468,7 +468,7 @@ class Video(BaseModel):
468
468
  video. It is unique for each video, generated randomly and set automatically by
469
469
  the system.
470
470
 
471
- Format of usage in URL is \\**.../videos/{`client_id`}\\__{slug}/...\\**
471
+ Format of usage in URL is _.../videos/{`client_id`}\\__{slug}/..._
472
472
 
473
473
  Example:
474
474
 
@@ -279,7 +279,7 @@ class ConditionURL(TypedDict, total=False):
279
279
  `match_type`:
280
280
 
281
281
  - **Exact/Contains**: plain text matching (e.g., `/admin`, must comply with
282
- `^[\\ww!\\$$~:#\\[[\\]]@\\((\\))\\*\\++,=\\//\\--\\..\\%%]+$`).
282
+ `^[\\ww!\\$$~:#\\[[\\]]@\\((\\))*\\++,=\\//\\--\\..\\%%]+$`).
283
283
  - **Regex**: a valid regular expression (e.g., `^/upload(/\\dd+)?/\\ww+`).
284
284
  Lookahead/lookbehind constructs are forbidden.
285
285
  """
@@ -279,7 +279,7 @@ class ConditionURL(TypedDict, total=False):
279
279
  `match_type`:
280
280
 
281
281
  - **Exact/Contains**: plain text matching (e.g., `/admin`, must comply with
282
- `^[\\ww!\\$$~:#\\[[\\]]@\\((\\))\\*\\++,=\\//\\--\\..\\%%]+$`).
282
+ `^[\\ww!\\$$~:#\\[[\\]]@\\((\\))*\\++,=\\//\\--\\..\\%%]+$`).
283
283
  - **Regex**: a valid regular expression (e.g., `^/upload(/\\dd+)?/\\ww+`).
284
284
  Lookahead/lookbehind constructs are forbidden.
285
285
  """